0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

九联科技Unionpi Tiger开发板体验:使用串口调试土壤温湿度传感器

电子发烧友开源社区 来源:未知 2022-12-08 09:10 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1、温湿度传感器使用概述

土壤温湿度传感器是将土壤水分和土壤温度传感器集中于一体,具有携带方便,密封,高精度等优点,是土壤墒情,土壤温度测量的理想选择。本文采用德国 Heraeus 公司进口 A 级 ST-1-PT1000传感器通过RS485转接板转换成TTL信号接在九联开发板的TTL 接口(ttyS01),从硬件上来讲完全可以接在开发板的485接口,但是目前切换USB还有点问题,所以先使用转接板后期再直接连接到485端口

1.1 传感器RS485串口设置

标准 Modbus-RTU 协议,波特率:9600;校验位:无;数据位:8;停止位:1

1.2 温湿度数据转换

土壤温湿度传感器在土壤饱和含水率范围内具有良好的线性特征,以下是典型的标定公式,用户可以参考使用,如果要获得更高精度,需进行二次标定。

d8b56742-7694-11ed-8abf-dac502259ad0.png

1.3 温湿度串口数据协议

1.3.1 修改传感器地址

d8dd4db6-7694-11ed-8abf-dac502259ad0.png

若传感器接收正确,数据按原路返回。

备注:如果忘记传感器的原地址,可以使用广播地址0XFE代替,使用0XFE时主机只能接一个从机,且返回地址仍为原地址,可以作为地址查询的方法。

1.3.2 查询传感器数据

查询传感器(地址为1)的数据(土壤温度,土壤湿度),主机→从机

d8f98b8e-7694-11ed-8abf-dac502259ad0.png

若传感器接收正确,返回以下数据,从机→主机

d93249e2-7694-11ed-8abf-dac502259ad0.png

PC机测试

实验之前可以先找个USB 转串口,先在PC机上做一些简单的协议测试,如下是使用ModeBusRTU调试工具查询传感器数据:

d952f868-7694-11ed-8abf-dac502259ad0.png

2、九联开发板和传感器的硬件连接

硬件清单:

  1. 九联开发板

  2. 485 温湿度传感器

  3. 12V传感器供电电源

  4. 485转TTL 小板子

  5. 杜邦线若干

温度传感器-> 485转TTL小板子 -> 九联开发板TTL 接口(ttySL0)

d97b632a-7694-11ed-8abf-dac502259ad0.png

3、DEMO流程

本次实验包括了源码文件修改,编译,下载,上板测试。

3.1 源码文件解析及修改

移植仓库中的UART代码到开发板中,源代码仓库如下:

https://gitee.com/openharmony/vendor_unionman/tree/master/unionpi_tiger/sample/hardware/gpio

首先把uart的整个文件夹拷贝到某个目录下,我这里复制都openhamony/vendor/uniopi/unionpi_tiger/sample/hardware/下面,并在/openharmony/device/unionpi/a311d/BUILD.gn文件中增加该文件的路径。如下:

  • 在main.c文件中根据自己的需要增加代码,我这里做的测试是给传感器发送一个查询数据的指令,然后把传感器返回的数据打印出来。

3.1.1 打开串口

在这里可以定义使用哪个串口

`#define UART_TTL_NAME "/dev/ttyS1"`

(左右移动查看全部内容)

打开串口

char *uart_dev = UART_TTL_NAME;
fd = open(uart_dev, O_RDWR);

(左右移动查看全部内容)

3.1.2 初始化串口设置

ret = uart_init(fd, 9600L);`
// 设置波特率
int uart_init(int fd, int uartBaud)
{
  set_baud(fd, conver_baudrate(uartBaud));
  // uart param /
  if (set_params(fd, 8L, 1, 'n')) {
    printf("Set uart parameters fail.
");
    return -1;
  }
  return 0;
}

(左右移动查看全部内容)

3.1.3 读写串口

串口的读写与普通文件一样,使用read,write函数
read(fd, buf ,8);
write(fd,buff,8);

(左右移动查看全部内容)

main 修改demo

以下给出一个温湿度模块数据查询和显示的例子:

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include "serial_uart.h"


static int fd;


// 从串口读的线程
void *_serial_input_task(void)
{
  int i = 0;
  int j = 0;
  int ret = -1;
  int buf = 0;
  int recv[4] = {0};
  char cmd_buf1[] = { 0x01, 0x03, 0x00, 0x00, 0x00, 0x02, 0xC4, 0x0B};


  printf("temperature Sensor Ready!
");
  while (1) {
    //------------向urat发送数据查询数据-------------------


    for (i = 0; i < 8; i++)
    printf("%#X ", cmd_buf1[i]);


    count = write(fd, cmd_buf1, 9);
    if (count != 9) {
    printf("send failed
");
    return -1;
    }
    //------------等待传感器返回数据-------------------
    for (i = 0; i < 9 ; i++) {
      ret = read(fd, &buf, 1);
      //ret = data_proce(recv);
      printf("%#X ", ret);
    if (ret == -1) {
      printf("data process error
");
      exit(0);
    }
  }
}


int main(int argc, char **argv)
{
  char *uart_dev = UART_TTL_NAME;
  int ret = -1;


  fd = open(uart_dev, O_RDWR);
  if (fd == -1) {
    printf("open file error
");
    return ERR;
  }
  ret = uart_init(fd, 9600L);
  if (ret == -1) {
    printf("uart init error
");
    return ERR;
  }


  // 创建线程 一直执行读操作
  pthread_t pid_t;
  pthread_create(&pid_t, NULL, (void *)_serial_input_task, 0);


  while (1) {}
  close(fd);


  return 0;
}

(左右移动查看全部内容)

3.2 编译,下载,测试

开发板上电之后串口进入/bin 目录下 执行./uart_test

d9b43812-7694-11ed-8abf-dac502259ad0.png

程序启动之后会发送一串查询指令给传感器,并将接收到的数据打印出来,并从数据包中解析出温度和湿度的读值。

  • 这是接到到的数据包
    0X10X30X400XE400X1F0XFB0XCC

  • 这是温度值

    temprature now is0XE4

  • 这是湿度值

    humidity now is 0X1F

总结

本文主要使用了串口来查询温湿度传感器数据,主要包含的串口的读写功能测试,以及温度传感器的数据包解析。源码编译的要点基本再GPIO编译测试里面都有提到。另外还有个问题,串口原来的计划是使用485接口来调试,485串口需要切换到USB2.0,根据仓库里的说明并没有操作成功,这部分后面还需要再研究一下。

计划接下来的工作是把485传感器联动GPIO信号。GPIO外接继电器驱动用电设备。当温湿度超过设置的阈值触发用电设备工作。

更多热点文章阅读

  • 最新爆料!RK3588 适配 OpenHarmony 的新进展
  • 移植speexdsp到OpenHarmony标准系统②
  • 移植speexdsp到OpenHarmony标准系统③
  • 移植speexdsp到OpenHarmony标准系统④
  • 证通电子人脸支付终端设备ZT8623通过OpenHarmony兼容性测评

提示:本文由电子发烧友社区发布,转载请注明以上来源。如需社区合作及入群交流,请添加微信EEFans0806,或者发邮箱liuyong@huaqiu.com。


原文标题:九联科技Unionpi Tiger开发板体验:使用串口调试土壤温湿度传感器

文章出处:【微信公众号:电子发烧友开源社区】欢迎添加关注!文章转载请注明出处。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电子发烧友
    +关注

    关注

    33

    文章

    584

    浏览量

    33992
  • 开源社区
    +关注

    关注

    0

    文章

    95

    浏览量

    776

原文标题:九联科技Unionpi Tiger开发板体验:使用串口调试土壤温湿度传感器

文章出处:【微信号:HarmonyOS_Community,微信公众号:电子发烧友开源社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【瑞萨RA6E2地奇星开发板试用】SHT30传感器串口调试学习和验证

    驱动 SHT30传感器 的项目,采集环境温湿度信息,同时会介绍串口调试内容。 1. SHT30温湿度传感
    发表于 12-11 14:49

    应用于智能门锁的温湿度传感器解决方案

    智能传感器已广泛应用于我们生活的方方面面,从智能开关(86盒)、电子温湿度计到智能窗帘盒、烟感等,无处不在。其中,温湿度传感器芯片凭借其高
    的头像 发表于 11-28 15:03 193次阅读

    温湿度传感器HTU31D在温湿度中的应用优势

    温湿度控制是一种用于监测和调节环境温度与湿度的设备,广泛应用于农业、仓储、工业生产、家庭等多个领域。其主要功能是维持特定环境条件,以确保产品质量和舒适的居住环境。 温湿度控制
    的头像 发表于 11-06 14:38 155次阅读
    <b class='flag-5'>温湿度</b><b class='flag-5'>传感器</b>HTU31D在<b class='flag-5'>温湿度</b>控<b class='flag-5'>器</b>中的应用优势

    【上海晶珩睿莓1开发板试用体验】Home Assistant 物联网温湿度

    【上海晶珩睿莓1开发板试用体验】Home Assistant 物联网温湿度计 本文介绍了上海晶珩睿莓 1 开发板通过 AHT10 传感器实现环境温湿
    发表于 08-18 13:55

    中科银河芯GXHT30温湿度传感器的卓越性能

    在工业自动化、智能家居、医疗设备等领域,温湿度数据的精准采集直接影响系统性能与决策质量。传统传感器往往面临精度不足、稳定性差、适配性有限等痛点,而中科银河芯推出的 GXHT30 温湿度传感器
    的头像 发表于 08-08 17:09 1893次阅读

    什么是温湿度传感器的水合?

    温湿度传感器需要进行水合处理(Hydration),主要是为了优化传感器的性能、稳定性和长期可靠性。以下是具体原因和作用的详细解释:1.稳定湿度敏感材料电容式
    的头像 发表于 07-11 12:10 762次阅读
    什么是<b class='flag-5'>温湿度</b><b class='flag-5'>传感器</b>的水合?

    零知开源——STM32F407VET6驱动SHT41温湿度传感器完整教程

    ),软件使用零知IDE3.8.0和Adafruit_SHT4x库。代码包含传感器初始化、数据读取和CRC校验功能,每秒输出温湿度数据至串口。教程详细说明了硬件接线、软件配置及常见问题解决方法,帮助
    的头像 发表于 07-09 18:53 958次阅读
    零知开源——STM32F407VET6驱动SHT41<b class='flag-5'>温湿度</b><b class='flag-5'>传感器</b>完整教程

    常见的温湿度传感器类型?

    温湿度传感器是一种用于测量环境温度和湿度的设备,广泛应用于工业、农业、气象等领域。以下是几种常见的温湿度传感器类型及其优缺点: 电容式
    发表于 06-24 09:24

    【RA-Eco-RA4M2开发板评测】RT-Thread上驱动I2C温湿度传感器

    框架加进来。 最后把温湿度传感器的组件包选上。 四、驱动 有了RT-Thread的sensor驱动框架和hs300x驱动组件包,对温湿度传感器基本上不需要做太多编码,稍微加个
    发表于 05-08 22:42

    温湿度传感器:核心原理与跨领域应用解析

    一、温湿度传感器的技术演进与核心价值 温湿度传感器是一种通过物理或化学机制实时监测环境温湿度参数的电子设备。在物联网(IoT)与智慧化转型的
    的头像 发表于 03-27 11:21 1497次阅读
    <b class='flag-5'>温湿度</b><b class='flag-5'>传感器</b>:核心原理与跨领域应用解析

    温湿度传感器:生活中的“小气候专家”

    你有没有想过,为什么家里的空调总能自动调节到最舒适的温度和湿度?或者,为什么博物馆里的珍贵文物能在恒定的环境中保存完好?这一切的背后,都离不开一个默默无闻的“小气候专家”——温湿度传感器。 今天
    的头像 发表于 02-27 16:36 882次阅读

    一款电容型高频介电常数测量、非接触式感知的低成本土壤温湿度传感器-MSE

    低成本土壤温湿度传感器 - MSE(Minyuan Soil Economical)是一款电容型高频介电常数测量、非接触式感知的智能传感器,适用于
    的头像 发表于 02-14 09:41 741次阅读
    一款电容型高频介电常数测量、非接触式感知的低成本<b class='flag-5'>土壤</b><b class='flag-5'>温湿度</b><b class='flag-5'>传感器</b>-MSE

    多功能土壤监测传感器:同步测量温湿度、盐分与电导率

    随着农业现代化的发展和对土壤环境质量的日益重视,准确监测土壤温湿度、盐分以及电导率等关键参数对于科学种植、资源管理和环境保护至关重要。多功能土壤监测
    的头像 发表于 01-23 11:09 813次阅读

    大棚温湿度自动监控系统

    、遮阳帘等,以保持大棚内的适宜生长环境。 组成及功能 1.监测系统:利用空气温湿度传感器土壤温湿度传感器、光照强度
    的头像 发表于 12-31 16:58 1193次阅读

    NB温湿度传感器:无线传输,便捷安装

    在现代环境监测与控制领域,温湿度传感器扮演着至关重要的角色。而 NB 温湿度传感器凭借其无线传输特性和便捷的安装方式,正逐渐成为众多应用场景中的设备,为人们的生活和生产带来了极大的便利
    的头像 发表于 12-29 09:31 1011次阅读