您的浏览器版本过低(IE8及IE8以下的浏览器或者其他浏览器的兼容模式),存在严重安全漏洞,请切换浏览器为极速模式或者将IE浏览器升级到更高版本。 【查看详情】
推荐您下载并使用 立创商城APP 或者最新版 谷歌浏览器火狐浏览器360浏览器搜狗浏览器QQ浏览器 的极(高)速模式进行访问。
首页 > 应用与分享 > STM32+ESP8266外卖自提柜设备端方案
  • STM32+ESP8266外卖自提柜设备端方案

  • 2020-06-17 11:25 1623

本文作者:立创EDA源平台 OSHWHub @doee点击查看原文章


1、项目介绍


外卖自提柜,类似蜂巢之类的快递柜。 


工作流程


1、外卖员通过手机APP扫描柜体上面的固定二维码,在APP中输入客户的手机号
2、完成后,服务器向对应手机号发送含有取货密码的短信
3、同时自动分配一个空柜子,向设备端发送一个开柜指令,内容包括,柜号、开柜密码等
4、设备端收到开柜指令后开柜
5、客户收到短信后凭密码取外卖,取完后设备端上报服务器取货成功的信息。


基本功能包括与服务器通信,控制开柜,显示信息,声音提示,验证码输入等等。服务器和APP是别人做的,我做设备端,柜体用下面这种。



  


项目选型


方案: MCU + WIFI模块 + GPRS模块 + 显示屏 + 键盘 选型: stm32f103rbt6 + esp8266 + sim800 + lcd彩屏 + 矩阵键盘。


一开始觉得这个项目so easy 烂大街 ,乍一看确实,这选型也太烂大街了(笑),如果说这是一道电赛题,几天也能弄出来,最后花了两个月左右...



工作流程


设备端主要工作流程如下:

1、硬件开机后与服务器连接,连接成功后,硬件自动向服务器发送 注册指令 , 包含本机的Id,服务器收到后会将该机器注册进来,进行监管。
2、当有客户想要存放时,会扫描硬件二维码获取机器Id,然后在App上打开某个格子,服务器会向该机器发送 存货指令  , 包含要打开的机器Id,格子Id,存放模式, 取货验证码 等等,同时服务器会向取货的客户发送6位验证码短信。
3、机器接收到存柜 存货指令 后,尝试打开相应格子,并保存验证码,若打开成功,则发回给服务器 开柜成功指令 表示成功。否则返回 开柜失败指令 表示失败。
4、客户来取物品时,在机器上输入相应的六位密码,响应密码的格子就会自动打开,然后向服务器发送 取货指令 ,报告格子被打开。
5、持续工作,设备需要每30s发送一次 心跳指令



协议制定


协议部分雏形是做服务器的同学定的,这部分直接导致系统从裸奔变成跑FreeRTOS。

帧头 + Length + CmdId + DevId + Content + FrameId + 校验和


  


不同指令的Content不同:

1、注册帧000 :设备向服务器发送的认证信息,在服务器上注册该设备 Content为空
2、回复帧001 :回复数据正确 Content为空
3、心跳帧002 :心跳保持 Content为空
4、存货开柜帧003 :服务器向设备发送存货开柜指令 Content内容包含: -CellId:机器格子的编号,要开启的格子。两个字节的无符号short类型,顺序为 [低字节,高字节] -Mode:代表存储的模式(常温,保温,制冷),一个字节的无符号byte -PassWord:表示存储密码,六个字节的char字符串,顺序即为密码顺序 -SendAddress:表示存件者的id,11个字节的电话号码,char字符串,顺序即为号码顺序 -ReceiveAddress:表示取件者的id,含义同上
5、开柜成功帧004 :设备开柜成功 Content内容与指令003相同
6、开柜失败帧005 :设备开柜失败 Content包含: -SendAddress : 表示存件者的id,11个字节的电话号码,char字符串,顺序即为号码顺序
7、取货帧006 :客户取货成功 Content包含: -CellId:机器格子的编号,要开启的格子。两个字节的无符号short类型,顺序为 [低字节,高字节]



任务代码和详细工作流程部分:请参见原文



3、原理图和PCB绘制


ESP8266和SIM800供电选择电路:


  


这里使用一个NMOS和一个PMOS实现模块切换,测试效果正常。


电磁锁驱动电路


  



我用的是NMOS,栅极电阻可以小一点,我实际用的是470R,这里甚至可以把栅极电阻短接。 R39是为了栅极下拉,防止IO口浮空时导致输出不稳定 D13是续流二极管,电磁锁是感性元件,防止关断瞬间击穿MOS


单片机最小系统部分


  



这里有一个防反接电路,主要是考虑到SWD接口容易插反,烧掉单片机,Q16是一个NMOS,用来防反接,插反以后MOS自动关断,R12是一个0欧电阻,不想用防反接功能,可以焊接R12进行短接。


USB转TTL部分


  



这个保险丝救了我好几次,一定不要省!!!用的是6V 700mA的自恢复保险丝。


PCB的一点点经验,大佬勿喷。实话说,这种板子,随便画也能用...


芯片的电源引脚做好退耦,退耦电容要靠近引脚



  


  


晶振走线尽量短,晶振周围不要走电源线


  


等等...



4、实物展示


1.8寸TFT屏、SIM800L、ESP8266:


  


4x4薄膜矩阵键盘:


  


焊接:


  


成品图:


  



5、文档


                    

自提柜原理图(点击进入立创EDA编辑器打开)


                    

自提柜PCB(点击进入立创EDA编辑器打开)



6、BOM 相关器件(点击商品编号可查看产品详细信息)


商品编号 型号 品牌 规格/描述
C503597 ESP8266
Ai-Thinker(安信可)
ESP8266测试板
C8735 STM32F103RBT6 ST(意法半导体)
LQFP-64_10x10x05P / MCU
C124276 SIM800L
SIMCOM(芯讯通无线科技)
LGA GSM/GPRS模块
C98241
STC8F2K64S2
STC(宏晶)
LQFP-32_7x7x08P/ MCU
GP2302
GP(格瑞宝)

SOT23 / N-MOS


您也可以点击下载BOM点击直接在立创商城下单


本文作者:立创EDA源平台 OSHWHub @doee,未经许可禁止转载,请自行验证。

热门物料
型号
库存
价格
STM32F103C8T6/ST(意法半导体) 6.76
L78M05CDT-TR/线性稳压芯片 0.4695
0603F104M500NT/贴片电容 0.011829
STM8S003F3P6TR/ST(意法半导体) 1.19
LL4148/开关二极管 0.022573
17-21SURC/S530-A3/TR8/发光二极管 0.053102
STM8L051F3P6TR/ST(意法半导体) 2.3
SP3485EN-L/TR/RS-485/RS-422芯片 1.47
SP3232EEN-L/TR/RS232芯片 1.27
LM358DT/通用运放 0.200185
电信入口 联通入口 移动入口
© 2011-2020 深圳市立创电子商务有限公司 版权所有

提示

您确定删除此收货地址吗?

提示

您确定删除此收货地址吗?

成功提示

content

失败提示

content

展开

收起

微信

客服

关注公众号咨询客服

  • 在线客服热线

    400-830-2058

  • 服务时间

    周一至周五8:30~18:30

    周六、周日9:00~18:00

  • 投诉立创工作人员

    付小姐

    18826549599

QQ

咨询

优惠券

有奖

问卷

立创商城旗下芯媒体

微信号:icsight