十分钟开发物联网:汽车防盗GPS追踪(4G版)
追踪汽车的GPS定位信息以及获取汽车当前运动的三轴加速度值,通过GPS定位信息我们可以判断汽车当前的位置,通过三轴加速度值我们可以判断当前汽车的运动状态(比如是否在运动中或者停止中)。
视频教程及实物展示
视频演示教程:
接线实物图和App监测页面:
硬件端接线图
材料清单
硬件端完整源代码
--使能USB print输出打印 LIB_UsbConfig("CDC") --机智云平台为每个产品类别分配的唯一PK和PS,一定要改成您自己的PK和PS PK = "2d54a47fb3cd40aeb4333e723287a516" PS = "dca35684fbd74fae920589ca55580952" --初始化4G模块 LIB_Giz4GConfig(PK,PS,1000,120,"UART0","D5","HIGH","D6","HIGH") --配置ADXL345开始工作,占用IIc1接口,三轴加速度测量结果输出频率默认100Hz,测量范围默认+-16000mg LIB_ADXL345Config("IIC1") --配置NEO-6M GPS模块开始工作,占用TX1和RX1引脚,默认每秒钟自动输出一组GPS数据 LIB_NEO6MConfig("UART1") --开始大循环 while(GC(1) == true) do LIB_DelayMs(200) --查询加速度传感器是否出数 flag, acc_x, acc_y, acc_z = LIB_ADXL345GetAccXYZ if flag == 1 then --打印三轴加速度,单位mg print(string.format("acc_x:%dmg,acc_y:%dmg,acc_z:%dmg",acc_x,acc_y,acc_z)) --向机智云服务器发送(X,Y,Z轴加速度值,单位:mg)(短型整数) LIB_SendToGizCloud("Rs2", acc_x) LIB_SendToGizCloud("Rs3", acc_y) LIB_SendToGizCloud("Rs4", acc_z) end --查询是否解析到GPS数据 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页面看起来不够专业。 本例中使用了"Rs1","Rs2","Rs3","Rs4","Rf3","Rf4"的数据点。这个六个数据点分别作为海拔高度,X轴加速度,Y轴加速度,Z轴加速度,经度,纬度,这六个值的上传数据通道,记得在机智云平台修改相应的数据点的名称。
► 选择二:机智云+零代码定制版App访问设备(难度较低) 在选择二之前,必须完成上面选择一的工作,然后参考《赛博坦零代码App开发(4G版)》教程实现定制版App访问设备。
开发好以后的页面如下:
► 选择三:定制化开发APP或微信小程序(难度较高) 如果有一定开发能力,开发者可以考虑在机智云免费提供的开源代码上做一定的定制开发形成自己的App。 如果开发者希望开发一个专属的App,机智云也会提供代码开源的安卓和IOS SDK框架,帮助开发者快速完成App开发,开发者仅需关注App的UI和UE设计即可,而相对复杂的协议与错误处理等事项可忽略。关于开源SDK的介绍和获取请进入docs.gizwits.com了解更多内容。
|