0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

樹(shù)莓派通過(guò)java語(yǔ)言通過(guò)DHT11讀取環(huán)境溫濕度

樹(shù)莓派-java-物聯(lián)網(wǎng) ? 來(lái)源:樹(shù)莓派-java-物聯(lián)網(wǎng) ? 作者:樹(shù)莓派-java-物聯(lián)網(wǎng) ? 2022-05-16 15:16 ? 次閱讀

?注:本文提前搭建運(yùn)行環(huán)境(需要python3的環(huán)境)

試驗(yàn)?zāi)繕?biāo):


1.使用樹(shù)莓派4b對(duì)溫度濕度傳感器的溫濕度參數(shù)進(jìn)行讀取

2.提供一個(gè)java springboot的項(xiàng)目,打包好以后,放到樹(shù)莓派中,運(yùn)行,項(xiàng)目提供出restful風(fēng)格的接口,對(duì)讀取數(shù)據(jù)的速率進(jìn)行控制,并可提供停止讀取數(shù)據(jù)接口。

3.編寫(xiě)事件處理程序,在出現(xiàn)設(shè)定的溫度或濕度達(dá)到閾值的時(shí)候,觸發(fā)相應(yīng)事件。

4.將數(shù)據(jù)存入日志,數(shù)據(jù)庫(kù)mysql中

定義與范圍劃分:

1.控制中心:樹(shù)莓派4b

2.電子部件:dht11模塊(溫濕度傳感器)

3.軟件部分:java語(yǔ)言與其操作系統(tǒng)劃分為軟件部分

4.數(shù)據(jù)中心:Java程序讀取的溫濕度傳感器最終需要保存歷史記錄。對(duì)歷史數(shù)據(jù)記錄的地方,稱為數(shù)據(jù)中心。這里使用mysql,后面結(jié)合elasticsearch進(jìn)行數(shù)據(jù)分析和展示。

5.載體:無(wú)。

========================================================================

一.準(zhǔn)備


思路:通過(guò)java web程序,通過(guò)接口的方式,控制小車(chē)的前進(jìn),停止前進(jìn)功能。由于小車(chē)的輪子比較特殊,用的是麥克納姆輪,所以可以做到直接右直行,左直行等。本文程序只有一個(gè)方向的行進(jìn),為了方便測(cè)試,提供停止運(yùn)動(dòng)接口。

1.控制中心


樹(shù)莓派4b(對(duì)樹(shù)莓派的使用不熟悉或者對(duì)java不熟悉的同學(xué)請(qǐng)關(guān)注專欄,可以提供一些指導(dǎo))

代碼編寫(xiě)與管理平臺(tái)(方便網(wǎng)頁(yè)控制)

2.電子設(shè)備

dht11模塊(溫濕度傳感器)

電源線若干

3.軟件與程序


centos7 64位

java的運(yùn)行編譯環(huán)境jdk11

python3

4.數(shù)據(jù)中心

mysql

5.載體


無(wú)

------------------------------------------------------------------------------------------------------------------------------------------------------------------

二.電路連接示意圖

1.樹(shù)莓派引腳示意圖,GPIO與物理位序的映射

??è?′???èpoYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

2.樹(shù)莓派與dht11模塊連接圖

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

溫濕度傳感器

3.物理圖

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

三.程序部分


項(xiàng)目地址:

項(xiàng)目框架:spring boot,

中 間件:maven,git,pi4j,python3.需要在樹(shù)莓派上提前安裝并配置成功,才能部署運(yùn)行;

數(shù)據(jù)中心: log4j2,mysql

測(cè)試工具:jmeter

 /**
     * 讀取溫度濕度
     * @author jiao_zg
     * @param BCM_POINT
     * @return
     */
    public String readDTH11Result(int BCM_POINT) {
//        boolean isReady = initEnv();
//        if(!isReady){
//            return "環(huán)境未配置,請(qǐng)按照說(shuō)明書(shū)配置環(huán)境";
//        }

        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("命令執(zhí)行失敗,命令為 :{}", process);
            e.printStackTrace();
        }
        int runningStatus = 0;
        BufferedReader reader = null;

        try {
            int exitValue = process.waitFor();
            if (0 != exitValue) {
                logger.error("命令返回結(jié)果失敗. 錯(cuò)誤碼 :{}", 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.樹(shù)莓派4b
*  2.樹(shù)莓派官方 64版本
*  3.溫濕度傳感器:DHT11
*  4.jdk11  
*  5.python3  
*  6.spring boot:2.3.3.RELEASE

### 樹(shù)莓派針腳和DTH11溫濕度傳感器接線

* 1.DTH11-VCC接樹(shù)莓派 物理引腳1(或者其他5V高電平) 
* 2.DTH11-GND接樹(shù)莓派 物理引腳6(或者其他低電平)
* 3.DTH11-data接樹(shù)莓派 物理引腳7,BCM4(或者其他digigal針腳,針腳通過(guò)接口傳遞)

* 
### 環(huán)境安裝
* 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
  驗(yàn)證:
  python3 AdafruitDHT.py 11 4
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

四.測(cè)試結(jié)果

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

或者瀏覽器:http://192.168.0.102:8101/th_sensor/readth?radio=4

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2948

    瀏覽量

    104383
  • 樹(shù)莓派
    +關(guān)注

    關(guān)注

    116

    文章

    1684

    瀏覽量

    105408
  • DTH11
    +關(guān)注

    關(guān)注

    2

    文章

    9

    瀏覽量

    8965
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STM32+DHT11監(jiān)測(cè)環(huán)境溫濕度

    DHT11是一種數(shù)字溫濕度傳感器,能夠通過(guò)數(shù)字信號(hào)輸出當(dāng)前環(huán)境的溫度和濕度值。DHT11可以
    的頭像 發(fā)表于 05-17 09:22 ?4830次閱讀
    STM32+<b class='flag-5'>DHT11</b>監(jiān)測(cè)<b class='flag-5'>環(huán)境</b>的<b class='flag-5'>溫濕度</b>

    基于arduino的dht11溫濕度傳感器的使用

    本文介紹了DHT11溫濕度傳感器電氣特性、DHT11封裝形式及接口說(shuō)明與典型應(yīng)用電路,其次介紹了DHT11溫濕度傳感器時(shí)序圖與連接圖,最后介
    發(fā)表于 01-22 15:50 ?4.4w次閱讀
    基于arduino的<b class='flag-5'>dht11</b><b class='flag-5'>溫濕度</b>傳感器的使用

    STM32外接DHT11溫濕度傳感器并通過(guò)OLED進(jìn)行數(shù)據(jù)顯示的設(shè)計(jì)電路與程序

    本篇介紹了如何在STM32上外接溫濕度DHT11實(shí)現(xiàn)溫濕度數(shù)據(jù)的讀取,并通過(guò)OLED進(jìn)行數(shù)據(jù)顯示。
    的頭像 發(fā)表于 06-07 09:09 ?1.2w次閱讀
    STM32外接<b class='flag-5'>DHT11</b><b class='flag-5'>溫濕度</b>傳感器并<b class='flag-5'>通過(guò)</b>OLED進(jìn)行數(shù)據(jù)顯示的設(shè)計(jì)電路與程序

    通過(guò)使用AT89C52和DHT11設(shè)計(jì)的溫濕度控制系統(tǒng)資料分享

    【資源下載】下載地址:點(diǎn)擊下載 1343 百度網(wǎng)盤(pán)本文通過(guò)使用AT89C52單片機(jī)、DHT11傳感器模塊、1602液晶顯示屏模塊以及繼電器控制模塊。簡(jiǎn)單明了的實(shí)現(xiàn)的溫濕度的控制要求。DHT11
    發(fā)表于 11-10 07:02

    使用STM32來(lái)讀取DHT11數(shù)字溫濕度傳感器

    基于STM32 -DHT11 數(shù)字溫濕度傳感器實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康模哼@個(gè)實(shí)驗(yàn)的目的使用 STM32來(lái)讀取DHT11 數(shù)字溫濕度傳感器,從而得到
    發(fā)表于 11-10 08:58

    如何通過(guò)NodeMCU和DHT11收集溫濕度

    使用 NodeMCU 和 DHT11 傳感器通過(guò) MQTT 上傳溫濕度數(shù)據(jù)簡(jiǎn)介本示例將演示如何通過(guò) NodeMCU, DHT11 收集
    發(fā)表于 11-24 08:08

    溫濕度DHT11資料

    溫濕度DHT11資料匯總 DHT11是一款有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度傳感器。 其精度濕度+-5%RH, 溫度+-2℃,量程
    發(fā)表于 11-29 17:28 ?27次下載

    如何才能在樹(shù)莓派上讀取DHT11溫濕度詳細(xì)方法實(shí)例說(shuō)明

    dht11是一個(gè)較為普遍的溫濕度傳感器,但是在樹(shù)莓派上讀取卻不容易。 轉(zhuǎn)了一圈論壇、百度、實(shí)驗(yàn)室,例子里面大多數(shù)都是用庫(kù)或者直接硬來(lái)(直接讀取
    的頭像 發(fā)表于 10-13 10:05 ?1.3w次閱讀

    使用樹(shù)莓DHT11溫濕度傳感器設(shè)計(jì)可控化智能家居系統(tǒng)的資料說(shuō)明

    基礎(chǔ)搭建,用DHT11溫濕度傳感器測(cè)出溫濕度數(shù)據(jù),將數(shù)據(jù)(參數(shù))通過(guò)Python編程傳輸?shù)?b class='flag-5'>樹(shù)莓
    發(fā)表于 12-09 08:00 ?17次下載
    使用<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>和<b class='flag-5'>DHT11</b><b class='flag-5'>溫濕度</b>傳感器設(shè)計(jì)可控化智能家居系統(tǒng)的資料說(shuō)明

    stm32獲取DHT11模塊溫濕度數(shù)據(jù)原理解析

    stm32獲取DHT11模塊溫濕度數(shù)值原理解析stm32單片機(jī)如何從DHT11獲取到溫濕度的呢?首先可以通過(guò)
    發(fā)表于 11-13 20:06 ?54次下載
    stm32獲取<b class='flag-5'>DHT11</b>模塊<b class='flag-5'>溫濕度</b>數(shù)據(jù)原理解析

    使用 NodeMCU 和 DHT11 傳感器通過(guò) MQTT 上傳溫濕度數(shù)據(jù)

    使用 NodeMCU 和 DHT11 傳感器通過(guò) MQTT 上傳溫濕度數(shù)據(jù)簡(jiǎn)介本示例將演示如何通過(guò) NodeMCU, DHT11 收集
    發(fā)表于 11-16 10:06 ?29次下載
    使用 NodeMCU 和 <b class='flag-5'>DHT11</b> 傳感器<b class='flag-5'>通過(guò)</b> MQTT 上傳<b class='flag-5'>溫濕度</b>數(shù)據(jù)

    MSP432 P401R 單片機(jī) 讀取DHT11 串口發(fā)送溫濕度 OLED顯示溫濕度 溫濕度檢測(cè)

    MSP432P401R讀取DHT11串口發(fā)送溫濕度OLED顯示溫濕度
    發(fā)表于 12-16 16:54 ?33次下載
    MSP432 P401R 單片機(jī)  <b class='flag-5'>讀取</b><b class='flag-5'>DHT11</b> 串口發(fā)送<b class='flag-5'>溫濕度</b> OLED顯示<b class='flag-5'>溫濕度</b> <b class='flag-5'>溫濕度</b>檢測(cè)

    【Renesas RA6M4開(kāi)發(fā)板之DHT11溫濕度讀取

    本篇通過(guò)Renesas RA6M4開(kāi)發(fā)板DHT11溫濕度讀取示例程序演示。
    的頭像 發(fā)表于 01-18 17:18 ?1585次閱讀
    【Renesas RA6M4開(kāi)發(fā)板之<b class='flag-5'>DHT11</b><b class='flag-5'>溫濕度</b><b class='flag-5'>讀取</b>】

    DHT11驅(qū)動(dòng)通過(guò)串口打印采集到的環(huán)境溫濕度數(shù)據(jù)

    DHT11數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度綜合傳感器,常用于暖通空調(diào)、汽車(chē)、除濕器、自動(dòng)控制等領(lǐng)域。
    發(fā)表于 06-13 15:25 ?1330次閱讀
    <b class='flag-5'>DHT11</b>驅(qū)動(dòng)<b class='flag-5'>通過(guò)</b>串口打印采集到的<b class='flag-5'>環(huán)境</b><b class='flag-5'>溫濕度</b>數(shù)據(jù)

    Arduino Nano 和 NodeMCU ESP8266 讀取 DHT11 環(huán)境溫濕度數(shù)據(jù)及 OLED顯示

    Arduino Nano 和 NodeMCU ESP8266 讀取 DHT11 環(huán)境溫濕度數(shù)據(jù)及 OLED顯示
    的頭像 發(fā)表于 08-13 18:04 ?796次閱讀
    Arduino Nano 和 NodeMCU ESP8266 <b class='flag-5'>讀取</b> <b class='flag-5'>DHT11</b> <b class='flag-5'>環(huán)境</b><b class='flag-5'>溫濕度</b>數(shù)據(jù)及 OLED顯示