0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

OneNET Studio云STM32物联网开发(2)- STM32+Air724UG(4G模组)数据采集显示上报

杨荣国 来源:杨荣国 作者:杨荣国 2022-09-25 00:52 次阅读

实现效果视频 (点击可以观看)

结合OneNET Studio云平台STM32物联网开发(1)- MQTT协议设备接入数据上报测试(https://blog.csdn.net/weixin_44862509/article/details/127015383) 这篇文章如图1,图1的1位置是在MQTTX上模拟和OneNET Studio云平台连接以及在相应的通道上上发数据以及接收数据,

pYYBAGMvNEiAEEPNAAJzXFrIHro387.png

图1

图1的2位置是OneNET Studio 平台上显示的数据,说明我已经可以和云端进行互动数据了。
但是如何用手上的Air724UG(4G模组)如图2,替代MQTTX软件实现与OneNET云进行通讯实现替代MQTTX用硬件将数据发送到云端显示呢,以及如何用STM32单片机结合4G模组实现将数据自动上发呢?

pYYBAGMvNFuAbpTDAB07mLWls-U346.png

图2

第一步 获取4G模组AT联网设置信息如果需要设置4G模组,其实主要的工作和在MQTTX设置是一样的,就是将于云服务器链接的账号密码以及产品和设备的信息以及通道信息通过AT指令写入到4G模组硬件,所以如图3结合上一篇文章找到以下信息:Client ID,Host,Port,Username,Password,以及属性上报topic和属性上报回复topic。找到信息如下:

poYBAGMvNG6AYq4AAAFBLy6-PTs785.png

图3


Client ID:P0001
Host:studio-mqtt.heclouds.com
Port:1883
Username:i7ybqx3ZNk
Password:version=2018-10-31&res=products%2Fi7ybqx3ZNk%2Fdevices%2FP0001&et=--------gn=e5xZrxCdfmKkT1hndeWvmg%3D%3D
上报topic: $sys/i7ybqx3ZNk/P0001/thing/property/post
回复topic: $sys/i7ybqx3ZNk/P0001/thing/property/post/reply

第二步 通过4G模组DTU工具设置联网信息:首先通过USB转串口模块与4G模组链接,并给4G模组通电实现4G模组可以接收电脑端串口调试助手下发的AT指令(可以根据大家在网上自行买的Air724UG 4G模组的方式配置链接,对于实现这一步的前提条件是你手上的4G模组是可以通过AT指令在电脑端的串口调试助手下发命令并且是有回复的,比如发送AT,回复OK)如图4,

pYYBAGMvNHmAb4MJAAIs8Zi-Ce8292.png

图4


将相关信息输入到DTU小工具,如图4的位置1是打开串口,位置2是选择MQTT协议(上一篇文章我用的是MQTTX模拟该协议),位置3为设置的基本登入信息,位置4为小工具实际下发的AT指令。

pYYBAGMvNICAVmNoAAJBnRvlzUE664.png

图5


以及图5的位置1为回复topic,位置2位上报topic和位置3为对应的AT指令。

第三步 实现4G模组联网:如图6点击图6位置1通过AT指令重启4G模组,可以看到4G模组对应的指令灯从关闭到开启说明重启成功,位置2为4G模组与服务器链接成功的状态回复:“+STATUS: 1,MQTT CONNECTED”,这里很关键,只有回复了这个状态才说明与服务链接成功,同时看到4G模组的LINK的指示灯是常亮。

poYBAGMvNIyAaxzeAANsbCYjJ3o435.png

图6


如图6的3位置为设备状态为“在线”,其实到了这一步,大家有没有觉得与我们在第一篇文章介绍的MQTTX链接服务器一样的感觉,如果感觉一样,那就说明你真正开始领悟了。

第四步 通过4G模组发送数据到服务器:按指定的数据格式通过串口方式发送出去,如图7的位置1位串口发送的内容就是对应属性JSON格式要发送的数据(这里测试发送的时候我把时间戳修改了当前的时间),图7的位置2为服务器收到数据后回复接收成功的状态信息,图7的3位置看到OneNET Studio平台显示了我们发送上去的数据。

pYYBAGMvNJSAFfLvAAKy8gAHOBY237.png

图7

第五步 STM32终端硬件功能:如图8,图8的1位置为12V电源输入及5V和3.3V电压降压及扩展模块,2位置为STM32F103C8T6单片机核心板,3位置为Air724UG Cat1 4G模块,4位置为DHT11温湿度模块,5位置为光敏电阻光线感应模块,6位置为LCD12864液晶屏,7位置为杜邦线,8位置为4G模块天线

poYBAGMvNJ6AadQqACaphcneRXU138.png

图8

图9和图10为数据在OneNET Studio云平台展示界面,而且OneNET Studio平台的数据接口是对外开发的,如果大家需要直接设计前端页面可以直接获取相关的接口数据,通过以上8部分硬件模块在杜邦线的连接下实现了功能如下。

pYYBAGMvNKWAPptaAAE5JWp1mPU012.png

图9

poYBAGMvNK6Aa8C5AAEH77wdhGk412.png

图10


这里我们暂且把这个作品称为系统,名称为基于OneNET Studio云实现STM32农业环境监测Air724UG Cat1 4G传输系统。
1、STM32单片机每隔10秒通过DHT11温湿度传感器和GL5537光敏电阻传感器采集农业环境数据并在LCD12864液晶屏实时显示;
2、每隔10S通过Air724UG Cat1 4G模块将采集的温度,湿度,光照值数据及当前时间戳上报到OneNET Studio云平台进行展示,同时LED闪烁一次;
3、OneNET Studio云平台将收集到数据以曲线及表格的方式展示并记录数据,同时向单片机下发数据接收状态,同时LED闪烁2次;

第六步 硬件电路接线说明:如图11为硬件电路图接口接线说明图,按图11的控制接口将温湿度传感器,光敏电阻传感器,4G模块发送数据给单片机,液晶屏,LED接收单片机的控制数据,这里说一点是电源部分,因为4G模块需要12V供电,所以采用12V转5V的模块进行连接同时将5V和3.3V扩展出来方便给其他模块供电。

pYYBAGMvNLeAJaC2AACEZUzrAa4711.png

图11


模块原理我想大家应该都很熟悉了,因为都是比较常用的模块,大家获取到我提供的源代码后直接对着代码和函数看程序就可以知道模块怎么使用了。而且相信大家手上都直接或间接的单片机开发板对于本系统所用到的都是比较常见的模块所以大家这部分可以直接补习,如果任然有疑问的可以和我交流。

第七步 关键程序段分析:如图12为程序主函数的内容,可以看到程序非常简单,图12的1和2的位置通过调用函数的方式通过相应的变量获取到时间戳,温度,湿度,光照值。

poYBAGMvNL6AOk0WAAPVquv0n_4047.png

图12


同时图12的3和4的位置调用函数将获取数据的变量传递给LCD12864显示函数进行数据显示,再通过调用4G模块数据发送函数将变量的值通过4G模块发送出去。时间戳如果生成,这里需要包含一个系统自带的头文件:#include "time.h",并通过mktime(&Time)函数,将获取的当前时间(格式:XX-XX-XX YY:YY:YY 年-月-日 时:分-秒,这个时间可以通过时钟芯片读取,我的程序为了演示方便,我是直接用软件延时的方式直接换算出日期和时间的,最关键还是时间戳的转换)北京时间格式转换为时间戳格式的算法如下:
Time.tm_year = (2000 + time_data[0])%100 + 100;
Time.tm_mon = time_data[1] - 1;
Time.tm_mday = time_data[2];
Time.tm_hour = time_data[3]- 8;
Time.tm_min = time_data[4];
Time.tm_sec = time_data[5];
time_uinx=mktime(&Time); //读取时间戳
time_uinx=time_uinx*1000;
大家可以通过这个函数转换出来的时间戳值,放到在线工具进行反推验证,比如我得到的一个时间戳的值是1663962320000 单位是毫秒,如图13的1位置可以看到转换出来的北京时间是符合要求的(要注意,这个随数据一起发送的时间不能超过你生成密码用的时间)。

poYBAGMvNMaAezOxAAJcXo7pvYM143.png

图13


还有就是如何把OneNET Studio平台需要的数据格式组合起来,比如我这个系统目前发送的是温度,湿度,光照三个值,数据格式如下:
{"id":"0001","params":{"LightLux":{"time":1663962320000,"value":1155.00},"RelativeHumidity":{"time":1663962320000,"value":40.0},"CurrentTemperature":{"time":1663962320000,"value":32.0}},"version":"1.0"},但是如果直接在C语言里发送是发送不过去的,需要用到一个字符串组合函数如图14,为了方便大家看到调用的全部参数为把程序分行了,但是在实际编译的时候要排成一行,要不然编译不通过。

pYYBAGMvNM-AXNHrAAEPO1CF_zE666.png

图14


当然了也可以通过Keil环境下Jansson库生成相应的JSON格式的数据,但是这样做的话对单片机的存储空间有一定要求,所以如果传输数据量大需要用JSON函数转换,如果传输数据不多的话可以直接用我介绍的方法。

第八步 回顾总结:其实最关键的还是要保证4G模块能和OneNET Studio建立连接,真正需要单片机控制的非常少,关键还是第一篇文章,以及这边文章的前几部的循序渐进的联网测试,还有就是为了保证数据能正常上报,一定要验证下单片机串口发送出来的数据格式是否正确。

希望我的文章能帮到大家,文章里涉及到的软件工具,电路图资料,程序源代码等大家可以 搜索 WX公众号 “和我学单片机”回复“OneNET01”回复带密码的百度网盘下载链接,大家可以自行下载。如果资料不够或学习中遇到问题可以在公众号留言。
更新: 2022年9月24日 杨荣国 个人WX : tong1366

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 物联网
    +关注

    关注

    2893

    文章

    43084

    浏览量

    365292
  • STM32
    +关注

    关注

    2255

    文章

    10802

    浏览量

    351989
  • MQTT
    +关注

    关注

    5

    文章

    624

    浏览量

    22266
收藏 人收藏

    评论

    相关推荐

    OneNET Studio平台STM32联网开发(1)- MQTT协议设备接入数据上报测试

    OneNET Studio平台STM32联网开发
    的头像 发表于 09-25 01:01 1624次阅读
    <b class='flag-5'>OneNET</b> <b class='flag-5'>Studio</b><b class='flag-5'>云</b>平台<b class='flag-5'>STM32</b><b class='flag-5'>物</b><b class='flag-5'>联网</b><b class='flag-5'>开发</b>(1)- MQTT协议设备接入<b class='flag-5'>数据</b><b class='flag-5'>上报</b>测试

    4G联网开关求助

    阿里联网平台 合宙模块780E 724 或者移远4G模块开发一款
    发表于 05-19 15:28

    ESP32S2 WROVER在使用AT指令获取4G模组时,dte会报超时怎么解决?

    模组:ESP32 S2 WROVER 4G模组:合宙Air724UG 在使用AT指令获取4G
    发表于 06-27 06:54

    OneNET麒麟座试用申请】OneNET联网

    项目名称:OneNET联网试用计划:1.将开发板作为设备层,利用OneNET,上传传感器
    发表于 04-05 15:03

    EVB_Air724UG_A13开发板使用指南 相关资料推荐

    速率5Mbps数据传输。 具有全功能音频输入输出接口,LCD接口,Camera接口,内存卡接口,矩阵键盘接口,ADC接口,其外设齐全,是替代2G联网模块的理想产品。  EVB_
    发表于 07-06 06:17

    air724ug开发

    air724ug开发板,最近购买了一块4G开发板来玩玩,做个开发记录开发板采用合宙
    发表于 07-22 07:25

    STM32+Air724UG基本控制篇

    所属系列: 指路者系列开发板型号: ZLAir724UGA板载说明:①主控芯片: STM32F103CBT6;(实际使用软硬件全兼容芯片 AT32F413ACBT7)②4G
    发表于 08-20 06:09

    怎样去设计基于Air724模块的DTU

    使用Air724模块设计全功能DTU目前联网开发中,4G模块的使用方式有几下几种:MCU连接4G
    发表于 08-20 07:46

    STM32+Air724UG基本控制篇(自建物联网平台) 精选资料推荐

    说明这节测试一下Android和微信小程序扫码绑定Air724,并通过MQTT和模组实现远程通信控制这一节作为板子的整体功能测试,用户下载这一节的程序用来测试基本控制篇实现的基本功能还有就是测试
    发表于 08-23 08:23

    Air724UG是什么

    2.检查固件3.联网测试4.服务器配置·建立TCP服务器5.与服务器通讯测试(一)6.服务器配置·建立通讯数据存储池7.与服务器通讯测试(二)8.单片机配置·通讯板控制程序9.单片机与
    发表于 12-13 07:07

    基于机智联网平台与4G DTU远程车库门

    和timerMsCount1为全局变量,timerMsCount1在定时器里面自加。到此代码就完成了,将代码编译下载到单片机。接上机智4G模组,上电联网设备即可连接云端。利用机智
    发表于 08-03 16:44

    工业品质4G Cat.1核心板——Core_Air724UG,很贵,但不是因为颜值

    Core_Air724UG核心板——是合宙基于Air724UG 4G全网通Cat.1模块,最新推出的工业级商用核心板。 积木式硬件开发方式,极大降低
    的头像 发表于 09-14 10:36 6766次阅读
    工业品质<b class='flag-5'>4G</b> Cat.1核心板——Core_<b class='flag-5'>Air724UG</b>,很贵,但不是因为颜值

    缘起Air724UG,Cat.1网红“猫”到联网行业应用经典之选

    提起Air724UG,总让人想起2020年的春天。群雄竞起,各大模组厂商纷纷涌入激荡的4GCat.1市场。相比之下,合宙Cat.1产品上市不算早,却以“发布即量产,用产品说话”的独有风格宣告开启
    的头像 发表于 08-31 09:55 2192次阅读
    缘起<b class='flag-5'>Air724UG</b>,Cat.1网红“猫”到<b class='flag-5'>物</b><b class='flag-5'>联网</b>行业应用经典之选

    降本增效!合宙超低功耗蓝牙网关模组——Air724UG-BL全新方案来了

    庞大, 解决蓝牙上的问题尤为关键。 合宙计划推出一款 超低功耗蓝牙网关模组——Air724UG-BL。 1 Air724UG-BL产品规划 合宙A
    的头像 发表于 12-14 16:35 1148次阅读
    降本增效!合宙超低功耗蓝牙网关<b class='flag-5'>模组</b>——<b class='flag-5'>Air724UG</b>-BL全新方案来了

    合宙超低功耗蓝牙网关模组——Air724UG-BL全新方案来了

    随着联网的普及,局域网的数据终归是需要上,才能实现多终端的数据共享以及设备控制。因此局域网必须有个网关,将局域网的
    的头像 发表于 12-15 08:04 1439次阅读
    合宙超低功耗蓝牙网关<b class='flag-5'>模组</b>——<b class='flag-5'>Air724UG</b>-BL全新方案来了