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

    文章

    547

    浏览量

    32382
  • 开源社区
    +关注

    关注

    0

    文章

    92

    浏览量

    355

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

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

收藏 人收藏

    评论

    相关推荐

    温湿度传感器工作原理 温湿度传感器的接线方法

    温湿度传感器是一种用于测量环境温度和相对湿度的装置。它通常用于工业、农业、气象、室内空调等领域。本文将详细介绍温湿度传感器的工作原理和接线方
    的头像 发表于 02-14 18:00 4654次阅读

    温湿度传感器接线端子T是什么意思

    温湿度传感器是一种用于测量周围环境温度和湿度的设备,广泛应用于工业控制、气象观测、智能家居等领域。而温湿度传感器的接线端子中的T代表温度。
    的头像 发表于 01-16 09:16 619次阅读

    4G远程温湿度传感器在仓库中的应用—蜂窝物联

    。为了更好的观测和掌握温湿度的变化,仓库需要安装温湿度传感器实时监测温湿度状态,确保适宜货物储存的温湿度环境。 蜂窝物联仓库存储环境远程监控
    的头像 发表于 01-02 09:36 178次阅读

    【ELF 1开发板试用】板载资源测试4:体验温湿度传感器

    飞凌嵌入式ELF1开发板(以下简称为“开发板”)将温湿度传感器AHT20集成在了底板上,此次依旧做最基础的测试,以下是测试过程记录。一、实
    发表于 12-18 11:09

    温湿度传感器怎么布线

    温湿度传感器是一种用于测量环境温度和湿度的设备,广泛应用于各种工业领域、农业、气象、建筑等领域。布线是安装传感器的一个必要步骤,决定了传感器
    的头像 发表于 12-08 14:00 1116次阅读

    【ELF 1开发板试用】+传感器检测

    ELF 1开发板通过几种传感器的测试,如温湿度、六轴传感器等,而在配备功能扩展板的情况下,还能进行光照强度的检测。 温湿度检测 ELF1
    发表于 11-29 11:59

    标准系统:Unionpi Tiger(A311D)

    开发板名称(芯片型号) Unionpi Tiger(A311D) 芯片架构 ARM 4xCortex-A73+2xCortex-A53 CPU频率 介绍(字数请控制在200字以内) Unio
    发表于 10-19 10:47

    基于51单片机和AHT10温湿度传感器温湿度计源码

    一款基于51单片机和AHT10温湿度传感器温湿度计源码。
    发表于 10-09 08:39

    大数据中心温湿度监控系统解决方案之以太网温湿度传感器

    成为数据中心运维中不可忽视的问题。为了解决这一难题,H-THRJ45以太网温湿度传感器应运而生。 H-THRJ45以太网温湿度传感器的工作原理 H-THRJ45以太网
    的头像 发表于 08-02 09:52 833次阅读
    大数据中心<b class='flag-5'>温湿度</b>监控系统解决方案之以太网<b class='flag-5'>温湿度</b><b class='flag-5'>传感器</b>

    温湿度传感器怎么选择,温湿度传感器选型的注意事项

    温湿度传感器作为一种测量大气中温度和相对湿度的仪器,广泛应用于各种领域。其工作原理是基于热电偶和电容式两种不同的技术。本文将详细介绍如何选择温湿度
    的头像 发表于 07-25 10:25 2135次阅读

    ​什么是温湿度传感器

    温湿度传感器由于体积小,性能稳定等特点,被广泛应用在生产生活的各个领域。温湿度一体化传感器是采用数字集成传感器做探头,配以数字化处理电路,从
    的头像 发表于 07-07 16:50 774次阅读

    温湿度传感器校准原理及校准步骤

    温湿度传感器是一种重要的设备,用于监测环境中的温度和湿度变化。然而,由于环境和时间的影响,温湿度传感器可能会出现漂移或失准的情况。为了确保
    的头像 发表于 06-29 16:30 5384次阅读

    如何选择温湿度传感器

    温湿度传感器在各种领域中起着至关重要的作用,无论是室内环境监测还是工业自动化控制,然而市场上存在各种类型和品牌的温湿度传感器,如何选择适合自己需求的
    的头像 发表于 06-18 11:06 1060次阅读

    【CW32饭盒派开发板试用体验】+万物互联之温湿度采集

    CW32饭盒派开发板 提供了多种传感器的接口,上面就有温湿度传感器DHT11的接口。但是,我手上只有4个脚的DHT11芯片,并没有3个脚的DHT11模组。但是,
    发表于 06-11 16:05

    【CW32饭盒派开发板试用体验】读取自己的温湿度传感器

    周末到了,是时候折腾手里的开发板了。我自己有一个DHT11的温湿度传感器,想想就用开发板读一下这个传感器的数据吧。 DHT11是一款数字
    发表于 06-03 11:01