当前位置:首页 » 文件管理 » arduino数据上传

arduino数据上传

发布时间: 2023-09-23 08:24:25

⑴ 如何使用 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复制代码以上就是连接阿里云的数据包格式及发布数据的格式,由于时间问题没有做订阅的数据包分析,下一次更新订阅的内容。

⑵ 如何在Atom编译Arino程序和上传到单片机

如果编译和上传分离到不同的机器上执行,可以使用下面方式。
依赖

安装arino环境
sudo apt-get install arino

编译

在Arino IDE环境下,写好源码程序(以.ino结尾的文件)。然后
Arino -> Preferences ->”Show verbose output ring”选择”compilation”。点击编译,在下方的输出框最后一行显示如下内容
/usr/share/arino/hardware/tools/avr/bin/avr-obj -O ihex -R .eeprom /tmp/build355782919138539048.tmp/Blink.cpp.elf /tmp/build355782919138539048.tmp/Blink.cpp.hex

可以得知, 源码(.ino)编译后生成的二进制文件为/tmp/build355782919138539048.tmp/Blink.cpp.hex

上传

把上一步编译生成的二进制文件上传到arino控制板上。
/usr/share/arino/hardware/tools/avrde -patmega2560 -cwiring -P/dev/ttyACM0 -b115200 -D -Uflash:w:/tmp/build355782919138539048.tmp/Blink.cpp.hex:i

热点内容
8加6算法 发布:2024-05-18 15:04:25 浏览:737
名图16款尊享什么配置 发布:2024-05-18 14:55:37 浏览:584
我的世界怎样刷出32k服务器 发布:2024-05-18 14:32:32 浏览:565
c语言程序设计江宝钏 发布:2024-05-18 14:32:22 浏览:780
右击文件夹总是转圈圈 发布:2024-05-18 14:31:10 浏览:696
新建数据库phpmyadmin 发布:2024-05-18 14:22:38 浏览:736
安卓手机设备连接在哪里 发布:2024-05-18 14:08:28 浏览:820
路由器的密码最多是多少位 发布:2024-05-18 13:58:18 浏览:420
扫描服务器名称如何填 发布:2024-05-18 13:36:29 浏览:115
芒果缓存的视频看不了视频怎么下载不了 发布:2024-05-18 13:35:14 浏览:520