最后更新:2022-06-10 04:58:54 手机定位技术交流文章
本机的主要功能是将OneNET的MQTT服务器连接到自制移动应用程序,同时接收和显示平板的数据,并远程控制平板上的LED灯。
虽然OneNET有应用程序管理,它可以实现移动终端控制面板,但这有点简单,没有达到完成水平,教室几乎无法通过。
1,STM32F103C8T6最低系统板
ESP8266-01S模块
3.在OneNET平台创建MQTT协议产品并创建两个设备
安装E4A软件,软件不是几百万下载链接
由于它是连接的OneNET MQTT服务器,地址端口是固定的和不变的。
产品ID、设备ID和授权信息可以从OneNET平台获得,这没什么可说的。
订阅按钮: EndTopic主题订阅主题
发布按钮:发布主题是AppToic消息,消息内容为12345
三个绿色框分别是轻度值、温度值和湿度值。 这里的温度湿度是自调整的,而不是实际的温度湿度。
第一个开关:用主题AppToic,KEY:1或KEY:0发布消息
第二个开关:发布主题AppToic,LED 1:1或LED 1:0的讯息
EndTopic是单片终端消息发布主题
"Light":152.7, "Temp":104, "Humi":104}是消息内容
AppTopic是一个从 app 端发布的信息主题
这是消息的内容
在APP和单片端口上的设备在线显示。
(1)从原来的STM32F103RC变为STM32F103C8
(2)在全球宏定义中更改STM32F10X_HD为STM32F10X_MD
(三)替换原先的start_stm32f10x_hd。 删除s的启动文件并添加start_stm32f10x_md.s
启动文件
在h文件中,将HSE_VALUE宏的值从原来的12M变为8M
在c文件上方的三个宏定义分别填充了连接平台的三个元素
在c中,系统需要连接热点名称和密码
(7)其他例子中的OneNet_SendData()端口;函数
(8)端口传感器采集数据和LED(PC13)初始化代码
上传有关数据的代码如下:
数据封装函数
该功能是将数据装入JSON格式.
当命令从APP端接收时,命令处理器OneNet_RevPro()被调用以根据消息内容控制单片机。
该函数的内部代码部分如下:
该部分主要讨论如何制作手机应用,以连接到OneNET平台,获取数据和命令来控制LED灯光。 该应用是用E4A中文Android编程开发的,编程思维和C语言非常相似,是中文编程,只需一天就能掌握。
访问云平台主要依靠上E4A的 mqtt通信组件,这个组件命令有八种方法,七个事件。从单片编程的角度来看,方法相当于函数,可以人为的去调用,事件相当于中断,不需人为调用。连接到OneNET的MQTT服务器使用连接服务器方法。
调用连接服务器方法需要通过七个参数,参数一是服务器地址端口,例如OneNET的MQTT服务器地址和端口;参数2填入产品ID;参数3填入授权信息;参数4填入设备ID;通过点击连接按钮,你可以调用连接服务器的方法,实现访问云平台的功能。
订阅和发布分别使用 mqtt 通讯组中的订阅和发布方法,并通过相应的按钮点击事件分别调用这两个方法。
订阅和出版程序如下写.
调用订阅消息方法必须传递两个参数,参数一是订阅对象,为了接收单片端口发出的主题消息,这里的订阅是EndTopic. 参数2是消息策略.你可以填进0,1,2,这里填入0,指示只发送一个转发消息,收不收都不关心,这是因为单片端口会发出主题消息几次,所以你不必每次收到它。
调用释放方法必须通过四个参数,参数一是消息主题,在这里填“AppTopic”;参数二是消息内容,参数三是消息策略,在这里填1
由于消息不仅是光值,而且是温度和湿度,数据在单片端口以JSON格式包装,然后再释放。
当应用程序结束时收到消息时,它触发 mqtt通信中的接收事件,在这事件里面,我们用E4A中的JSON操作组件分析消息内容,在JSON对象中存储分析处理的内容,然后使用JSON操作组件内文本值方法获取JSON对象中指定的数据成员的值,最后, 将此值分配给相应的显示标签.
接收消息事件程序如下:
这里,例如,光开关的控制,其他控制功能类似,如下面所示,光开关组件的状态在事件程序中被更改。
单片端口收到APP端口发出的讯息后,消息解包函数提取数据包的主题、消息内容和消息策略。如果消息策略为1,则先返回Ack到服务器上,然后判断是否有程序设计的命令字符串在消息内容中,如果这样, 执行相应的程序.
如果你需要它,你可以请我获取源代码,如果我有的话,我会回答。
本文由 在线网速测试 整理编辑,转载请注明出处。