加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入

【RT-Thread作品秀】智能管家精灵

2020/12/22
682
服务支持:
技术交流群

完成交易后在“购买成功”页面扫码入群,即可与技术大咖们分享疑惑和经验、收获成长和认同、领取优惠和红包等。

虚拟商品不可退

当前内容为数字版权作品,购买后不支持退换且无法转移使用。

加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
放大
方块图(4)
  • 方案介绍
  • 相关文件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

【RT-Thread作品秀】智能管家精灵

作者:七星岩

概述(说明应用产生的背景、实现功能)

主控平台以 ART-PI 开发板为核心主要任务是抓取网络数据、如天气、疫情等,并由OLED实时显示最新数据,同时将抓取的数据当做log文件存储在SD卡上,供后续分析使用。

并推送室内环境信息如温度,湿度到ONENET云端,,后续将扩展更多室内传感器,并同步的云端。由于时间原因,计划要做的摄像头室外监控,图片、视频传送没有在本次提交中实现。

开发环境(所采用的软、硬件方案)

硬件

  1. 主控:ART-PI(STM32H750XB
  2. MicoKit-Ext 板

软件

  1. RT-Thread 版本:RT-Thread V 4.0.3
  2. 开发工具及版本:RT-studio 2.0.0

RT-Thread使用情况概述(简要总结下应用中RT-Thread使用情况:内核部分、组件部分、软件包部分、内核、其他)

(1)内核部分:调度器,信号量,libcpu/BSP。

 调度器:创建多个线程来实现不同的工作。

信号量:用来同步线程。

libcpu/BSP:UART 驱动。

(2)组件部分:UART 框架,

UART框:使用UART框架来与ART-PI-DOCK扩展板进行数据交互。

Fal Flash 抽象: Flash 抽象层,是对 Flash 及基于 Flash 的分区进行管理、操作的抽象层,对上层统一了 Flash 及 分区操作的 API

LittleFs: 适合嵌入式系统的小而安全的文件系统

(3)软件包部分:

EasyFlash: 一款开源的轻量级嵌入式Flash存储器

cJSON:C 语言实现的极简的解析 JSON 格式的软件包。

Dht11: 读取DHT11数字温湿度传感器的温度和湿度值。

WebNetClient 软件包:由 RT-Thread 自主研发的,基于 HTTP 协议的 Web 服务器实现,它不仅提供设备与 HTTP Client 通讯的基本功能, 而且支持多种模块功能扩展,且资源占用少、可裁剪性强,充分满足 开发者对嵌入式设备服务器的功能需求。

Onenet: RT-Thread 针对 OneNET 平台连接做的的适配,通过 这个软件包,可以让设备在 RT-Thread 上非常方便的连接 OneNet 平台,完成数据的发送、接收、设备的注册和控制等功能

MbedTLS: C 编程语言以最小的编码占用空间实现了 SSL/TLS 功能及各种加密算法,易于理解、使用、集成和扩展,方便开发人员轻松地在嵌入式产品中使用 SSL/TLS 功能.

Netutils: RT-Thread 可用的全部网络小工具集合。

Pahomqtt: 是 Eclipse 实现的基于 MQTT 协议的客户端,本软件包是在 Eclipse paho-mqtt 源码包的基础上设计的一套 MQTT 客户端程序。

u8g2:单色屏驱动,现在移植到了 rt-thread,可以满足各种各种各样的需求。

硬件框架(概述应用所采用的硬件方案框图,并对核心部分做介绍)

硬件部分主要是ART-PI + 一块IOT外扩板

软件框架说明(介绍应用所采用的软件方案框图、流程图等,并加以解说)

软件部分也相对简单,基于ART-PI 的WiFi样例程序,加上几个独立的模块(流程图见文档)

  1. 按键扫描模块
  2. OLED数据显示模块
  3. DHT11设备温湿度读取模块
  4. 心知天气预报API解析模块
  5. 疫情数据解析模块(不完善)
  6. 本地数据上传OneNet云

软件模块说明(介绍应用软件关键部分的逻辑、采用的实现方式等)

主要函数说明:

(1)get_Weather_Data():读取并解析心知API天气数据,写入封装数据结构,保存到SD卡log文件。

(2)get_NCOV_Data:读取并解析腾讯疫情API数据写入封装数据结构,;

(3)oled_display:实时扫描三个按键,并得到显示状态,并根据当前状态显示指定页面;

(4)main_interface:,根据网络通断显示图标,根据按键左移右移显示当前状态,根据选中主题,显示指定页面;

(5)oled_draw_menu:画出主页面布局

(6)oled_time_show:获取实时时间,并在OLED屏幕,画出小时:分钟,和年月日。

(7)oled_weather_report:在OLED屏幕画出室内温湿度和天气预报的温度天气情况。

(8)oled_covid_report:在OLED屏幕画出疫情解析所得数据。

(9)onenet_upload_entry onenet同步任务

(10)onenet_mqtt_upload_digit:onenet网络平台上温度传数据。

(11)key_thread_entry:按键扫描任务。

演示效果(演示效果请采用3张高清图片,并录制一段不少于1min视频解说应用所实现的效果,视频上传至B站或者腾讯视频或其他视频平台,给出链接即可)

演示视频:

 

代码地址(代码可上传至gitee,给出链接地址)

https://gitee.com/xianting77/art-pi-smart-assist.git

比赛感悟(可以围绕这次比赛学到了什么,克服了哪些困难,有哪些收获,不低于200字)

认识RT-thread应该有10年了,10年来,我一直关注着RT-thread,连续参加来17,18,19年的开发者大会,并试用过基于RT-thread的IOT camera, 柿饼。可以说是看着RT成长起来的,本次ART-PI比赛我第一时间报名参与了,首先这块板子做的很精致,板子的配置,硬件资源相当牛逼,看过就像试用。第二,RT提供了那么多强悍的工具,ENV,RT-STUDIO…那么多有价值的软件包,只有使用才能体会这些很棒的轮子给开发带来的便利。第三,RT的开发生态和社区建设已成气候,对于开发者来说,无论新手还是大咖,都能一起互相学习,彼此进步,一个人做事很孤单,一群人做事能走得更远。

起初我想用ART-PI驱动自家的智能、小车,但是AP6212蓝牙模块的驱动没有调试出来,所以选择了相对参考多一些的智能家居类课题,我就乘着最后一两周的时间调试了智能管家精灵。谈不上作品,只想用RT的软件平台做有一些值得去做的事,目前疫情播报模块还没有最终完善,由于腾讯API的的疫情数据有120多K,task的栈大小没有设置的足够大,实际上我只要JSON文件开头的那部分数据,很多在内存中的数据都是无用的,后续要想个办法,截取下有用的JSON数据。另外选择腾讯的API,是因为原来小桥的丁香数据API挂掉了,无奈用了这个API。

由于网上购买的RGB屏幕还没有到手,摄像头视频和TOUCH-GFX部分来不及做了。所以想到用手上的OLED和按键及U8G2来做一个简单人机交互

整体来说,管家精灵比较简单,不过这已然是下班后自己挤时间捣鼓出来的。但是做下来确实体验到RT,软件包和框架的强大,初步的完成一个业务需求真的很快,而且有很好的LOG提醒,各种辅助工具,用下来可以说是爱不释手。为国产OS,Rtthread默默的付出点赞,也坚定了我将一直跟随RT精进技术,做有益的尝试,做有价值的练习。

本次小尝试的总结就至此接近尾声。对于我来说,无论这份作业合不合格,我将继续RT之路。向优秀的小伙伴学习,后续我将更深入结合软件包使用开发板的其他硬件模块。谢谢ART-PI开源硬件团队的付出,没有你们的硬件,我将无法体验这么接地气的开发方式。

 

 

 

 

 

  • hardware2.jpg
    描述:基本
  • 代码地址.txt
    描述:代码
  • 大赛作品提交_智能管家精灵 V1.1.docx
    描述:贵在参与

相关推荐

电子产业图谱