找回密码
立即注册
搜索
热搜: 活动 交友 discuz
发新帖

116

积分

0

好友

12

主题
发表于 2023-11-1 20:24:59 | 查看: 698| 回复: 1 IP:广东省东莞市 电信

本帖最后由 admin3 于 2023-11-1 20:24 编辑

本帖最后由 admin3 于 2023-11-1 20:14 编辑

一、AIR700E连上啊里云

1、首先你得有一个阿里云的账号,没有的话就注册一个

2、找到物联网平台

fa877c1deda544aea39dc54da5ebe40.png

3、选择华东2,点击公共实例

b04ddc5ce0956063fdf501814e6323f.png

4、创建产品

34b06d53ce5b1843362fd90edad98c8.png

5、给产品添加设备,这里添加两个设备,将CH32V307 上面的温湿度数据传到MQTTFX上面

7c43a39a4b11e6ae5dc03dc663521aa.png

6、回到产品处的功能定义

微信图片_20231030113843.png

微信图片_20231030114209.png

7、点击 发布上线

微信图片_20231030114533.png

微信图片_20231030114905.png

8、在产品设备管理里点击发布

微信图片_20231030114905.png

阿里云链接:[物联网平台_设备接入_设备管理_监控运维_数据服务-阿里云 (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

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

image.png

4、运行Luatools后会提示开始升级,点击开始,进行升级,升级完成后可正常使用。

image.png

5、LuaTools 支持最新固件获取、固件打包、项目管理、trace打印、单机烧录等功能。

6、固件烧录

Luatools版本>=2.1.70才支持780E/700E软件下载功能。 首先 USB 连接 PC,保持上电但不开机状态。 点击下载固件按钮,选中要下载的固件。

固件包后面会上传

微信图片_20231030202614.png

7、按住下载模式按键(boot 键)不放,同时再长按开机键开机,这时开发板会进入下载模式,luatool下载进度条会开始跑,这时可以松开 boot 按键。直到工具提示下载完成。 8、如果,未能成功进入下载模式,而是进入正常开模式,这时可以按住 boot 键,再短按复位按键,让开发板重启,重新进入下载模式。 9、如何判断有没有进入下载模式:可以通过 PC 端的设备管理器中虚拟出来的 USB 断开数量来判断:

正常开机模式:

image.png

下载模式:

image.png

10、查看SIM卡是否联网

请勾选4G模块USB打印

企业微信截图_16702187338612.png

无需修改串口波特率,保持当前值即可 将设备通过usb线连接到电脑,可以看到出现3个新的COM口,工具会自动打开端口

11、烧录脚本

烧录前需要获取固件 下载地址 https://gitee.com/openLuat/LuatOS/releases 固件是拓展名为soc的文件,这里用EC618的固件进行举例,长这样:

undefined

undefined

undefined

点击项目管理测试按钮,点击左下角的创建项目新建一个新项目 选好芯片使用的固件,选好脚本即可下载 demo类的脚本,可以前往LuatOS官方仓库,在demo文件夹可以找到 Luatools工具也自动下载了正式版本的一些实例脚本可以在某种型号\某个版本\demo文件夹看到,可以直接选择脚本进行烧录测试

12、查看日志

如果没有打开串口,点击打开串口即可查看日志 如果还没反应,检查通用串口打印是否勾选, 重新选择串口打开,或者试试点击重启串口

undefined

这样就可以看出是否联网了

13、需要再重新下载一次固件,就是第6步操作

14、AT命令发送

下载llcom串口工具,做如下设置。

image.png

输入对应AT命令点击发送

undefined

15、材料准备

  1. 开发板一套,包括天线SIM卡,USB线。

  2. PC电脑,串口工具

  3. 准备设备证书及产品证书。

    -设备证书
    {
      "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

具体交互流程如下所示

9d3b8fe2d9ec669ffdcdb5d048db6a8.png

这样就和啊里云建立了连接

a6872decf5d86c4e60020adb71a5fef.png

三、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

a81d49c1e1682f627a0a44c5e21017e.jpga81d49c1e1682f627a0a44c5e21017e.jpg

固件.rar

3.51 MB, 下载次数: 1

文档.rar

1.8 MB, 下载次数: 1

USART_MultiProcessorCommunication.rar

590.61 KB, 下载次数: 1

llcom.rar

2.91 MB, 下载次数: 1

发表于 2023-11-2 12:00:38 IP:广东省广州市 电信
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|国产电子社区 ( 沪ICP备2023018578号-1|

苏公网安备 32011102010465号


)|网站地图

GMT+8, 2024-7-27 18:55 , Processed in 0.060460 second(s), 22 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表