聚丰项目 > 基于AB32VG1的用于演示的智能家居盒子

基于AB32VG1的用于演示的智能家居盒子

【产品功能】 1. 用户可以通过"盒子"的按键选择控制三色灯的开关和电机的开关 2. 通过"盒子"本地按键操作的灯和电机的状态可以同步到手机APP 3. oled屏同步显示控制内容和控制后的状态

小默叔叔MC 小默叔叔MC

分享
1 喜欢这个项目
团队介绍

小默叔叔MC 小默叔叔MC

团队成员

小默叔叔 自由开发者

分享
项目简介
【产品功能】 1. 用户可以通过"盒子"的按键选择控制三色灯的开关和电机的开关 2. 通过"盒子"本地按键操作的灯和电机的状态可以同步到手机APP 3. oled屏同步显示控制内容和控制后的状态
硬件说明

【硬件说明】

          系统框图.png

          1.因为AB32VG1的开发板接口是arduino的,所以外设是用到了以前工作的一个arduino接口的转接板,用到了硬件外设有:OLED(SPI接口@@)、RGB_LED(IIC接口,,,就是这么怪)、直流电机(GPIO)、DHT11(GPIO)、按键(GPIO)

           扩展板.png

      

                           - OLED(SPI接口)       --  软件模拟SPI:SCL:PA.0  SDA:PA.1  DC:PA.2  CS:PE.4

                           - RGB_LED(IIC接口)    --  软件模拟IIC:SDA:PE.2  SCL:PE.3

                           - 直流电机(GPIO)      --  使用IO:GPIO:PA.6

                           - DHT11(GPIO)        --  使用IO:GPIO:PF.0

                           - 按键(GPIO)         --  使用IO:电机控制按键:PE.1  灯控制按键:PA.5

                           - 串口(UART)         --  使用串口1  波特率:115200

   

             a. oled原理图【SPI】:

                    oled.png

               b. RGB_LED 灯 【IIC】:

                   RGB.png

               c.直流电机【GPIO】:

                  motor.png

               d.DHT11【GPIO】:

                  dht.png

               e.按键【GPIO】:

                  key.png

               f.外接接口:

                接口.png

          2.当前进度用到的硬件有:oled 12864 屏1个、按键2个、RGB灯1个、WiFi模组1个、手机1个、coder 1个

          3.原理图先不放了,硬件外设与开发板的接口【晚点】时候补充

          4.开发板介绍

          ab32vg1-prougen 是 中科蓝讯(Bluetrum) 推出的一款基于 RISC-V 内核的开发板,最高主频为 120Mhz,该开发板芯片为 AB32VG1。

          该开发板常用板载资源如下:

          开发板.png

          - MCU:AB32VG1,主频 120MHz,可超频至 192MHz,8Mbit FLASH ,192KB RAM。

          - 常用外设

          - LED: RGB灯

          - 按键: 3 个, USER(s2,s3) and RESET(s1)

          - 常用接口:USB 转串口、SD 卡接口


软件说明

【软件设计】

软件设计框图.png

         1.  软件初始化会创建几个线程"uart_thread"、"button_thread"、"event_manager_thread"、"dht11_thread"、"oled_thread"

         2.  串口线程"uart_thread":负责与WiFi模组通讯,接受云端的控制指令和上报本地操作后的设备状态

         3.  按键线程"button_thread":处理按键的不同触发状态,用来区分用户的按键方式来控制三色灯和电机的开关状态

         4.  时间管理线程"event_manager_thread":用于对控制事件的接受和处理相对于的函数逻辑

         5.  温湿度检测传递线程"dht11_thread":用于接收温湿度数据并传递给OLED显示对应状态

         6.  oled显示线程"oled_thread":屏幕用于显示同步用户本地操作和操作结果

         7.  使用了消息队列和事件传递同于线程间通讯

         8.  SD card本想用sqlite3存储温湿度数值和一些音频内容,通过音频部分播出,所以,,还没做,,,

         9.  光敏传感器本想做夜晚休眠,白天开始工作,但比较普通,先鸽掉。。

         10.  本想做一个IoT网关,可以采集设备端数据的装置,但因为各种原因,做了个设备端


【RT-Thread使用说明】

         1. 内核部分:使用线程、信号量、消息队列、事件处理

         2. 组件部分:FinSH、ulog(只在串口线程用到)

         3. 软件包:dht11、ssd1306、multibutton

         4. 设备驱动:GPIO、SPI、IIC、UART


【gitee代码仓库地址】

         项目介绍详细可以看代码 readme.md

         https://gitee.com/hanxiaomo9527/ab32vg1_smarthome_box_demo

微信截图_20211214142409.png

演示效果

【演示效果】


           B站作品演示https://www.bilibili.com/video/BV1pY411W726?share_source=copy_web

                                             微信截图_20211213210805.png

1.png

6.png


评论区(0 )