实现效果视频

STM32 Air724UG 4G OneNET数据传输

本章教学视频(1)

OneNET StudioSTM32+Air724UG -1

本章教学视频(2)

OneNET StudioSTM32+Air724UG -2

本章资料和源代码下载:ToolV2.6.6/代码/资料/工具-单片机文档类资源-CSDN下载

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

图1

图1的2位置是OneNET Studio 平台上显示的数据,说明我已经可以和云端进行互动数据了。

但是如何用手上的Air724UG(4G模组)如图2,替代MQTTX软件实现与OneNET云进行通讯实现替代MQTTX用硬件将数据发送到云端显示呢,以及如何用STM32单片机结合4G模组实现将数据自动上发呢?

图2

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

图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,

图4

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

图5

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

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

图6

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

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

图7

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

图8

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

图9

图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扩展出来方便给其他模块供电。

 图11

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

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

图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位置可以看到转换出来的北京时间是符合要求的(要注意,这个随数据一起发送的时间不能超过你生成密码用的时间)。

图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,为了方便大家看到调用的全部参数为把程序分行了,但是在实际编译的时候要排成一行,要不然编译不通过。

图14

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

第八步  回顾总结 其实最关键的还是要保证4G模块能和OneNET Studio建立连接,真正需要单片机控制的非常少,关键还是第一篇文章,以及这边文章的前几部的循序渐进的联网测试,还有就是为了保证数据能正常上报,一定要验证下单片机串口发送出来的数据格式是否正确。当然了,大家看了本篇文章以后应该大体原理都懂了,我本人从第一次接触OneNET Studio平台到能把自己的数据发送上去,前前后后也搞了一个多星期,同时把该平台的OTA远程升级也做了验证和实践,希望我的文章能帮助到大家。

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

  1. 001-STM32+Air724UG(4G模组)基本控制篇(阿里云物联网平台)-使用MQTT接入阿里云物联网平台

    前言 这节测试下使用STM32+Air724UG 和 Android 和 微信小程序 和 网页端 接入阿里云物联网平台 当前的各种物联网平台整体思想是提供一个网页端让用户去注册设备 这个设备就对应一个 ...

  2. 云平台编程与开发(六):物联网云平台的架构设计设想(基于X5Cloud云平台)

    1. 物联网概述 根据现在较通用的定义,物联网是指通过射频识别(RFID).红外感应器.全球定位系统.激光扫描器等信息传感设备,按约定的协议,把任何物品与互联网连接起来,进行信息交换和通信,以实现智能 ...

  3. 电信云平台NBIOT应用开发,使用C#测试

    在电信云平台使用NBIOT创建好产品和设备,完成基础的数据上传和指令下发后,下一步进行应用开发,本文主要介绍如何使用电信云平台的应用开发功能 登录物联网平台-->点击应用开发-->应用管理 ...

  4. 使用SAP云平台Mobile Service开发移动应用

    这是Jerry 2020年的第33篇文章,也是汪子熙公众号总共第216篇原创文章. Jerry之前的文章 SAP移动应用解决方案之一:HTML5应用 + Cordova = 平台相关的混合应用,曾经介 ...

  5. 基于stm32物联网开发板(1)

    基于stm32物联网开发板(1)   本开发板采用了STM32F103RET6作为核心CPU,72MHZ工作频率,512KB flash,64KB Sram.本开发平台外设模块有ESP8266 WIF ...

  6. 基于云平台的物联网架构和原理

    基于云平台的物联网架构和原理 云的服务架构 云计算是通过各种技术手段服务客户的一种方式,包括三层服务模式,即最底层的IaaS(基础设施即服务),中间层的PaaS(平台即服务),和顶层的SaaS(软件即 ...

  7. 基于stm32物联网开发板(2)--LCD屏幕

    基于stm32物联网开发板(2)–LCD屏幕 LCD应用展示: LCD屏幕应用 1.概述 屏幕尺寸为1.3寸,分辨率240*240,颜色格式RGB565,驱动IC:ST7789VW: 超大可视角度:大 ...

  8. 基于stm32物联网开发板(3)--SYN6288语音模块

    基于stm32物联网开发板(3)–SYN6288语音模块 1.SYN6288语音模块展示示例 SYN6288语音模块 2.概述   SYN6288-A语音合成模块是一款性价比更高,效果更自然的一款中高 ...

  9. 制作一个有趣的涂鸦物联网小项目(涂鸦模组SDK开发 CBU BK7231N WiFi+蓝牙模组 HSV彩色控制)

    实现的功能: l  APP控制月球灯 l  本地月球灯控制 l  APP控制"大白"颜色,实现各种颜色变身 l  门状态传感器状态APP显示 l  网络状态指示灯,连接服务器长亮, ...

最新文章

  1. Django REST Framework(DRF)教程:快速入门
  2. Tomcat 的类加载机制
  3. IIS上部署asp.net core2.1项目
  4. 第2章 状态机思维与状态机变量
  5. java request获取文件_request获取路径方式
  6. javascript进行遍历
  7. android 输出流对象,Android-IO流之对象操作流ObjectInputStream/ObjectOutputStream
  8. pla算法 matlab,PAL算法原理及代码实现
  9. Win10电脑死机怎么办
  10. 2022年MathorCup建模赛D题:MATLAB代码与若干问题
  11. Eclipse的环境配置
  12. MATLAB与SPSS接口
  13. 大学“电路分析基础”试题合集第八章
  14. 信庭嵌入式工作室-ARM应用技术之体系结构应用(下)
  15. matlab读取一幅灰度图,Matlab处理灰度图
  16. java 级数_编写一个Java程序实现级数运算。
  17. python 比较数字大小_Python:整数比较大小和输出 | 学步园
  18. SpingBoot/JAVA实现给图片加水印功能(通过thumbnailator库)
  19. Android中的网络编程
  20. 华为的用人标准有6条,经典并熟记

热门文章

  1. 【单片机外设学习之SPI】
  2. 〖Kindle Paperwhite〗升级、越狱、换屏保教程
  3. revit2016经常已停止工作,该如何解决呢?
  4. 代码一大抄,整个案例的搬是什么鬼!疑似冒充蚂蚁金服工程师?
  5. matlab里open命令,OpenSEES学习笔记
  6. IBM的DB2数据库常用命令及查询
  7. IMEI码查询[*#06#-手机串号查询]--你的手机到底是翻新机还是正品行货
  8. RNN循环卷积神经网络
  9. FFT学习笔记(DFT,IDFT)
  10. 基于51单片机火灾监测自动灭火装置Proteus仿真