加入收藏 | 设为首页 | 会员中心 | 我要投稿 哈尔滨站长网 (https://www.0451zz.cn/)- 人体识别、图像分析、开发者工具、基础存储、物联安全!
当前位置: 首页 > 运营中心 > 交互 > 正文

树莓派通过java语言通过DHT11读取环境温湿度

发布时间:2022-08-04 11:15:14 所属栏目:交互 来源:互联网
导读:试验目标: 1.使用树莓派4b对温度湿度传感器的温湿度参数进行读取 2.提供一个java springboot的项目,打包好以后,放到树莓派中,运行,项目提供出restful风格的接口,对读取数据的速率进行控制,并可提供停止读取数据接口。 3.编写事件处理程序,在出现设定
  试验目标:
 
  1.使用树莓派4b对温度湿度传感器的温湿度参数进行读取
 
 
  2.提供一个java springboot的项目,打包好以后,放到树莓派中,运行,项目提供出restful风格的接口,对读取数据的速率进行控制,并可提供停止读取数据接口。
 
  3.编写事件处理程序,在出现设定的温度或湿度达到阈值的时候,触发相应事件。
 
  4.将数据存入日志,数据库mysql中
 
  定义与范围划分:
  1.控制中心:树莓派4b
 
  2.电子部件:dht11模块(温湿度传感器)
 
  3.软件部分:java语言与其操作系统划分为软件部分
 
  4.数据中心:Java程序读取的温湿度传感器最终需要保存历史记录。对历史数据记录的地方,称为数据中心。这里使用mysql,后面结合elasticsearch进行数据分析和展示。
 
  5.载体:无。
 
  ========================================================================
  一.准备
 
  思路:通过java web程序,通过接口的方式,控制小车的前进,停止前进功能。由于小车的轮子比较特殊,用的是麦克纳姆轮,所以可以做到直接右直行,左直行等。本文程序只有一个方向的行进,为了方便测试,提供停止运动接口。
 
  1.控制中心
 
  树莓派4b(对树莓派的使用不熟悉或者对java不熟悉的同学请关注专栏,可以提供一些指导)
 
  代码编写与管理平台(方便网页控制)
 
  2.电子设备
  dht11模块(温湿度传感器)
 
  电源线若干
 
  3.软件与程序
 
  centos7 64位
 
  java的运行编译环境jdk11
 
  python3
 
  4.数据中心
  mysql
 
  5.载体
 
  无
 
  ------------------------------------------------------------------------------------------------------------------------------------------------------------------
 
  二.电路连接示意图
  1.树莓派引脚示意图,GPIO与物理位序的映射
  æ èæ´¾å¼èpoYBAGDYdXCAWkKMAAAAK8RNs4s030.png
  ​编辑
 
  2.树莓派与dht11模块连接图
  poYBAGDYdXCAWkKMAAAAK8RNs4s030.png
  ​编辑
 
  温湿度传感器
 
  3.物理图
  poYBAGDYdXCAWkKMAAAAK8RNs4s030.png
  ​编辑
 
  三.程序部分
 
  项目地址:
 
  项目框架:spring boot,
 
  中 间件:maven,git,pi4j,python3.需要在树莓派上提前安装并配置成功,才能部署运行;
 
  数据中心: log4j2,mysql
 
  测试工具:jmeter
 
   /**
       * 读取温度湿度
       * @author jiao_zg
       * @param BCM_POINT
       * @return
       */
      public String readDTH11Result(int BCM_POINT) {
  //        boolean isReady = initEnv();
  //        if(!isReady){
  //            return "环境未配置,请按照说明书配置环境";
  //        }
 
          String result = "";
 
          String RUNNING_SHELL_FILE = "python3 " + adafruit_path + "examples/AdafruitDHT.py 11 " + BCM_POINT;
          Process process = null;
          try {
              process = Runtime.getRuntime().exec(RUNNING_SHELL_FILE);
          } catch (IOException e) {
              logger.error("命令执行失败,命令为 :{}", process);
              e.printStackTrace();
          }
          int runningStatus = 0;
          BufferedReader reader = null;
 
          try {
              int exitValue = process.waitFor();
              if (0 != exitValue) {
                  logger.error("命令返回结果失败. 错误码 :{}", exitValue);
              }
              // 返回值
              reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
              String line = null;
              while ((line = reader.readLine()) != null) {
                  result = result + line;
                  logger.info("读取温湿度值为: " + line);
                  TTemperatureHumidity tTemperatureHumidity = new TTemperatureHumidity();
                  tTemperatureHumidity.setCreatetime(new Date().toString());
                  tTemperatureHumidity.setPosition(BCM_POINT);
                  tTemperatureHumidity.setResult(result);
                  tTemperatureHumidityMapper.insert(tTemperatureHumidity);
              }
              return result;
          } catch (Exception e) {
              logger.error("读取失败  " + RUNNING_SHELL_FILE);
              e.printStackTrace();
          }
          return "";
      }
  poYBAGDYdXCAWkKMAAAAK8RNs4s030.png
  ### 软硬件版本
  软件和硬件的版本
  *  1.树莓派4b
  *  2.树莓派官方 64版本
  *  3.温湿度传感器:DHT11
  *  4.jdk11  
  *  5.python3  
  *  6.spring boot:2.3.3.RELEASE
 
  ### 树莓派针脚和DTH11温湿度传感器接线
 
  * 1.DTH11-VCC接树莓派 物理引脚1(或者其他5V高电平)
  * 2.DTH11-GND接树莓派 物理引脚6(或者其他低电平)
  * 3.DTH11-data接树莓派 物理引脚7,BCM4(或者其他digigal针脚,针脚通过接口传递)
 
  *
  ### 环境安装
  * 1.安装jdk:jdk11
  * 2.安装maven:3.3
  * 3.安装git
  * 4.安装python3
  * 5.安装包:AdafruitDHT.py
    sudo git clone https://github.com/adafruit/Adafruit_Python_DHT.git
    cd Adafruit_Python_DHT
    sudo python3 setup.py install
    验证:
    python3 AdafruitDHT.py 11 4
  

(编辑:哈尔滨站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读