物联网系统RT-Thread学习---组件使用(一)

前文回顾

《物联网系统RT-Thread学习—开发环境搭建》
《物联网系统RT-Thread学习—内核学习》
《物联网系统RT-Thread学习—设备和驱动学习》

本集预告

由于使用的是一个最小系统板,所以只能做一些gpio能够对接的外设开发,这次来学习一下组件中的命令行,并且以一个温湿度计作为范例,来验证一下效果。
在这里插入图片描述

开发过程

  • 硬件准备

这次使用了一个DHT11温湿度模块,一线制的协议,通过GPIO的方式与开发板的PB11引脚对接,然后连接3.3v与地即可。
为了显示数据,这里用了上一篇介绍的显示屏。

在这里插入图片描述

  • 软件准备

这次就开始强调使用别人的轮子方法,我们在项目配置中,搜索一下DHT11模块。果然已经有开发好的模块了
在这里插入图片描述
偶买噶,用它!
在这里插入图片描述

然后保存配置,系统会自动更新下来驱动程序及demo程序
在这里插入图片描述
我们所要做的就是移植sample中的内容,到我们的main中,即可完成了代码的移植。
这里是配置单总线的GPIO口

#define DHT11_DATA_PIN    GET_PIN(B, 12)

然后有两个函数值得注意
在这里插入图片描述
前者是注册读取线程,后者是注册组件。
后者这一步是必须要有的,因为借助这个方式才能将设备注册到系统中去。
前者倒不是必须的,我们可以在main函数中进行启动控制。
在这里插入图片描述

  • 单元测试

先进行测试读取温湿度值,这里基本没有问题,串口可以输出我们读取到的温湿度,不过只有整数。这里可以通过修改sensor_dallas_dht11.c中的读取函数,将小数部分也读取出来,但是为了尊重作者,这里就不展示修改了,用人家东西,哪里能挑三拣四。
在这里插入图片描述

然后我们将其读取到的值,进行显示,就用到了上一篇文章所用的oled显示了。
在这里插入图片描述
我们将读取到的内容,分成两行,显示到屏幕上。

  • 命令行添加

这里要实验一下RTT提供的—FinSH 控制台

FinSH 是 RT-Thread 的命令行组件(shell),正是基于上面这些考虑而诞生的,FinSH 的发音为 [ˈfɪnʃ]。

反正我是没咋看懂怎么读,法哎是?还是鱼?
在这里插入图片描述

这里我们就添加一下命令行

void open_oled(void)
{
    ssd1306_Init();
	ssd1306_Fill(White);
	ssd1306_UpdateScreen();
}

void start_temp(void)
{
    dht11_read_temp_sample();
}

void stop_temp(void)
{
	rt_thread_delete(dht11_thread);
	ssd1306_Fill(White);
	ssd1306_UpdateScreen();
}

MSH_CMD_EXPORT(open_oled , start oled display);
MSH_CMD_EXPORT(start_temp , start show temp and hum);
MSH_CMD_EXPORT(stop_temp , stop show temp and hum);

注册三个命令,用来控制打开屏幕,开始显示温度,停止显示温湿度。

MSH_CMD_EXPORT(命令名称, 命令描述);不需要加引号

系统启动后,通过tab按键,可以查看所有命令
在这里插入图片描述
按照步骤开始执行在这里插入图片描述
没啥毛病。

有时候,你以为的可以了,其实只是有时候可以了,结果发现上电的时候,发现会无法读到温度。
在这里插入图片描述
所以注册的时候,要延迟一秒,才能保证上电注册成功。
在这里插入图片描述

总结经验(划重点)

如果出现对应宏开启之后,有些文件并没有编译进来,需要在保存配置之后,调用下更新Sconsscripts
在这里插入图片描述
每次修改配置之后,rtconfig.h文件就会重新生成,所以你做的修改,都会消失,尽量备份一下。
这里都是心得感受,绝对的有价值。
在这里插入图片描述

结束语

看来得再入手一些东西,才能继续深造啊,不过现在的芯片模块真是便宜了。这一套温湿度下来也就是40块钱。
网上随便买个温湿度计,也就20多块钱……
在这里插入图片描述
实体经济真是不好做啊。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胖哥王老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值