物联网智能外卖柜
简介
本项目是由ch32v307 + RT-Thread,阿里云物联网平台,微信小程序,和java spring boot完成。使用RT-Thread连接阿里云物联网平台,并使用java spring boot和阿里云SDK与云平台通信。spring boot还搭建了微信小程序的后端用于与用户通信。单片机端
单片机使用了沁恒的CH32V307开发板,上面搭载了RT-Thread操作系统。使用的软件包如下- pcf8574: IIC转IO口包
- sht3x: 温湿度传感器包
- rt_vsnprintf / rt-kprintf: 用于打印浮点数据
- cJSON: 用于阿里云软件包的数据处理
- Ali-Iotkit: 阿里云mqtt软件包
- AT-DEVICE: 用于支持ESP8266使用软件包遇到的问题
- rt_vsnprintf / rt-kprintf: RT-Thread默认不能打印浮点数, 需要库的支持。但是最终我还是没有解决浮点数打印的问题,希望知道的大佬解答一下,谢谢!
- AT-DEVICE: 刚开始使用这个的时候8266没反应,查了下驱动发现串口驱动没有被实现,具体解决方法看我前面的文章赤菟CH32V307 RISC-V 开发板 rt-thread 的坑 - esp8266的使用。
- cJSON: 添加浮点数数据节点时打印不精确,后修改其中的浮点打印部分
- Ali-Iotkit: 它那里面的物模型的库我不会用,我写了个简单的库以供调用,详见文末的gitee链接。
linux服务端
linux 服务端使用了java spring(本人只看了一周左右,所以写出来的代码很屎,甚至没用数据库)其中微信的服务端接口使用了三个get请求-/putFool
用于做小程序放入食物的接口
-/getFool
用于做小程序拿出食物的接口
-/sensor
获取柜子的温湿度由于我不会用jsonObject,所以写法是类似cjson的手动拼接,看起来可能会很难懂。连接阿里云mqtt的服务
- 官网有超级详细的java例程,甚至有代码生成器,完全不需要写= =。
微信小程序端
这玩意我也是一周速成,完全没有规范。UI的库我全用的是WeUI(其它文档看不懂)。其中有一个取餐窗口和一个送餐窗口,取餐窗口可以看对应外卖柜当前的温度和湿度,输入对了key就可以打开外卖柜。送餐窗口送餐成功后就会有对应的key出现,在取餐窗口输入对应的key就能取走实现部分就是向服务器端发送对应的git请求获取数据并显示。gitee仓库
注:开源审核没过,得过段时间/LCCAA/embedded-competition.git