Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
瑞萨_RA6M4
【基于RT-Thread瑞萨RA6M4的土壤湿度采集系统】
发布于 2022-07-20 00:38:24 浏览:680
订阅该版
[tocm] # 1、项目说明 基于RT-Thread+瑞萨RA6M4 采集土壤湿度信息 ,并通过iic 在OLED SSD1306屏幕上显示。 # 2、项目结构 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20220720/ed20ad7ad5ddb3df437e3ca3cdf5281c.png) # 3、详细设计 ## 3.1 读取传感器数据 ### 3.1.1 传感器介绍 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20220720/e0d8f8a1ee7f023a0ad4eaf6b0ba9d31.png.webp) ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20220720/b7a2a31923e3f1105067682c06849823.png.webp) ## 3.2 读取数据 使用ADC读取模拟量 ADC配置可参考[【开发板评测】Renesas RA6M4开发板之ADC、GPIO](http://https://club.rt-thread.org/ask/article/d6a61a2d915859b0.html "【开发板评测】Renesas RA6M4开发板之ADC、GPIO") # 3、OLED显示 添加SSD1306软件包 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20220720/e24ce14afc5958bc7fd5cdc50d46bf9f.png) 需要0.96寸I2C驱动的OLED屏幕进行动态显示,SDA—-p511(p50b);SCL—-p512(p50c),公式首先将p去掉还有三位,以p511为例,最后转换的数字为 “(5x16x16)+(1x10)+1”算出来为 1291 转换为16进制为0x50b。注:在程序里的话需要将字符转为数字。 配置项如下 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20220720/cc0971fca153d7cfc9907bd77687d311.png) # 4、代码实现 soil_moisture.c ```c /* * Copyright (c) 2006-2021, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes * 2022-07-18 gerhardt the first version */ #include
#include
#include
#include
#include
#include "ssd1306.h" #define ADC_DEV_NAME "adc0" /* ADC 设备名称 */ #define ADC_DEV_CHANNEL 0 /* ADC 通道 */ int collection(){ rt_adc_device_t adc_dev; rt_uint32_t value, vol; rt_err_t ret = RT_EOK; //初始化ssd1306 ssd1306_Init(); /* 查找设备 */ adc_dev = (rt_adc_device_t)rt_device_find(ADC_DEV_NAME); if (adc_dev == RT_NULL) { rt_kprintf("adc sample run failed! can't find %s device!\n", ADC_DEV_NAME); return RT_ERROR; } while(1){ /* 使能设备 */ ret = rt_adc_enable(adc_dev, ADC_DEV_CHANNEL); /* 读取采样值 */ value = rt_adc_read(adc_dev, ADC_DEV_CHANNEL); rt_kprintf("the value is :%d \n", value); /* 转换为对应电压值,3.3V对应12位最大值4096,数据精度乘以100保留2位小数 */ vol = value * 330 / 4096; rt_kprintf("the voltage is :%d.%02d \n", vol / 100, vol % 100); /** * 湿润土壤:0-2000 * 干燥土壤 2000-4096 */ if (value<2000){ ssd1306_Fill(Black); ssd1306_SetCursor(18, 0); ssd1306_WriteString("soil moisture:", Font_7x10, White); ssd1306_SetCursor(40, 26); ssd1306_WriteString("moist", Font_11x18, White); ssd1306_UpdateScreen(); } else { ssd1306_Fill(Black); ssd1306_SetCursor(18, 0); ssd1306_WriteString("soil moisture:", Font_7x10, White); ssd1306_SetCursor(45, 26); ssd1306_WriteString("dry", Font_11x18, White); ssd1306_UpdateScreen(); } rt_thread_mdelay(1000); } /* 关闭通道 */ ret = rt_adc_disable(adc_dev, ADC_DEV_CHANNEL); return ret; } /* 导出到 msh 命令列表中 */ MSH_CMD_EXPORT(collection, Soil moisture collection); ``` soil_moisture.h ```c /* * Copyright (c) 2006-2021, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes * 2022-07-19 gerhardt the first version */ #ifndef SRC_SOIL_MOISTURE_H_ #define SRC_SOIL_MOISTURE_H_ int collection(void); #endif /* SRC_SOIL_MOISTURE_H_ */ ``` [Git储存仓库](https://gitee.com/gerhardt1024/ra6m4-Humidity-collection "Git储存仓库") # 5、视频演示
[视频演示](https://www.bilibili.com/video/BV1hB4y1a7Ts?spm_id_from=333.999.0.0&vd_source=e3fa46c13cf837764d48c2ce1c9ba494 "视频演示") ![screenshot_b6efe68a52f2c824170b546479c40e5.jpg](https://oss-club.rt-thread.org/uploads/20220720/e8db223599d2eb2b0a8bcc6f48256d6c.jpg.webp)
1
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
Gerhardt1024
这家伙很懒,什么也没写!
文章
3
回答
0
被采纳
0
关注TA
发私信
相关文章
1
瑞萨RA2E1芯片移植发生的问题
2
自动创建项目后添加串口出现找不到头文件board_cfg.h
3
CPK-RA6M4的J-Link驱动没有了,每次更新都会缺少头文件
4
瑞萨RA6M4使用RC522软件包示例无反馈
5
瑞萨的EK-RA6M4和CPK-RA6M4开发上有区别吗?
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
ART-Pi
FinSH
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
rt-smart
FAL
ESP8266
I2C_IIC
WIZnet_W5500
ota在线升级
UART
cubemx
PWM
flash
packages_软件包
freemodbus
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
keil_MDK
SFUD
rt_mq_消息队列_msg_queue
C++_cpp
at_device
ulog
本月问答贡献
出出啊
1516
个答案
342
次被采纳
小小李sunny
1440
个答案
289
次被采纳
张世争
793
个答案
171
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
1
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
4
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部