本帖最后由 admin3 于 2023-11-1 20:24 编辑
本帖最后由 admin3 于 2023-11-1 20:14 编辑
一、AIR700E连上啊里云
1、首先你得有一个阿里云的账号,没有的话就注册一个
2、找到物联网平台
![fa877c1deda544aea39dc54da5ebe40.png fa877c1deda544aea39dc54da5ebe40.png](data/attachment/forum/202310/30/104242pvukyvg3u3vjcuu3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300)
3、选择华东2,点击公共实例
![b04ddc5ce0956063fdf501814e6323f.png b04ddc5ce0956063fdf501814e6323f.png](data/attachment/forum/202310/30/104253gggondzynpgycy3d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300)
4、创建产品
![34b06d53ce5b1843362fd90edad98c8.png 34b06d53ce5b1843362fd90edad98c8.png](data/attachment/forum/202310/30/104701lr0z8mr9dn10ji0s.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300)
5、给产品添加设备,这里添加两个设备,将CH32V307 上面的温湿度数据传到MQTTFX上面
![7c43a39a4b11e6ae5dc03dc663521aa.png 7c43a39a4b11e6ae5dc03dc663521aa.png](data/attachment/forum/202310/30/110456lbvboebeps5uhh7e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300)
6、回到产品处的功能定义
![微信图片_20231030113843.png 微信图片_20231030113843.png](data/attachment/forum/202310/30/114036pp4rp3s4einpu8e8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300)
![微信图片_20231030114209.png 微信图片_20231030114209.png](data/attachment/forum/202310/30/114255tczz27rg21ezeh5v.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300)
7、点击 发布上线
![微信图片_20231030114533.png 微信图片_20231030114533.png](data/attachment/forum/202310/30/114630qrpru4rrrn8lreqt.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300)
![微信图片_20231030114905.png 微信图片_20231030114905.png](data/attachment/forum/202310/30/114936fbl1kxin11ow11xz.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300)
8、在产品设备管理里点击发布
![微信图片_20231030114905.png 微信图片_20231030114905.png](data/attachment/forum/202310/30/115113iw13brmjmibcmwra.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300)
阿里云链接:[物联网平台_设备接入_设备管理_监控运维_数据服务-阿里云 (aliyun.com)](https://www.aliyun.com/product/i ... ba84cf028806a._.V_1)
二、air700e的模块开发
1、win10的USB驱动无需安装,插入电脑后(Air780E/700E需要powerkey接地1.2S,VBAT供电4.2-3.3V,USB口和电脑相连,USB线为数据传输线并非充电线,区别在于线里有没有DM与DP 。一个很方便的验证方法为,C口插入手机,电脑是否弹出大容量存储设备,如果弹出则证明该线为数据线,反之则该线只能充电即只有VCC 和GND)会虚拟出如下端口:前2个口12,13可以用来发送AT命令,6口对应的为LOG口(也可能是前2个口是LOG口,已实际测试为准)。
![42c3a9e982e2fba32b0ab6974e42cd4.png 42c3a9e982e2fba32b0ab6974e42cd4.png](data/attachment/forum/202310/30/201355ht26snjff339yszp.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300)
2、Luatools是合宙提供的单机版调试工具,支持最新固件获取、固件打包、trace打印、单机烧录等功能。此工具适用于合宙的SoC、cat1模块、cat4模块、2G模块。
3、LuaTools 安装
下载Luatools_v2.7z,解压后是一个文件名为Luatools_v2.exe的运行程序。
新建一个 LuaTools文件夹,将Luatools_v2.exe拷贝或移动到LuaTools文件夹下
双击 Luatools_v2.exe开始安装,出现如下情况,点击更多信息选项,然后选择仍要运行选项即可完成安装。
![image.png]([img]https://sjwx.easydoc.xyz/36623104/files/l2uax3n1.png[/img])
![image.png]([img]https://sjwx.easydoc.xyz/36623104/files/l2uaxyl1.png[/img])
4、运行Luatools后会提示开始升级,点击开始,进行升级,升级完成后可正常使用。
![image.png]([img]https://sjwx.easydoc.xyz/36623104/files/l2ub1ffq.png[/img])
5、LuaTools 支持最新固件获取、固件打包、项目管理、trace打印、单机烧录等功能。
6、固件烧录
Luatools版本>=2.1.70才支持780E/700E软件下载功能。
首先 USB 连接 PC,保持上电但不开机状态。
点击下载固件
按钮,选中要下载的固件。
固件包后面会上传
![微信图片_20231030202614.png 微信图片_20231030202614.png](data/attachment/forum/202310/30/202857fidppd2quibtzrxd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300)
7、按住下载模式按键(boot 键)不放,同时再长按开机键开机,这时开发板会进入下载模式,luatool下载进度条会开始跑,这时可以松开 boot 按键。直到工具提示下载完成。
8、如果,未能成功进入下载模式,而是进入正常开模式,这时可以按住 boot 键,再短按复位按键,让开发板重启,重新进入下载模式。
9、如何判断有没有进入下载模式:可以通过 PC 端的设备管理器中虚拟出来的 USB 断开数量来判断:
正常开机模式:
![image.png]([img]https://cdn.openluat-luatcommunity.openluat.com/images/20221009111242010_image.png[/img])
下载模式:
![image.png]([img]https://cdn.openluat-luatcommunity.openluat.com/images/20221009111448780_image.png[/img])
10、查看SIM卡是否联网
请勾选4G模块USB打印
![企业微信截图_16702187338612.png]([img]https://cdn.openluat-luatcommunity.openluat.com/images/20221205133924504_%E4%BC%81%E4%B8%9A%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_16702187338612.png[/img])
无需修改串口波特率,保持当前值即可
将设备通过usb线连接到电脑,可以看到出现3个新的COM口,工具会自动打开端口
11、烧录脚本
烧录前需要获取固件 下载地址 https://gitee.com/openLuat/LuatOS/releases
固件是拓展名为soc的文件,这里用EC618的固件进行举例,长这样:
![undefined]([img]https://cdn.openluat-luatcommunity.openluat.com/images/20221202101058591_%E7%AC%AC%E4%B8%80%E6%AD%A5.png[/img])
![undefined]([img]https://cdn.openluat-luatcommunity.openluat.com/images/20221202101110954_%E7%AC%AC%E4%BA%8C%E6%AD%A5.png[/img])
![undefined]([img]https://cdn.openluat-luatcommunity.openluat.com/images/20221202101132041_%E7%AC%AC%E5%9B%9B%E6%AD%A5.png[/img])
点击项目管理测试按钮,点击左下角的创建项目新建一个新项目
选好芯片使用的固件,选好脚本即可下载
demo类的脚本,可以前往LuatOS官方仓库,在demo文件夹可以找到
Luatools工具也自动下载了正式版本的一些实例脚本可以在某种型号\某个版本\demo文件夹看到,可以直接选择脚本进行烧录测试
12、查看日志
如果没有打开串口,点击打开串口即可查看日志
如果还没反应,检查通用串口打印是否勾选, 重新选择串口打开,或者试试点击重启串口
![undefined]([img]https://cdn.openluat-luatcommunity.openluat.com/images/20221202101448229_%E6%97%A5%E5%BF%97.png[/img])
这样就可以看出是否联网了
13、需要再重新下载一次固件,就是第6步操作
14、AT命令发送
下载llcom串口工具,做如下设置。
![image.png]([img]https://cdn.openluat-luatcommunity.openluat.com/images/20220825181042346_image.png[/img])
输入对应AT命令点击发送
![undefined]([img]https://cdn.openluat-luatcommunity.openluat.com/images/20221107092258321_ec354522d4e5d1ad8e4b54d117c8ba0.png[/img])
15、材料准备
-
开发板一套,包括天线SIM卡,USB线。
-
PC电脑,串口工具
-
准备设备证书及产品证书。
-设备证书
{
"ProductKey": "k0d4gGK3Niz",
"DeviceName": "2000914ABCD",
"DeviceSecret": "882c58a01ab4493676e9588d8c7fda82"
}
--产品证书
{
"ProductSecret": "MrgdzHTznAZXrYQL",
"ProductKey": "k0d4gGK3Niz"
}
16、一机一密AT直连MQTT
当设备属于公共实例,使用一型一密预注册认证方式时,动态注册参数如下:
mqttClientId: clientId+"|securemode=3,signmethod=hmacsha1,timestamp=132323232|"
mqttUsername: deviceName+"&"+productKey
mqttPassword: sign_hmac(deviceSecret,content)
![6cbfddc7aa483e3d94087141a87e732.png 6cbfddc7aa483e3d94087141a87e732.png](data/attachment/forum/202311/01/193846en6zn6nuoswc52cc.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300)
具体交互流程如下所示
![9d3b8fe2d9ec669ffdcdb5d048db6a8.png 9d3b8fe2d9ec669ffdcdb5d048db6a8.png](data/attachment/forum/202311/01/195955bx7h2g2o2h6bvddy.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300)
这样就和啊里云建立了连接
![a6872decf5d86c4e60020adb71a5fef.png a6872decf5d86c4e60020adb71a5fef.png](data/attachment/forum/202311/01/200112jkk75k7sjzt95kl9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300)
三、CH32V307VCT6单片机与air700e通过串口通信的主要代码
int main(void)
{
char str1[250];
char str2[250];
char str3[250];
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
SystemCoreClockUpdate();// ʱ
Delay_Init();
USART2_Configuration();//USART2
USART3_Configuration();//USART3
//建立连接
Serial_SendString("AT+MCONFIG=\"k0d4gGK3Niz.2000914ABCD|securemode=2,signmethod=hmacsha256,timestamp=1698077679288|\",\"2000914ABCD&k0d4gGK3Niz\",\"8adc1c4d2583d6b8ae698930ec0b8a0d2c102e2b836b33452ed461ead98af81a\"\r\n");
Delay_Ms(100);
//建立 TCP 连接
Serial_SendString("AT+SSLMIPSTART=\"iot-06z00eojstjzgef.mqtt.iothub.aliyuncs.com\",1883\r\n");
Delay_Ms(2000);
//建立MQTT会话
Serial_SendString("AT+MCONNECT=1,60\r\n");
Delay_Ms(1000);
USART_Printf_Init(115200);
printf("SystemClk:%d\r\n", SystemCoreClock);
oled_init();//OLED ʼ
oled_clear();//
OLED_ShowStr(28,0,"CH32V307!",16);
Input_Capture_Init(1000-1,72-1);// 2KHz Ƶ
OLED_ShowCHinese(0,4,9);
OLED_ShowCHinese(16,4,10);
OLED_ShowCHinese(32,4,11);
OLED_ShowCHinese(48,4,12);
oled_show_char(64,4,':',16);//
OLED_ShowCHinese(0,6,9);
OLED_ShowCHinese(16,6,10);
OLED_ShowCHinese(32,6,13);
OLED_ShowCHinese(48,6,12);
oled_show_char(64,6,':',16);//
OLED_ShowCHinese(0,2,14);
OLED_ShowCHinese(16,2,15);
OLED_ShowCHinese(32,2,16);
OLED_ShowCHinese(48,2,17);
oled_show_char(64,2,':',16);//
// GPIO_Configuration();
// LED_Off();
while(DHT11_Init())
{
printf("DHT11 Error \r\n");
Delay_Ms(100);
}
while(1)
{
DHT11_Read_Data(&temp,&humi);
printf("temp:%dC,humi:%d%RH ",temp,humi);
Delay_Ms(1000);//建议不要低于这个数值
wendu();//温度显示
shidu();//湿度显示
distance = Ultrasoniclength(); //
printf("DISTANCE:%dcm\r\n",distance);// ֵ
chaoshenbo();//超声波距离显示 ʾ
Serial_SendString3("温度:");
Serial_SendNumber(temp, 2);//发送字符串,长度为2
Serial_SendString3("C ");
Serial_SendString3("湿度:");
Serial_SendNumber(humi, 2);//发送字符串,长度为2
Serial_SendString3("%RH ");
Serial_SendString3("距离:");
Serial_SendNumber(distance, 3);//发送字符串,长度为3
Serial_SendString3("cm ");
Serial_SendString3("\r\n");
sprintf(str1, "AT+MPUB=\"/sys/k0d4gGK3Niz/2000914ABCD/thing/event/property/post\",0,1,\"{\\22params\\22:{\\22long:DetectDistance\\22:%d}}\"\r\n",distance);
Serial_SendString(str1);
Delay_Ms(300);//建议不要低于这个数值
sprintf(str2, "AT+MPUB=\"/sys/k0d4gGK3Niz/2000914ABCD/thing/event/property/post\",0,1,\"{\\22params\\22:{\\22long:IndoorTemperature\\22:%d}}\"\r\n",temp);
Serial_SendString(str2);
Delay_Ms(300);//建议不要低于这个数值
sprintf(str3, "AT+MPUB=\"/sys/k0d4gGK3Niz/2000914ABCD/thing/event/property/post\",0,1,\"{\\22params\\22:{\\22long:CurrentHumidity\\22:%d}}\"\r\n",humi);
Serial_SendString(str3);
Delay_Ms(300);//建议不要低于这个数值
if(flang==1)
{
switch(Res)
{
case '1':
LED_Off();
break;
case '0':
LED_On();
break;
}
flang=0;
}
}
}
四、实物演示效果
![d36551eb8a7e2808b69afdd85cc6d5b.png d36551eb8a7e2808b69afdd85cc6d5b.png](data/attachment/forum/202311/01/201301cw6jbvwpbsdisllq.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300)
![a81d49c1e1682f627a0a44c5e21017e.jpg a81d49c1e1682f627a0a44c5e21017e.jpg](data/attachment/forum/202311/01/201336yar6u7k0ag7u9ggu.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/300)
![a81d49c1e1682f627a0a44c5e21017e.jpg a81d49c1e1682f627a0a44c5e21017e.jpg](data/attachment/forum/202311/01/201327ui6rqmm773nnd6nu.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/300)