前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >开发者成长激励计划-基于TencentOS Tiny 和 CH32V307的2.4G网关

开发者成长激励计划-基于TencentOS Tiny 和 CH32V307的2.4G网关

原创
作者头像
青岛啤酒
发布2022-08-10 03:45:09
4540
发布2022-08-10 03:45:09
举报
文章被收录于专栏:学习驿站学习驿站

1.简介

2.4G网关软件基于TencentOS Tiny,硬件基于 TencentOS Tiny CH32V_EVB RISC-V开发套件。可以实现子设备与网关,网关与服务器间数据及指令交互,实物如下图:

图片.png
图片.png

展示视频

视频内容

2.硬件部分

2.1 2.4G RF

2.4G RF使用的是si24r1模块,通过SPI接口与MCU连接,原理如下。

图片.png
图片.png

2.2 WiFi(板载)

开发板板载了一个esp8266 WiFi模块,通过串口AT命令进行控制,电路如下图所示:

图片.png
图片.png

2.3 显示(板载)

TFT LCD液晶显示模块用来向用户显示系统状态、参数或者要输入系统的功能。为了展示良好的视觉效果,开发板使用ST7789V 控制器驱动的TFT LCD显示屏,分辨率为240*240。该款LCD使用SPI接口,由于SPI接口空闲时引脚要上拉,因此下面的原理图中接了10k电阻上拉,然后才接入MCU引脚

图片.png
图片.png

3.云平台

此步骤在腾讯云IoT explorer 上完成项目、产品、设备创建、参数配置,为设备的接入做准备。首先需要建立一个项目,如“开发者成长激励计划”,在此项目下我们进行各种设备的开发。

图片.png
图片.png

3.1 网关

3.1.1 建立产品

这一步按照提示执行即可,注意第三步设备类型选择网关。

图片.png
图片.png

点击新建立的产品名称,进入以下页面,开始具体的设置产品的各种属性

3.1.2 建立物模型

这一步点击“新建自定义功能”添加网关的一些参数,如温度、电压等。以温度为例子,参数的属性x信息如下

图片.png
图片.png

3.1.3 设备开发

这部分没有改动,直接下一步。

3.1.4 交互开发

交互开发部分这里至涉及到配置小程序,有6个内容,如下:

图片.png
图片.png

例子:编辑面板

图片.png
图片.png

3.1.5设备调试

首先我们先新建一个设备,此设备对应这我们手中一个实际的物理设备。这里获取到关键的 设备名称 产品ID 设备秘钥,这三个参数是与服务器建立连接的关键。在此页面可以进行调试。

图片.png
图片.png

3.2 子设备

3.3 网关添加子设备

在创建产品页面,对网关设备进行子产品管理,如下:

图片.png
图片.png

在调试具体设备时,在子设备管理中执行如下,可将实际的子设备添加到网关中,进行测试

图片.png
图片.png

4.嵌入式软件

4.1 软件结构

4.2 2.4G RF收发

此部分主要包括以下部分:

代码语言:txt
复制
  1. void si24r1_port_init(void);//端口初始化
  2. spi_init();//SPI初始化
  3. void read_frame(void);//从si24r1模组中读取数据
  5. void EXTI15_10_IRQHandler(void);//si24r1模组中断(中断11)
  6. void receive_frame_task_entry(void * arg);//接收进程主体 
     const k_event_flag_t event_receive_frame;//定义了一个事件,用于收到数据后调用接收进程。

4.3 连接网络

此部分直接使用的TencentOS Tiny组件,只需要注意正确填写WiFi名和密码即可。

代码语言:txt
复制
  1. while (esp8266_tencent_firmware_join_ap("WiFi名", "密码") != 0) {
        printf("connect wifi... fail!\r\n");
         LCD_ShowString(30,140+16+16+16,"connect wifi fail",WHITE,BLACK,16,0);
     }

4.4 时间显示(RTC)

这部分直接调用的官方的库文件,主要是有一个结构体,只需要用好这个结构体就能满足简单应用:(遗憾的是开发板没有备用电池,断电后计数就会暂停)

代码语言:txt
复制
  1. typedef struct
     {
        vu8 hour;
        vu8 min;
        vu8 sec;
        vu16 w_year;
        vu8  w_month;
        vu8  w_date;
        vu8  week;
        } _calendar_obj;

4.5 LCD显示

此部分大部分使用的是历程的驱动,并且参考了这篇文章可以混合显示汉字和英文的函数。该部分所使用的关键函数有

代码语言:txt
复制
  1. void LCD_ShowStringCn(u16 x,u16 y,u8 *s,u16 fc,u16 bc,u8 sizey,u8 mode);//混合显示中英文。
  2. void LCD_Fill(u16 xsta,u16 ysta,u16 xend,u16 yend,u16 color);//在指定区域填充颜色
  3. void drawnow_task_enty(void * arg);//建立一个专门的进程,用于刷屏(网络状态,传感器数据,时间等);

实际的运行效果如下图:

图片.png
图片.png

4.6 连接服务器(mqtt)

此部分的逻辑没有搞懂,虽然能够上传数据到服务器上,但是不进行具体解释,运行的效果图如下:

图片.png
图片.png
图片.png
图片.png

5未完成部分

5.1 未实现以太网连接网络的功能

图片.png
图片.png

5.2 未测试设备的睡眠低功耗特性

5.3 在下位机和服务器连接的部分,还存在以下问题,导致该部分功能未完全实现。

5.3.1 还没有搞清楚网关和子设备如何通过“mqtt”与服务器相连

5.3.2 还没有理清网关如何自动添加子设备,以及保存子设备信息

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.简介
  • 2.硬件部分
    • 2.1 2.4G RF
      • 2.2 WiFi(板载)
        • 2.3 显示(板载)
        • 3.云平台
          • 3.1 网关
            • 3.1.1 建立产品
            • 3.1.2 建立物模型
            • 3.1.3 设备开发
            • 3.1.4 交互开发
            • 3.1.5设备调试
          • 3.2 子设备
            • 3.3 网关添加子设备
            • 4.嵌入式软件
              • 4.1 软件结构
                • 4.2 2.4G RF收发
                  • 4.3 连接网络
                    • 4.4 时间显示(RTC)
                      • 4.5 LCD显示
                        • 4.6 连接服务器(mqtt)
                        • 5未完成部分
                          • 5.1 未实现以太网连接网络的功能
                            • 5.2 未测试设备的睡眠低功耗特性
                              • 5.3 在下位机和服务器连接的部分,还存在以下问题,导致该部分功能未完全实现。
                                • 5.3.1 还没有搞清楚网关和子设备如何通过“mqtt”与服务器相连
                                • 5.3.2 还没有理清网关如何自动添加子设备,以及保存子设备信息
                            相关产品与服务
                            TencentOS Server
                            TencentOS Server 是腾讯云推出的 Linux 操作系统,它旨在为云上运行的应用程序提供稳定、安全和高性能的执行环境。它可以运行在腾讯云 CVM 全规格实例上,包括黑石物理服务器2.0。
                            领券
                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档