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

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

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

樹莓派通過java語言通過DHT11讀取環(huán)境溫濕度

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

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

試驗?zāi)繕?biāo):


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

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

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

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

定義與范圍劃分:

1.控制中心:樹莓派4b

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

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

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

5.載體:無。

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

一.準(zhǔn)備


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

1.控制中心


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

代碼編寫與管理平臺(方便網(wǎng)頁控制)

2.電子設(shè)備

dht11模塊(溫濕度傳感器)

電源線若干

3.軟件與程序


centos7 64位

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

python3

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

mysql

5.載體


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

二.電路連接示意圖

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

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

?編輯

2.樹莓派與dht11模塊連接圖

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

溫濕度傳感器

3.物理圖

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

三.程序部分


項目地址:

項目框架:spring boot,

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

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

測試工具:jmeter

 /**
     * 讀取溫度濕度
     * @author jiao_zg
     * @param BCM_POINT
     * @return
     */
    public String readDTH11Result(int BCM_POINT) {
//        boolean isReady = initEnv();
//        if(!isReady){
//            return "環(huán)境未配置,請按照說明書配置環(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é)果失敗. 錯誤碼 :{}", 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針腳,針腳通過接口傳遞)

* 
### 環(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
  驗證:
  python3 AdafruitDHT.py 11 4
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

四.測試結(jié)果

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

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

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

    關(guān)注

    19

    文章

    2952

    瀏覽量

    104482
  • 樹莓派
    +關(guān)注

    關(guān)注

    116

    文章

    1688

    瀏覽量

    105456
  • DTH11
    +關(guān)注

    關(guān)注

    2

    文章

    9

    瀏覽量

    8968
收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

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

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

    本篇介紹了如何在STM32上外接溫濕度DHT11實現(xiàn)溫濕度數(shù)據(jù)的讀取,并通過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'>通過</b>OLED進(jìn)行數(shù)據(jù)顯示的設(shè)計電路與程序

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

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

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

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

    如何通過NodeMCU和DHT11收集溫濕度

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

    溫濕度DHT11資料

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

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

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

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

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

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

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

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

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

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

    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>檢測

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

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

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

    DHT11數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號輸出的溫濕度綜合傳感器,常用于暖通空調(diào)、汽車、除濕器、自動控制等領(lǐng)域。
    發(fā)表于 06-13 15:25 ?1358次閱讀
    <b class='flag-5'>DHT11</b>驅(qū)動<b class='flag-5'>通過</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 ?896次閱讀
    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顯示