机智云追踪外卖骑手保温箱硬件开发和项目演示

电子说

1.2w人已加入

描述

01 本章实现功能介绍

追踪外卖骑手的保温箱的GPS定位信息以及外卖箱是否被人打开,以防止骑手在送餐时电动车被盗窃或者外卖箱被人打开偷窃外卖餐品,并实时监控外卖箱内的温湿度数据,并将它们上传至机智云,然后我们就可以在远程通过手机App或者Web网页端来访问相关的定位数据、外卖箱温湿度环境数据、以及外卖箱是否被打开。

03 材料清单名称推荐购买源资料下载

温湿度传感器模块、NEO6M GPS模块、自锁开关淘宝搜索”ShineBlink“店铺有售,或者任意其他店铺(功能相似即可)shineblink.com

黑色底板该底板只是为了省掉接杜邦线,让外观好看一些,不是必需品,开发者如果没有可以用杜邦线来替代。如果仍想获取该底板,有如下两种方式:(1)通过右边提供的PCB工程资料自己打样PCB制作即可(2)通过联系微信号“shine_blink”免费获取空板PCB自己焊接也可(如果还有的话)底板PCB工程下载地址

04 硬件端完整源代码

--使能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

humi: %.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文档中查询。

05 机智云接入和App开发(三个选择)

选择一:机智云+通用版App访问设备(难度最低)

通过《骑手保温箱追踪及温湿度监测(4G版):(上)4G设备接入机智云教程》我们可以很快掌握机智云的接入流程,并使用现成的通用版机智云App即可很快的实现手机App远程访问我们的开发板。缺点就是通用版App的UI页面看起来不够专业。

本例中我们使用了“Rf1”,“Rf2”,“Rf3”,“Rf4”,“Rs1”这五个数据点分别作为温度,湿度,经度,纬度,海拔高度这五个值的上传数据通道,记得在机智云平台修改相应的数据点的名称。

选择二:机智云+零代码定制版App访问设备(难度较低)

在选择二之前,必须完成上面选择一的工作,然后参考《赛博坦零代码App开发(4G版)》教程实现定制版App访问设备。开发好以后的页面如下:

选择三:定制化开发App或微信小程序(难度较高)

如果有一定开发能力,开发者可以考虑在机智云免费提供的开源代码上做一定的定制开发形成自己的App。

如果开发者希望开发一个专属的App,机智云也会提供代码开源的安卓和IOS SDK框架,帮助开发者快速完成App开发,开发者仅需关注App的UI和UE设计即可,而相对复杂的协议与错误处理等事项可忽略。关于开源SDK的介绍和获取请登录docs.gizwits.com 了解

责任编辑:haq

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分