Ⅰ 玩转 ESP32 + Arino (十六) 通过mqtt协议连接阿里云
需要用到的库:
引入"PubSubClient.h"后
打开"PubSubClient.h"
修改如下内容:
关于MQTT协议, 请参考文章: https://zhuanlan.hu.com/p/89057819
请参考我之前整理的文档:
【腾讯文档】MQTT连接阿里云示例(1) https://docs.qq.com/sheet/DWXBaUE9nWmZVaGJX
如果使用了AliyunMqttArino, 就不需要关系协议的报文和加密方式了
首先创建一个mqtt客户端
返回值: 连接结果
返回: 状态码
mqttClient.publish(主题, 内容)
首先, 创建产品:
其次, 为产品添加设备
第三, 查看设备关键信息:
创建完后,我们发现系统已经自动创建了一些功能定义
找到产品的功能页面, 点击"编辑草稿"
最后发布新的物模型
非常简单的修改, 只修改了要发送json里的param
注意同步修改param和json的内存占用大小
Ⅱ 为什么Arino示例程序通不过,显红色
原因可能是:
主IC的BOOTLOAD被破坏;问题版本;USB线被拉扯到或者在使用串口通信的时候操作不当;在晶振旁边的电容焊得不对。以上出现问题原因的解决办法:主IC的BOOTLOAD被破坏:解决方法是重新烧写一下BOOTLOAD;版本问题:比如NANOMINI要在下载时按下RESET键,这种情况的解决方法是下载时按住RESET键,当电脑发射灯开始闪烁时松手;USB线被拉扯到,或者在使用串口通信的时候操作不当:拔掉USB线后再插上,重新下载程序;在晶振旁边的电容焊得不对:去维修店维修一下。
Ⅲ arino如何加密AVR芯片
使用usbasp修改对应的加密熔丝位,如果加密了以后将不能再通过串口烧录程序
Ⅳ 以前上传到arino板里面的程序怎么下载下来
读不出来了,就算avr芯片没有加密,读出来的也是二进制文件。
Ⅳ arino 程序解析, 求真正理解单片机的牛人
有以下疑问:
1. SoftPWMSet 这是什么鬼? arino的pwm输出,可以直接使用analogwrite函数。若是你自己写的,;源文件丢出来给人看看是啥。
2. 还有"pins_arino.h"也是,如果是自己写的,都把它贴出来。
3. arino的中断,不是这样用的。直接使用<avr/interrupt.h>,会造成冲突.
4. 对你这个程序,你遇到的困难是?想跟网友求助那个问题?看了10多分钟,还是一头雾水。你这个我大概看了下,目测你的程序是这样的:3,5,10,9,这四个引脚来控制两个直流电机,直接扩流来驱动电机,引脚8接的是一个LeD,用于显示状态,还有个11引脚,从注释的字面上理解,应该是超声波的相关引脚,但是一个引脚,超声波,我愚钝,看不出来的是干嘛。
看了10多分钟,还没搞懂你想要干嘛,根据超声波测得的距离,来控制小车前进后退?还是前进过程中,超声波检测到障碍来做避障?
根据前面的分析,你这段代码,肯定是不通过编译的,错误提示呢?
你要网友帮你修正程序,但是又不知道你的需求,怎么改?
总之,分给我吧~~~
Ⅵ Arino GPRS模块的一些坑
要做一个偏远地区的物联网控制应用,考虑了多种通信方式,据我所知总共也就这几种:有线,WIFI,GPRS。其余的什么MQTT,XBEE,RFID等等也离不开网络,或者可以这样设计:用RFID做设备间信息传输,然后部署一台另外的设备负责把最终信息存储设备的信息通过网络发送到服务端,这样能减少一些联网设备,不过感觉意义不大。
首先是第一个坑 ,现在arino gprs设备几乎都是使用的2G通信,而运营商的2G通道渐渐都关闭了,会伴随着速度缓慢,信号丢失,无反应等各种情况,所以有时候写出来程序调试半天发现是通信的问题,直接让人怀疑选型gprs是个错误,这时候就要在通信程序中加入各种判断,考虑各种情况,工作量大幅上升。
去V2EX发帖吐槽,总结了网友给出消息:摩拜单车锁用的通信方式是移动定制的4G物联网流量卡,公路上的抓拍摄像头使用的是有线连接,自动货物出售机普遍采用4G物联网卡,远洋船舶通信是卫星信号,流量费贵出天际。总之GPRS通信处于被淘汰的边缘了。
应该有人问,那为什么不选4G?一个字:“穷”,arino官方有支持2G/3G/4G的模块,一个将近900元,在硬件领域,有时候1分钱都要比较,不是斤斤计较,因为大量的设备意味着造价数量级的升高,同样能给出解决方案,老板肯定会选择报价低的。自己做?我反正做不出。
第二个坑 ,arino gprs通信模块便宜的有A6,SIM800,SIM900,这些模块发送一个HTTP GET请求都要非常多的步骤,甚至A6模块要自己实现HTTP请求,因为它自带的只有TCP,更别说加密请求,生成鉴权token等东西了,这一套写下来,没有个几千行搞不定。
第三个坑 ,耗电量大,GPRS本就不是为物联网设计的,它甚至要外部供电,通信瞬间电流可达到2A,瞬间RF功率2W……耗电量刷刷的~
总之,以后想选型GPRS模块的朋友要做好心里准备,再加上近期的伪基站诈骗一夜一无所有的事件,2G短信通道会被关闭的更多,GPRS不再是一个好的选择方式。
Ⅶ arino程序问题
在 int vol = analogRead(A0) * (5.0 / 1023.0*100) ; //读取LM35温度值
上面。。多个 “}”
while(1) 多余了吧,loop本身就是循环
Ⅷ 如何使用 NB-Iot + Arino 通过MQTT协议上传数据至阿里云平台
有很多通信模块只有TCP功能,没有MQTT功能,比如WIFI,W5500等模块,还有一些NBIOT模块,但是又想连接阿里云物联网平台,官方提供了操作系统,需要自己移植,很麻烦,比较难看得懂。就在想有没有一些简单一定的方法。
心想MQTT是基于TCP的,能否使用TCP转MQTT?因此就想使用TCP协议然后转MQTT协议连接阿里云物联网平台,经过试验证明是可以的。
首先我们先分析一下如何登陆接入Onenet平台。
先从它数据格式开始分析。首先我们要从后台取出三个信息,我们以这个为例。
我们把产品ID,设备名称,设备秘钥,简称三要素 (具体是什么看你自己的设备)
其实阿里云物联网平台的MQTT协议用的就是标准的,不过它加入了自己的认证方式。
MQTT协议需要上传四个参数,报活时间,clientID,用户名,密码。
那么阿里云的就在clientID,用户名,密码做了手脚。
clientID比较长,按照一定的格式
用户名:设备名和秘钥组成
密码:使用了加密串进行了加密,有sha1或者MD5加密方式
下面我们来介绍一下
MQTT接入都是发十六进制的数据。
么我们发送的时候就是这样子的一串数据
0x74 0x00 0x04 0x4d 0x51 0x54 0x54 0x04 0xC0 0078 0033 0x61 0x62 0x63 0x7c 0x73 0x65 0x63 0x75 0x72 0x65 0x6d 0x6f 0x64 0x65 0x3d 0x33 0x2c 0x73 0x69 0x67
0x6e 0x6d 0x65 0x74 0x68 0x6f 0x64 0x3d 0x68 0x6d 0x61 0x63 0x73 0x68 0x61 0x31 0x2c 0x74 0x69 0x6d 0x65 0x73 0x74 0x61 0x6d 0x70 0x3d 0x31 0x32 0x30 0x7c 0009
0x35 0x36 0x37 0x38 0x26 0x31 0x32 0x33 0x34 0028 0x32 0x32 0x32 0x37 0x35 0x30 0x44 0x45 0x44 0x46 0x45 0x34 0x46 0x37 0x37 0x34 0x30 0x30 0x32 0x45 0x45 0x38 0x37 0x45 0x45 0x44 0x32 0x39 0x43 0x46 0x44 0x30 0x36 0x33 0x38 0x43 0x35 0x46 0x36 0x36
十六进制解释
数据长度:0x74
协议数据长度 0x00 0x04
协议类型: 0x4d 0x51 0x54 0x54
协议数据: 0x04 0xC0
keepAlive数据:0078
ClientID长度:0033
ClientID: 0x61 0x62 0x63 0x7c 0x73 0x65 0x63 0x75 0x72 0x65 0x6d 0x6f 0x64 0x65 0x3d 0x33 0x2c 0x73 0x69 0x67 0x6e 0x6d 0x65 0x74 0x68 0x6f 0x64 0x3d 0x68 0x6d 0x61 0x63 0x73 0x68 0x61 0x31 0x2c 0x74 0x69 0x6d 0x65 0x73 0x74 0x61 0x6d 0x70 0x3d 0x31 0x32 0x30 0x7c
用户名:0009
用户名: 0x35 0x36 0x37 0x38 0x26 0x31 0x32 0x33 0x34
密码长度:0028
密码: 0x32 0x32 0x32 0x37 0x35 0x30 0x44 0x45 0x44 0x46 0x45 0x34 0x46 0x37 0x37 0x34 0x30 0x30 0x32 0x45 0x45 0x38 0x37 0x45 0x45 0x44 0x32 0x39 0x43 0x46 0x44 0x30 0x36 0x33 0x38 0x43 0x35 0x46 0x36 0x36复制代码上面的就是连接服务器的连接包
下面呢,我们来做个发布包(上传数据到服务器)
0x30 0x1D 0009 2f7379732f706f7374 0x7b 0x70 0x61 0x72 0x61 0x6d 0x73 0x3a 0x7b 0x74 0x65 0x6d 0x70 0x3a 0x31 0x30 0x7d 0x7d
十六进制数据解释
数据头:0x30
数据长度:0x1D
TopicName数据长度:0009
TopicName数据内容:2f7379732f706f7374
主体json数据: 0x7b 0x70 0x61 0x72 0x61 0x6d 0x73 0x3a 0x7b 0x74 0x65 0x6d 0x70 0x3a 0x31 0x30 0x7d 0x7d复制代码以上就是连接阿里云的数据包格式及发布数据的格式,由于时间问题没有做订阅的数据包分析,下一次更新订阅的内容。