我的订单购物车(0)联系客服 帮助中心供应商合作 嘉立创产业服务群
领券中心备货找料立推专区爆款推荐TI订货PLUS会员BOM配单工业品PCB/SMT面板定制

STM32+ESP8266外卖自提柜设备端方案

2020-06-17 11:25:46阅读量:4873来源:应用与分享

本文作者:立创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,未经许可禁止转载,请自行验证。