最后更新:2021-10-27 16:53:55 手机定位技术交流文章
嗨,我叫小河程序员
今天,我们完成了与OneNET有关的信息共享,这是与先前在线问答会对应的一系列信息:STM32——ESP 8266——OneNET,它与整个技术路线的知识点概览相对应,我希望我的共享对你们有所帮助。
为了实现我们的最终目标,我们必须克服下列问题:
SES8266 NOOS SDK代码,内example档案里有很多演示材料
我们选择了一个基于MQTT协议的程序,即一个选项,因为我们使用了MQTT.fx软件,并通过MQTT协议成功地连接到OneNET平台。esp_mqtt_proj程序被转移,代码因此被调整。

我们现在要做的就是测试 MQTT相关程序 所以我们...esp_mqtt_proj例程从examples文件夹下拷贝到ESP8266_NONOS_SDK-3.0.4同时删除根目录中的所有内容 。examples、driver_lib、third_party删除后的项目结构如下图所示:

修改esp_mqtt_proj例程中的配置文件:ESP8266_NONOS_SDK-3.0.4esp_mqtt_projincludemqtt_config.h。

上面代码中:
MQTT_HOST: MQTT 服务器地址, 类型为一字符串, 可以是 IP 地址或 MQTT 服务器的域名, 我们在先前的上下文中使用 :studio-mqtt.heclouds.com
MQTT_port: MQTT服务器端口,一般是1883
MQTT_ Client_ID: 设备名称, 输入一个字符串, 例如 :XiaoHaLED
MQTT_USER: 产品编号, 输入单字符串, 例如 :hg8zt6E3LP
MQTT_PAS:获取信息,一个字符串,从案文结尾处四读取出,例如:
version=2018-10-31&res=products%2Fhg8zt6E3LP%2Fdevices%2FXiaoHaLED&et=1640594308&method=md5&sign=yBG2008b6SMfxiW6q6KmnA%3D%3D
STA_SSID: WI-Fi 热点的名称,以及允许模块登录的SSID。
Nota bene: 连接到 2.A 4G 无线网络; 否则, 它将无法连接!
WI- Fi 密码, 即 SSID 登录的 STA_ PSS 密码
我们面前的网站上提供了这一信息:
根据您与 OneNET 服务器连接的初步经验,可获取相关信息。
将上面信息填写至esp_mqtt_proj该项目的同等地位如下:

注意:
根据注释,①位置的CFG_HOLDER变量可在每次修改后修改,即+1或1,否则不会修改系统配置,即系统参数只有在[持有人的身份和前一参数不同]时才能更新(在改变系统参数时必须记住持有人的身份标识值)。
根据CFG_HOLDER如果更新了持有者标识符,则输入参数,如 WLANSSID、 WiFi 密码、 MQTT 域名、 端口号、 MQTT 用户名、 SysCfg 结构变量的密码,并将结构内容写入 Flash 。
根据注释,①位置的CFG_HOLDER变量+1或1可在每次修改后调整;否则,在每次修改后,系统配置不会被更改对数或对数可试性,+1或1或1可调整;在每次修改后,系统配置不会被更改;否则,如果CFG_HOLDER可变值变化, 导致新的固态写入参数, 如 WiFiSSID、 WiFi 密码、 MQTT 域名、 端口号、 MQTT 用户名、 SysCfg 结构变量的密码, 并将结构信息写入 Flash 。
因为 MQTT_ PASS 2 中的内容很长, 相关数组的长度必须手动修改 :

地图 3 位置, 使用协议版本, 使用 MQTT 。 Fx 软件设置在两个版本都相同 。

因为 OneNET 平台不允许 Will Message, 必须注意以下几点:

上述函数设置遗嘱设置,如果云没有匹配的遗嘱专题,则拒绝 MQTT 连接。
创建固态,然后通过ESP8266 DoWNOAD TOOL 软件翻译以更新固态:

最好在焚烧硬件之前先使用ERASE命令。
固态被下载,模块被重新启动,并获得以下序列端口输出:

正在检查 OneNET 后台, 您可以看到设备已成功连接 :

如果我们想远程操作这个装置, 我们需要让它订阅一个属性设定主题, 也就是说,$sys/{pid}/{device-name}/thing/property/set
Pid被产品识别码所取代,我们制作了以下产品:hg8zt6E3LP。
设备名 :XiaoHaLED。
因此,这一示例属性设定的主题是:$sys/hg8zt6E3LP/XiaoHaLED/thing/property/set
要连接到 MQTT 服务器,请使用回声功能。mqttConnectedCb我们赞同本职能中的上述信息:

具体实现代码为:
我们在控制台中的运维监控–>设备调试–>应用模拟器中改变目标设备XiaoHaLED【LED】本单元的系列印刷品产出如下:

以上打印信息打印在函数以接收电文,即:
如果ESP8266直接用于控制外部环境,则只需要上述功能。dataBuf数据分析是充分的,控制ESP 8266的全球定位系统组织足以根据结果采取各种行动。
如果ESP 8266只是用于联网和电文传输,而控制外部的责任则由STM32或其他单分门别类的计算机处理,那么数据传输就是所需要的一切。
第一种办法是避免外部掌握,因为外部掌握的性质比较一般,可根据自身的能力自由选择。
无法删除文件夹“{0}”。uart.c和Makefile如果只删除两个文件,其他文件可以删除。
无法获取文件夹“%s”:%suart.h和uart_register.h将用户_mqtt_proj 包含的文件夹中的现有文件夹替换为现有文件夹。uart.h和uart_register.h文件。
由于添加了一个新的子目录三维, esp_ mqtt_ proj 目录中的 Makefile 文件更新如下:SUBDIRS和COMPONENTS_eagle.app.v6二,有以下变动:
ESP 8266包括两个链接,必要的内容已经给出(见文本结尾处的参考,读作一)。 第ESP 8266条有两个链接,必要的内容已经给出(见文本结尾处的参考,读作一)。 UART0通常用于外部通信,而UART1则用作日志打印端口。

虽然现在所有印刷资料都正在通过UAR0印刷,但我们希望将印刷品系列改为UAR1。

删除屏蔽调试信息后,仅显示 UART0 输出相关属性设定信息,如下所示:

因此,我们可以观察到,系列助理可能收到服务器端提供的财产组合主题的内容,收到的电文的内容可以解释为完成设备的远程开关设置。
该系列辅助人员还被一台接收和解释序列数据的单一机器或STM32所取代,以便设备控制可移至单一机器或STM32终端。
除了接收遥控指示外,装置的端端通常提供设备特性,如果其他终端同意这个专题,其他终端可以同时接收该电文,因为装置向属性报告。
向 OneNET 服务器发布序列数据,并更改下列代码位置:

从前文中我们可以推断,如果设备特性要向服务器报告,设备特性的主题是:$sys/{pid}/{device-name}/thing/property/post
替代产品标识和设备:$sys/hg8zt6E3LP/XiaoHaLED/thing/property/post
发送的主题内容为:
要报告设备属性,请使用以下序列助手提供上述数据包:

您也可以同时更改多个设置 :
使用序列助手发送上述软件包,您也可以同时报告许多属性,以完成该设备的多重定性,详情如下:

该句涉及Demo最后一次访问测试。 OneNET 项目源是对公用号码后面的密钥的回答。
近一个月后,写了五个原件,问答会终于于今天结束。

我相信,通过提供这些网页,完全的解决方案已经解决了,你们其他人将能够通过使用STM32而不是一个序列助手向ESP 8266模块发送序列数据,向ESP 8266模块报告属性。 通过分析从STM32序列中收到的数据,可以设定设备属性。
文本结尾处有关于整个问题的有关文本, 读读它, 读读它,然后尝试做它, 并且很难看到相关的文本, 如果还存在问题, 我会带你们加入小组, 我们会讨论它。
仅此而已,OneNET的共享暂时停止了。如果小哈科的共享对你有利,请对哈爱表示感激和支持。
小Haco的新出版科, 以及每个职位背后的小建议, 应该对你有用。
除其他外,它涉及STM32、单膜装置、Qt和微小的应用。
问题:请建议 JSON 字符串压缩和格式验证工具 。
A:网上JSON格式工具 我不知道我在说什么
https://www.bejson.com/

发送了下列测试包:
{"id":"123","version":"1.0","params":{"Runtime":{"value":1234},"PowerSwitch":{"value":false}}}
I. 保姆课程,对虚拟机器进行了三重检查,允许你进入Ali Clouds网络平台。
二. 与ESP8266官方SDK从0到1的 " 发展快速介绍 " 。
(三) 密码太多,不要害怕,阅读密码时,必须共用一个神器。
四. 第一次连接到 OneNET 服务器
五. 通过大型白话网进行交流的方法。
本文由 在线网速测试 整理编辑,转载请注明出处。