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

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

【RT-Thread作品秀】基于RT-Thread的农业数据采集

2020/12/19
540
服务支持:
技术交流群

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

虚拟商品不可退

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

加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
放大
方块图(2)
相关方案
  • 方案介绍
    • 概述
    • RT-Thread使用情况概述
    • 硬件框架
    • 软件框架说明
    • 软件模块说明
    • 演示效果
    • 比赛感悟
  • 相关文件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

概述

       随着物联网技术的广泛推广,产生了农业物联网。做智慧农业物联网项目,首先要解决的是农业数据的采集问题;比如空气的温湿度、土壤的温湿度、二氧化碳浓度、水培溶液的EC值、PH值等数据;结合此次RTT大赛,笔者决定基于ART-Pi板子和RT-Thread实时操作系统,开发一个农业数据采集器。此次数据采集器笔者以ART-PI开发板核心板,外接了一款温湿度传感器模块、GPS模块、OLED模块串口通讯模块进行了基础Demo版本代码编写与调试,实现了采集温湿度数据在OLED屏上显示、GPS位置信号信息采集后经串口输出等功能。后续还有采集的数据经板载的WiFi模块上传至TCP Server   、阿里IOT平台的规划。

开发环境

硬件ART-PI(STM32H750XB)、GPS模块、DHT11、0.96寸OLED屏、USB转串口模块

RT-Thread版本:RT-Thread V 4.0.3

开发工具及版本:RT-Thread Studio 版本: 2.0.0

RT-Thread使用情况概述

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

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

         信号量:用来线程间的同步。

(2)组件部分UART框架,SENSOR框架。

UART框架:使用了1个串口,用于采集GPS模块数据、同时用于串口输出数据。

II2C框架:使用了1路II2C接口用于连接OLED屏,进行采集温湿度数据的显示。

SENSOR框架:使用DHT11采集空气温湿度

(3)软件:u8g2   netutils   dht11   gps_rmc

硬件框架

软件框架说明

软件模块说明

主函数中执行了

wlan_autoconnect_init();

serial_init();

oled_init();

DHT11_init();

创建了3个线程,其中

dht11_thread_entry()用于读取温湿度传感器数据;

serial_thread_entry()用于读取串口1 RX引脚接收到的GPS模块数据;

演示效果

比赛感悟

       首先笔者要表扬一下自己,能在工作之余、在下班后回家还要哄娃入睡之余,利用了一切可以利用的时间,进行STM32单片机的理论、RT-Thread Studio平台、II2C通讯、串口通讯理论知识的学习,然后小白一样的摸索着玩ART-Pi;笔者之前是Java程序员出身,在Java代码层面是打通过跟阿里IOT平台进行数据采集对接的,可是用STM32单片机来做,尤其是要熟悉STM32单片机的开发流程与技巧、RT-Thread 开发环境与编程规范等,作者实在是显得有点稚嫩,毕竟想要很快入行,是需要时间积累的。笔者还是5年前玩过AVR单片机,之后的工作主要是PLC、C#、JAVA相关,最近的工作是基于GoLinux系统进行应用程序开发,讲真笔者对STM32单片机的知识了解还是相当欠缺的,Ubuntu系统用过半年左右,对于实时操作系统比如RTOS等,不曾了解;可是这些并不能阻止我对国产操作系统的关心与关注。当某次在论坛看到RT-Thread Smart发布会宣传时,笔者一下子就被深深吸引,在参会中看到了搭载RT-Thread Smart内核的板子启动很快,于是乎当时就萌发了了解一下RT-Thread的想法。后面也就有了参加此次RT-Thread全连接创意创客大赛的故事。

      笔者的初心并不是参加比赛获得名次,而是通过参与,让自己去熟悉RT-Thread,熟悉RT-Thread跟STM32单片机的联姻;想着能不能基于RT-Thread操作系统、APT-Pi板子做些数据采集的实验测试;幸不辜负青春,通过此次尝试,笔者调通了APT-Pi 的板载串口1的收发控制、II2C通讯驱动OLED屏、采集单总线的温湿度传感器DHT11、板载WiFi模块进行参数配置联网、TCP通讯测试、GPS信号数据截取处理等;在整个边学习边码字的过程中也遇到了一些困难,比如调试II2C接口的气压传感器时,折腾了几天就是不出结果,还不知道问题出在哪,还有调试SPI接口液晶屏时,也是遇到困难,最后曲线救国,换成了II2C接口的OLED屏,还好调通了。主要是笔者时间上受限了,工作上几个项目要跟进,期间去出差了外省几次;下班后回家宝宝又会粘着我求抱抱。本来计划的是多接一些传感器采集数据,比如采集485接口传感器数据、通过调用我自己封装的dll文件去跟欧姆龙PLC进行通讯的测试、上传数据至阿里IOT平台,截止当前未完成,但后面我会继续把这个项目做下去,争取把这个数据采集器做得完善。最后感谢大赛举办方给我们提供了一个如此好的学习和锻炼的机会,我会尝试将RTT引入到自己研发的产品中去。

  • 代码地址.txt
    描述:代码地址
  • 项目文档.docx
    描述:项目说明

相关推荐

电子产业图谱