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

    文章

    549

    浏览量

    32920
  • 开源社区
    +关注

    关注

    0

    文章

    93

    浏览量

    402

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

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

收藏 人收藏

    评论

    相关推荐

    土壤温湿度一体监测传感器

    土壤温湿度传感器是一款高精度、高灵敏度的测量土壤温度、湿度传感器。测量
    的头像 发表于 10-29 15:21 91次阅读

    温湿度传感器种类及原理的优劣分析

    温湿度传感器是一种能够感知并测量环境中温度和湿度变化的设备,它们在环境监测、气象观测、农业、工业生产、智能家居等多个领域发挥着重要作用。下面将对温湿度
    的头像 发表于 10-21 15:05 312次阅读

    温湿度传感器是什么类型的传感器

    温湿度传感器是一种能够实时监测和记录环境中温度和湿度变化的设备或装置。这类传感器广泛应用于环境监测、气象观测、农业、工业生产、仓储管理、智能家居、医疗健康等多个领域,为相关领域的研究、
    的头像 发表于 10-21 14:53 275次阅读

    车载温湿度传感器有什么功能

    在现代化物流体系中,尤其是针对需要严格温控的冷链运输领域,车载温湿度传感器成为了重要的智能设备。车载温湿度传感器以其高精度测量、智能化报警、灵活供电及便捷管理等特点,为货物安全运输提供
    的头像 发表于 10-10 13:23 161次阅读

    温湿度传感器怎么调试

    温湿度传感器是一种广泛应用于工业、农业、气象、科研等领域的传感器,用于测量环境的温度和湿度。在实际应用中,温湿度
    的头像 发表于 08-19 15:04 763次阅读

    温湿度传感器技术参数有哪些

    温湿度传感器是一种用于测量环境温度和湿度传感器。它们广泛应用于气象、农业、工业、医疗、智能家居等领域。本文将介绍温湿度
    的头像 发表于 08-19 15:03 799次阅读

    蜂窝物4G温湿度传感器如何助力现代农业?

    在科技日新月异的今天,农业领域也迎来了前所未有的变革。其中,温湿度传感器作为现代农业的“得力干将”,在促进农作物生长、提高农产品产量与质量等方面发挥了不可或缺的作用。今天,我们就来详细探讨一下温湿度
    的头像 发表于 07-15 16:54 316次阅读
    蜂窝物<b class='flag-5'>联</b>4G<b class='flag-5'>温湿度</b><b class='flag-5'>传感器</b>如何助力现代农业?

    想要准确地测量环境温湿度温湿度传感器是关键!

    温湿度是生产生活中最重要的环境指标之一,不仅人需要在适宜的温湿度条件下保持良好的精神状态和敏捷的思维,食品、药品、各种仪器设备等都对环境温湿度有特殊的要求。基于对环境温湿度的要求,
    的头像 发表于 07-04 08:48 497次阅读

    温湿度传感器有哪些应用场景?

    温湿度传感器在众多领域,特别是在实时记录温湿度变化的工作中最为广泛。温湿度传感器可以根据所记录的内容,对其进行科学有效的管理、分析和归纳。下
    的头像 发表于 02-19 16:28 1248次阅读
    <b class='flag-5'>温湿度</b><b class='flag-5'>传感器</b>有哪些应用场景?

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

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

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

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

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

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

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

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

    温湿度传感器怎么布线

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

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

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