追踪外卖骑手的保温箱的GPS定位信息以及外卖箱是否被人打开 , 以防止骑手在送餐时电动车被盗窃或者外卖箱被人打开偷窃外卖餐品 , 并实时监控外卖箱内的温湿度数据 , 并将它们上传至机智云 , 然后我们就可以在远程通过手机App或者Web网页端来访问相关的定位数据、外卖箱温湿度环境数据、以及外卖箱是否被打开 。
视频教程及实物展示 视频演示教程:
文章图片
文章图片
硬件端接线图
文章图片
材料清单
文章图片
硬件端完整源代码
--使能USB print输出打印
LIB_UsbConfig("CDC"
--机智云平台为每个产品类别分配的唯一PK和PS , 一定要改成您自己的PK和PS
PK = "76841a997f134f06ab97698a12104e02"
PS = "26ab8338463a4786838e43dc0043cf74"
--初始化4G模块
LIB_Giz4GConfig(PK,PS,1000,120,"UART0","D5","HIGH","D6","HIGH")
--设置D0口为上拉输入,用来监测外卖箱是否被打开
LIB_GpioInputConfig("D0","PULLUP")
--设置sht3x传感器占用SCL0和SDA0引脚 , 并启动传感器以每秒出10个数据的频率工作 , repeatability="HIGH"时精度最高
LIB_Sht3xConfig("IIC0","10","HIGH")
--配置NEO-6M GPS模块开始工作 , 占用TX1和RX1引脚 , 默认每秒钟自动输出一组GPS数据
LIB_NEO6MConfig("UART1")
--开始大循环
while(GC(1) == true)
do
LIB_DelayMs(1000)
--每隔一秒向云发送外卖保温箱是否被打开的状态
--这里看似一直再向云发送数据 , 其实只有发生变化时才会实际发送
LIB_SendToGizCloud("In1", LIB_GpioRead("D0"))
--查询是否读到温湿度数据
sht3x_flag,sht3x_temp,sht3x_humi = LIB_Sht3xGetResult()
if sht3x_flag == 1 then
--打印读到的温湿度值 , 保留1位小数
print(string.format("temp: %.1f\r\nhumi: %.1f", sht3x_temp, sht3x_humi))
--向机智云服务器发送(温湿度)(带一位小数)
LIB_SendToGizCloud("Rf1", sht3x_temp)
LIB_SendToGizCloud("Rf2", sht3x_humi)
end
--查询是否解析到GPS数据 , 注意GPS首次定位出数据的时间较长 , 大概有1分钟左右
flag,lo,la,al,utc = LIB_NEO6MGetGpsData()
if flag == 1 then
--将读取到的经度、纬度、海拔、UTC时间打印输出
print(string.format("longtitue:%f latitue:%f altitue:%.0fm UTC:%d", lo,la,al,utc))
--将从GPS获取的时间设置为开发板自身的系统时间
LIB_SetUtcTime(utc);
--向机智云服务器发送(经纬度)(带两位小数)
LIB_SendToGizCloud("Rf3", lo)
LIB_SendToGizCloud("Rf4", la)
--向机智云服务器发送(海拔高度,单位:米)(短型整数)
LIB_SendToGizCloud("Rs1", math.floor(al))
end
end
上面代码中出现的"LIB_"开头的库函数的详细介绍可以在shineblink.com网站上的API文档中查询 。
机智云接入和App开发(三个选择) ? 选择一:机智云+通用版APP访问设备(难度最低)
通过《4G设备接入机智云教程》我们可以很快掌握机智云的接入流程 , 并使用现成的通用版机智云App即可很快的实现手机App远程访问我们的开发板 。 缺点就是通用版App的UI页面看起来不够专业 。
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
