聚丰项目 > 基于RT-Thread的猪圈控制器

基于RT-Thread的猪圈控制器

很感谢能参加此次RTT开发大赛,让我有动力去接触嵌入式操作系统,我申请的是ch32v103rbt6的开发板,原本我申请的项目名称是安全座椅,但是实际上实现起来发现内存不太够,所以我改了项目,加上更好的学习RISC-V单片机,和rt-thread .项目背景:小时候家里穷,家里养了几头猪,然后养猪的猪圈有时候热,爸爸就要时不时去看看猪有没有中暑,跑来跑去,太累了,所有我利用这次机会做了一个智能猪圈控制器,通信用到LORA 可以远距离通信,猪圈里没有wifi,猪不会玩手机,用4G的话成本太高,检测温度信息,来自动控制风机和给屋顶散热的抽水机

霸铁_dc1 霸铁_dc1

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

霸铁_dc1 霸铁_dc1

团队成员

霸铁_dc1 学生

分享
项目简介
很感谢能参加此次RTT开发大赛,让我有动力去接触嵌入式操作系统,我申请的是ch32v103rbt6的开发板,原本我申请的项目名称是安全座椅,但是实际上实现起来发现内存不太够,所以我改了项目,加上更好的学习RISC-V单片机,和rt-thread .项目背景:小时候家里穷,家里养了几头猪,然后养猪的猪圈有时候热,爸爸就要时不时去看看猪有没有中暑,跑来跑去,太累了,所有我利用这次机会做了一个智能猪圈控制器,通信用到LORA 可以远距离通信,猪圈里没有wifi,猪不会玩手机,用4G的话成本太高,检测温度信息,来自动控制风机和给屋顶散热的抽水机
硬件说明

RT-THREAD的使用情况

    因为ch32v103RBT6的资源有限,所有本次我使用的是RT-THREAD NANO 版本

    内核部分:使用了线程、信号量、互斥量、软件定时器 、消息邮箱

    硬件:NTC,LED,LORA(SX1268),KEY,OLED

image.png



image.png

image.png

image.png

软件说明

软件框架:

因为刚学习rt-thread nano 然后加上对嵌入式单片机的不熟悉,所有相对可能简单点,但是对我来说却是一个挑战,下面是我程序框图image.png

image.png

我这个作品里软件模块划分的比较清晰,各个模块均独立为一个单独文 件,比较好理解。NTC,OLDE,KEY,LORA 基本上都是遵循原有的代码逻 辑进行编写,逻辑比较清晰。

我讲下我在实验中遇到的问题:因为的刚接触到rt-thread nano 和RISC-V单片机。

1.在调试ADC+DMA双通道的时候。我发现,如果同时采集adc外部通道和内部通道同时用DMA传输,数据数乱的,但是只采集两个内部通道,或者两个外部通道就不会有问题,

2.中断的问题,中断要使用void EXTI1_IRQHandler(void) __attribute__((interrupt()));   但是裸机的历程是这样的void EXTI1_IRQHandler(void) __attribute__((interrupt(“XXX”)));,如果带了字符串,就会卡死,

3.使用软件定时器的时候,使用的是单次定时,然后需要修改修改定时时间,rt-thread,我觉的文档没有讲清楚,我发现 timer2 = rt_timer_create("timer2", timeout2,RT_NULL,  30, RT_TIMER_FLAG_ONE_SHOT);来初始化定时器的话,如果你要修改定时器的定时时间,系统就死机了,提示

image.png,但是如果初始化的时候带上RT_TIMER_CTRL_SET_TIME   的话

这个问题就得到了解决,这个不知道是我操作的问题,还是文档没有讲清楚


演示效果

代码地址:https://gitee.com/zhongwenhua/ch32-v103_-oled_-ntc_-sx1268.git

扩展板原理图pcb上传到了附件


附件

(3.02 MB)下载

评论区(0 )