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

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

3天内不再提示

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

树莓派-java-物联网 来源:树莓派-java-物联网 作者:树莓派-java-物联网 2022-05-16 15:16 次阅读

​注:本文提前搭建运行环境(需要python3的环境)

试验目标:


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
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

四.测试结果

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

​编辑

或者浏览器:http://192.168.0.102:8101/th_sensor/readth?radio=4

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

    关注

    19

    文章

    2904

    浏览量

    102990
  • 树莓派
    +关注

    关注

    113

    文章

    1639

    浏览量

    104732
  • DTH11
    +关注

    关注

    2

    文章

    9

    浏览量

    8931
收藏 人收藏

    评论

    相关推荐

    STM32+DHT11监测环境温湿度

    DHT11是一种数字温湿度传感器,能够通过数字信号输出当前环境的温度和湿度值。DHT11可以
    的头像 发表于 05-17 09:22 3214次阅读
    STM32+<b class='flag-5'>DHT11</b>监测<b class='flag-5'>环境</b>的<b class='flag-5'>温湿度</b>

    基于arduino的dht11温湿度传感器的使用

    本文介绍了DHT11温湿度传感器电气特性、DHT11封装形式及接口说明与典型应用电路,其次介绍了DHT11温湿度传感器时序图与连接图,最后介
    发表于 01-22 15:50 4.4w次阅读
    基于arduino的<b class='flag-5'>dht11</b><b class='flag-5'>温湿度</b>传感器的使用

    STM32外接DHT11温湿度传感器并通过OLED进行数据显示的设计电路与程序

    本篇介绍了如何在STM32上外接温湿度DHT11实现温湿度数据的读取,并通过OLED进行数据显示。
    的头像 发表于 06-07 09:09 1.1w次阅读
    STM32外接<b class='flag-5'>DHT11</b><b class='flag-5'>温湿度</b>传感器并<b class='flag-5'>通过</b>OLED进行数据显示的设计电路与程序

    DHT11数字式温湿度传感器的应用性研究

    基于DHT11温湿度传感器具有测量精度高、响应速度快、抗干扰能力强等优点。通过介绍DHT11数字式温湿度传感器的内部结构、工作原理、驱动方式
    发表于 11-06 16:28

    基于STM32开发板实现传感数据采集-DHT11温湿度采集

    STM32F407ZGT6开发板进行项目开发,选用的传感器为常见通用的DHT11温湿度传感器。传感器将采集到的数据传输到STM32(MCU)主控进行数据处理,最后通过串口打印出来。软硬件环境
    发表于 08-10 07:41

    通过使用AT89C52和DHT11设计的温湿度控制系统资料分享

    【资源下载】下载地址:点击下载 1343 百度网盘本文通过使用AT89C52单片机、DHT11传感器模块、1602液晶显示屏模块以及继电器控制模块。简单明了的实现的温湿度的控制要求。DHT11
    发表于 11-10 07:02

    使用STM32来读取DHT11数字温湿度传感器

    基于STM32 -DHT11 数字温湿度传感器实验实验目的:这个实验的目的使用 STM32来读取DHT11 数字温湿度传感器,从而得到
    发表于 11-10 08:58

    stm32单片机如何从DHT11获取到温湿度的呢

    stm32获取DHT11模块温湿度数值原理解析stm32单片机如何从DHT11获取到温湿度的呢?首先可以通过
    发表于 11-22 06:11

    如何通过NodeMCU和DHT11收集温湿度

    使用 NodeMCU 和 DHT11 传感器通过 MQTT 上传温湿度数据简介本示例将演示如何通过 NodeMCU, DHT11 收集
    发表于 11-24 08:08

    DHT11温湿度传感器简介

    DHT11温湿度传感器1、DHT11简介DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度
    发表于 02-16 06:55

    DHT11温湿度检测报警器

    基于单片机的使用DHT11模块制作的温湿度检测器,温湿度超过设定值是报警提示,已通过过实物运行调节
    发表于 02-27 19:02 36次下载

    温湿度DHT11资料

    温湿度DHT11资料汇总 DHT11是一款有已校准数字信号输出的温湿度传感器。 其精度湿度+-5%RH, 温度+-2℃,量程
    发表于 11-29 17:28 24次下载

    使用 NodeMCU 和 DHT11 传感器通过 MQTT 上传温湿度数据

    使用 NodeMCU 和 DHT11 传感器通过 MQTT 上传温湿度数据简介本示例将演示如何通过 NodeMCU, DHT11 收集
    发表于 11-16 10:06 29次下载
    使用 NodeMCU 和 <b class='flag-5'>DHT11</b> 传感器<b class='flag-5'>通过</b> MQTT 上传<b class='flag-5'>温湿度</b>数据

    MSP432 P401R 单片机 读取DHT11 串口发送温湿度 OLED显示温湿度 温湿度检测

    MSP432P401R读取DHT11串口发送温湿度OLED显示温湿度
    发表于 12-16 16:54 33次下载
    MSP432 P401R 单片机  <b class='flag-5'>读取</b><b class='flag-5'>DHT11</b> 串口发送<b class='flag-5'>温湿度</b> OLED显示<b class='flag-5'>温湿度</b> <b class='flag-5'>温湿度</b>检测

    【Renesas RA6M4开发板之DHT11温湿度读取

    本篇通过Renesas RA6M4开发板DHT11温湿度读取示例程序演示。
    的头像 发表于 01-18 17:18 1317次阅读
    【Renesas RA6M4开发板之<b class='flag-5'>DHT11</b><b class='flag-5'>温湿度</b><b class='flag-5'>读取</b>】