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

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

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

基于STM32設(shè)計的工地環(huán)境實時監(jiān)測與控制系統(tǒng)

DS小龍哥-嵌入式技術(shù) ? 來源:DS小龍哥-嵌入式技術(shù) ? 作者:DS小龍哥-嵌入式技 ? 2025-01-21 09:30 ? 次閱讀

一、項目開發(fā)背景

隨著城市化進(jìn)程的推進(jìn),工地建設(shè)和拆遷作業(yè)逐漸增多,工地環(huán)境的空氣污染、噪聲污染等問題越來越嚴(yán)重。為了改善工地周邊居民的生活環(huán)境和施工人員的工作環(huán)境,工地環(huán)境實時監(jiān)測與控制系統(tǒng)應(yīng)運而生。該系統(tǒng)通過實時監(jiān)測空氣中的PM2.5、噪聲、溫濕度等環(huán)境參數(shù),將數(shù)據(jù)上傳至云端平臺進(jìn)行存儲和分析,從而實現(xiàn)對環(huán)境的實時監(jiān)控和智能控制。

此外,本項目通過控制加濕系統(tǒng)降低空氣中的粉塵濃度,確保工地作業(yè)環(huán)境符合安全和健康標(biāo)準(zhǔn)。通過將監(jiān)測數(shù)據(jù)上傳至云端服務(wù)器,項目還能夠提供全面的環(huán)境可視化展示,便于施工方和管理方進(jìn)行數(shù)據(jù)分析與決策。

image-20241225142059654

二、設(shè)計實現(xiàn)的功能

1. 支持檢測空氣中的PM2.5含量

系統(tǒng)通過使用夏普PM2.5傳感器檢測空氣中的PM2.5濃度,并實時反饋到本地LCD顯示屏,同時上傳到云平臺進(jìn)行進(jìn)一步分析。

2. 支持檢測環(huán)境的噪聲

通過噪聲檢測傳感器檢測周圍環(huán)境的噪聲水平,轉(zhuǎn)換為電壓信號,經(jīng)過處理后得到噪聲值,實時顯示在LCD屏幕上并上傳至云端。

3. 本地實時顯示數(shù)據(jù)

采用1.44寸LCD顯示屏,實時顯示PM2.5濃度、噪聲級別、溫濕度值等環(huán)境數(shù)據(jù),方便現(xiàn)場人員實時查看。

4. 數(shù)據(jù)上云并可視化展示

系統(tǒng)通過WIFI連接到華為云物聯(lián)網(wǎng)服務(wù)器,實時上傳采集到的環(huán)境數(shù)據(jù)。然后通過搭建自有的后端服務(wù)器,使用Python的socket模塊從華為云獲取數(shù)據(jù),并通過Flask框架構(gòu)建Web應(yīng)用,展示環(huán)境監(jiān)測數(shù)據(jù)的可視化大屏。

5. 設(shè)備端數(shù)據(jù)傳輸使用WIFI+MQTT協(xié)議

設(shè)備端(STM32)通過ESP8266模塊連接WiFi,并使用MQTT協(xié)議將監(jiān)測數(shù)據(jù)傳輸?shù)饺A為云物聯(lián)網(wǎng)平臺。MQTT協(xié)議輕量且高效,非常適合物聯(lián)網(wǎng)環(huán)境下的數(shù)據(jù)傳輸。

6. 加濕系統(tǒng)控制

當(dāng)PM2.5濃度超過設(shè)定范圍時,系統(tǒng)自動控制加濕器工作,通過繼電器驅(qū)動噴灑水霧,降低空氣中的粉塵濃度。

7. 支持環(huán)境溫度和濕度檢測

系統(tǒng)通過SHT30傳感器實時監(jiān)測環(huán)境的溫度和濕度,數(shù)據(jù)通過STM32處理后顯示在LCD上,并上傳至云端平臺。

三、項目硬件模塊組成

  1. 主控芯片:STM32F103RCT6
    • 負(fù)責(zé)處理所有傳感器的信號,控制加濕器,并進(jìn)行數(shù)據(jù)上傳。
    • 支持GPIO、ADCUART接口,適用于本項目的各項需求。
  2. PM2.5傳感器(夏普)
    • 采用紅外光散射原理,實時檢測空氣中的PM2.5濃度。
  3. 噪聲傳感器
    • 模擬輸出,通過轉(zhuǎn)換為電壓信號來表示噪聲的強(qiáng)度。
  4. LCD顯示屏(1.44寸)
    • 用于實時顯示環(huán)境數(shù)據(jù),包括PM2.5濃度、噪聲、溫濕度等。
  5. ESP8266 WiFi模塊
    • 提供無線連接功能,將設(shè)備端數(shù)據(jù)通過WiFi傳輸?shù)皆贫恕?/li>
  6. 繼電器模塊
    • 用于控制加濕器的開關(guān),響應(yīng)PM2.5濃度的變化,啟動噴水加濕。
  7. SHT30溫濕度傳感器
    • 精度高,穩(wěn)定性好,用于檢測環(huán)境的溫度和濕度。
  8. 電源模塊USB供電
    • 提供穩(wěn)定的5V電源,確保系統(tǒng)運行。

四、設(shè)計思路

1. 硬件設(shè)計

  • 主控芯片STM32F103RCT6通過GPIO和ADC接口與PM2.5傳感器、噪聲傳感器、SHT30溫濕度傳感器進(jìn)行數(shù)據(jù)采集。
  • 通過UART接口與ESP8266通信,進(jìn)行WiFi連接和MQTT協(xié)議數(shù)據(jù)傳輸。
  • LCD顯示屏通過SPI接口與STM32連接,用于實時顯示環(huán)境參數(shù)。
  • 使用繼電器控制加濕器,當(dāng)PM2.5濃度超標(biāo)時啟動加濕器,保持工地環(huán)境的穩(wěn)定。

2. 軟件設(shè)計

  • 使用Keil5開發(fā)環(huán)境編寫STM32的控制程序,程序包括傳感器數(shù)據(jù)采集、加濕器控制、LCD顯示更新、WiFi連接、MQTT數(shù)據(jù)上傳等功能。
  • 在后端,使用Python的socket模塊建立與云服務(wù)器的通信,通過Flask框架提供Web界面,展示云端環(huán)境數(shù)據(jù)。

3. 數(shù)據(jù)上傳和可視化

  • STM32通過ESP8266模塊上傳數(shù)據(jù)到華為云物聯(lián)網(wǎng)平臺,數(shù)據(jù)格式采用JSON。
  • 后端服務(wù)器通過MQTT協(xié)議從華為云獲取實時數(shù)據(jù),使用Flask框架展示數(shù)據(jù),并通過前端大屏進(jìn)行實時數(shù)據(jù)可視化。

五、系統(tǒng)功能總結(jié)

| 功能模塊 | 具體內(nèi)容 |

| ---------- | ------------------------------------------------------- |

| 環(huán)境監(jiān)測 | 檢測PM2.5、噪聲、溫濕度等環(huán)境數(shù)據(jù) |

| 本地顯示 | LCD顯示屏實時顯示各項監(jiān)測數(shù)據(jù) |

| 數(shù)據(jù)上傳 | 通過WiFi將數(shù)據(jù)上傳至華為云物聯(lián)網(wǎng)平臺 |

| 數(shù)據(jù)展示 | 使用Flask框架搭建Web應(yīng)用,展示實時環(huán)境數(shù)據(jù) |

| MQTT協(xié)議 | 設(shè)備端與云平臺使用MQTT協(xié)議進(jìn)行數(shù)據(jù)傳輸 |

| 加濕器控制 | 根據(jù)PM2.5濃度自動控制加濕器,降低空氣中的粉塵濃度 |

| 后端服務(wù)器 | 使用Python和Flask框架搭建后端服務(wù)器,支持?jǐn)?shù)據(jù)獲取與展示 |

| 可視化大屏 | 提供前端大屏顯示,實時顯示環(huán)境數(shù)據(jù) |

六、使用的模塊的技術(shù)詳情介紹

1. PM2.5傳感器(夏普)

  • 工作原理:通過紅外光散射原理檢測空氣中的顆粒物(如PM2.5)。
  • 輸出信號:通過數(shù)字信號輸出PM2.5的濃度,單位為μg/m3。
  • 精度:±10%(標(biāo)準(zhǔn)測試條件下)。

2. 噪聲傳感器

  • 工作原理:根據(jù)聲音的強(qiáng)度變化,輸出與噪聲大小成比例的電壓信號。
  • 輸出信號:模擬電壓輸出。
  • 測量范圍:一般為30dB至120dB。

3. SHT30溫濕度傳感器

  • 工作原理:通過電容式濕度傳感器和溫度傳感器芯片實現(xiàn)高精度的溫濕度檢測。
  • 輸出信號:通過I2C總線輸出溫度(°C)和濕度(%RH)值。
  • 精度:溫度±0.3°C,濕度±2%RH。

4. ESP8266 WiFi模塊

  • 技術(shù)特點:支持WiFi協(xié)議、TCP/IP協(xié)議棧,具有獨立的處理能力,可以作為WiFi終端連接到網(wǎng)絡(luò)。
  • 功能:用于無線數(shù)據(jù)傳輸,支持MQTT協(xié)議。

5. 繼電器模塊

  • 用于控制電氣設(shè)備(如加濕器),響應(yīng)系統(tǒng)的控制信號。

6. LCD顯示屏

  • 技術(shù)特點:1.44寸的彩色LCD顯示屏,分辨率128x128像素。
  • 用途:實時顯示環(huán)境數(shù)據(jù),便于現(xiàn)場人員查看。

七、總結(jié)

本項目設(shè)計了一個基于STM32的工地環(huán)境實時監(jiān)測與控制系統(tǒng),涵蓋了空氣質(zhì)量、噪聲、溫濕度的檢測與展示,數(shù)據(jù)上云并可視化展示,通過控制加濕器自動調(diào)節(jié)空氣質(zhì)量。系統(tǒng)結(jié)合硬件和軟件的設(shè)計,實現(xiàn)了環(huán)境監(jiān)測與控制的智能化與自動化,提升了工地環(huán)境的安全性和舒適度,具有較高的實用價值。

八、STM32代碼設(shè)計

其他子模塊(如PM2.5傳感器、噪聲傳感器、SHT30溫濕度傳感器、LCD顯示、WiFi模塊ESP8266等)的驅(qū)動和功能已經(jīng)寫好,只需要在main.c中整合這些模塊,實現(xiàn)系統(tǒng)的整體功能。為了簡化代碼,重點展示如何初始化和使用這些模塊。

#include "stm32f1xx_hal.h"

#include "lcd.h"

#include "pm25.h"

#include "noise_sensor.h"

#include "sht30.h"

#include "wifi.h"

#include "mqtt.h"

#include "relay.h"


// 定義外部傳感器和硬件接口

extern PM25_TypeDef pm25_sensor;    // PM2.5傳感器實例

extern NoiseSensor_TypeDef noise_sensor;  // 噪聲傳感器實例

extern SHT30_TypeDef sht30_sensor;  // 溫濕度傳感器實例

extern Relay_TypeDef relay;         // 繼電器控制實例

extern WifiModule_TypeDef wifi_module;  // ESP8266 WiFi模塊

extern MQTT_Client_TypeDef mqtt_client;  // MQTT客戶端


// 定義全局變量

float pm25_value = 0.0;    // 存儲PM2.5濃度值

float noise_value = 0.0;   // 存儲噪聲值

float temperature = 0.0;   // 存儲溫度值

float humidity = 0.0;      // 存儲濕度值


// 功能聲明

void SystemClock_Config(void);

void MX_GPIO_Init(void);

void MX_USART1_UART_Init(void);

void MX_I2C1_Init(void);

void MX_SPI1_Init(void);


// 主程序

int main(void)

{

    // 初始化硬件

    HAL_Init();

    SystemClock_Config();

    MX_GPIO_Init();

    MX_USART1_UART_Init();

    MX_I2C1_Init();

    MX_SPI1_Init();


    // 初始化外設(shè)

    LCD_Init();      // 初始化LCD顯示屏

    PM25_Init(&pm25_sensor);  // 初始化PM2.5傳感器

    NoiseSensor_Init(&noise_sensor);  // 初始化噪聲傳感器

    SHT30_Init(&sht30_sensor);  // 初始化SHT30溫濕度傳感器

    Relay_Init(&relay);    // 初始化繼電器

    Wifi_Init(&wifi_module);  // 初始化WiFi模塊

    MQTT_Init(&mqtt_client);  // 初始化MQTT客戶端


    // 連接WiFi網(wǎng)絡(luò)

    if (Wifi_Connect(&wifi_module)) {

        printf("WiFi Connected.n");

    } else {

        printf("WiFi Connection Failed!n");

    }


    // 連接MQTT服務(wù)器

    if (MQTT_Connect(&mqtt_client)) {

        printf("MQTT Connected.n");

    } else {

        printf("MQTT Connection Failed!n");

    }


    // 主循環(huán)

    while (1)

    {

        // 1. 獲取環(huán)境數(shù)據(jù)

        pm25_value = PM25_Read(&pm25_sensor);  // 讀取PM2.5濃度

        noise_value = NoiseSensor_Read(&noise_sensor);  // 讀取噪聲值

        SHT30_Read(&sht30_sensor, &temperature, &humidity);  // 讀取溫濕度


        // 2. 顯示數(shù)據(jù)到LCD

        LCD_Clear();

        LCD_DisplayString("PM2.5: %.2f μg/m3", pm25_value);

        LCD_DisplayString("Noise: %.2f dB", noise_value);

        LCD_DisplayString("Temp: %.2f C", temperature);

        LCD_DisplayString("Humidity: %.2f %%", humidity);


        // 3. 控制加濕器(如果PM2.5超標(biāo))

        if (pm25_value > 100.0) {  // 如果PM2.5濃度超過100 μg/m3,啟動加濕器

            Relay_SetState(&relay, RELAY_ON);  // 打開加濕器

        } else {

            Relay_SetState(&relay, RELAY_OFF);  // 關(guān)閉加濕器

        }


        // 4. 上傳數(shù)據(jù)到云端

        char payload[256];

        snprintf(payload, sizeof(payload), 

                 "{"pm25": %.2f, "noise": %.2f, "temperature": %.2f, "humidity": %.2f}", 

                 pm25_value, noise_value, temperature, humidity);

        

        // 發(fā)布數(shù)據(jù)到MQTT服務(wù)器

        MQTT_Publish(&mqtt_client, "environment/data", payload);


    }

}

代碼解析

  1. 硬件初始化:
    • main()函數(shù)的開頭,通過HAL_Init()初始化HAL庫,然后調(diào)用各個硬件初始化函數(shù)初始化GPIO、串口、I2C和SPI接口。
    • 初始化LCD、PM2.5傳感器、噪聲傳感器、SHT30傳感器、WiFi模塊和MQTT客戶端。
  2. 環(huán)境數(shù)據(jù)采集:
    • 使用傳感器驅(qū)動函數(shù)(如PM25_Read()NoiseSensor_Read()、SHT30_Read())從相應(yīng)的傳感器獲取PM2.5濃度、噪聲值、溫濕度值。
  3. 數(shù)據(jù)展示:
    • 使用LCD顯示模塊在LCD上顯示PM2.5、噪聲、溫濕度數(shù)據(jù)。
  4. 加濕器控制:
    • 根據(jù)PM2.5濃度的閾值(如100 μg/m3),判斷是否需要啟動加濕器,通過Relay_SetState()數(shù)控制繼電器開關(guān)。
  5. 數(shù)據(jù)上傳:
    • 將讀取的環(huán)境數(shù)據(jù)通過JSON格式上傳至MQTT服務(wù)器。調(diào)用MQTT_Publish()將數(shù)據(jù)發(fā)布到指定的MQTT主題上。

以上代碼展示了如何將各個子模塊(傳感器、WiFi、MQTT、繼電器等)整合在一個STM32項目中,完成實時環(huán)境監(jiān)測、數(shù)據(jù)展示、數(shù)據(jù)上傳和控制加濕器的功能。

審核編輯 黃宇

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

    關(guān)注

    41

    文章

    6652

    瀏覽量

    110758
  • STM32
    +關(guān)注

    關(guān)注

    2270

    文章

    10921

    瀏覽量

    356944
  • 實時監(jiān)測
    +關(guān)注

    關(guān)注

    1

    文章

    128

    瀏覽量

    12694
收藏 人收藏

    評論

    相關(guān)推薦

    基于STM32單片機(jī)礦井礦工作業(yè)安全監(jiān)測設(shè)計

    本項目設(shè)計一個基于STM32單片機(jī)的礦井作業(yè)安全監(jiān)測系統(tǒng)。該系統(tǒng)能夠實時監(jiān)測礦井的
    的頭像 發(fā)表于 01-17 16:45 ?106次閱讀

    基于STM32設(shè)計的森林火災(zāi)監(jiān)測系統(tǒng)

    在設(shè)計基于STM32F103RCT6的森林火災(zāi)監(jiān)測系統(tǒng)時,首先明確了系統(tǒng)的主要目標(biāo):實現(xiàn)對森林環(huán)境中溫度、濕度、煙霧濃度和火焰的
    的頭像 發(fā)表于 01-09 11:25 ?210次閱讀
    基于<b class='flag-5'>STM32</b>設(shè)計的森林火災(zāi)<b class='flag-5'>監(jiān)測</b><b class='flag-5'>系統(tǒng)</b>

    自動控制系統(tǒng)與物聯(lián)網(wǎng)的結(jié)合 自動控制系統(tǒng)實時監(jiān)測技術(shù)

    自動控制系統(tǒng)與物聯(lián)網(wǎng)的結(jié)合為實時監(jiān)測技術(shù)帶來了革命性的變化。以下是對這一結(jié)合以及自動控制系統(tǒng)實時監(jiān)測
    的頭像 發(fā)表于 12-18 10:00 ?304次閱讀

    日光溫室智能控制系統(tǒng)

    、自動控制、物聯(lián)網(wǎng)等現(xiàn)代信息技術(shù),對溫室環(huán)境的精準(zhǔn)監(jiān)測和智能調(diào)控,為農(nóng)作物的生長提供了適宜的生長環(huán)境。主要由感知層、傳輸層、控制層和應(yīng)用層四
    的頭像 發(fā)表于 12-16 16:17 ?221次閱讀

    智慧工地解決方案——工地環(huán)境監(jiān)測系統(tǒng)

    智慧工地解決方案——工地環(huán)境監(jiān)測系統(tǒng) 智慧工地全套源碼,智慧工地PC+APP+數(shù)據(jù)大屏端源碼 需
    的頭像 發(fā)表于 12-02 17:01 ?238次閱讀
    智慧<b class='flag-5'>工地</b>解決方案——<b class='flag-5'>工地</b><b class='flag-5'>環(huán)境監(jiān)測</b><b class='flag-5'>系統(tǒng)</b>

    STM32項目實戰(zhàn):基于STM32F4的智能燈光控制系統(tǒng)(LVGL),附項目教程/源碼

    《智能燈光控制系統(tǒng)_STM32F4》項目完整文檔、項目源碼,私信小雯老師免費領(lǐng)取。STM32項目實戰(zhàn)之“智能燈光控制系統(tǒng)”(基于STM32F
    的頭像 發(fā)表于 10-17 16:16 ?938次閱讀
    <b class='flag-5'>STM32</b>項目實戰(zhàn):基于<b class='flag-5'>STM32</b>F4的智能燈光<b class='flag-5'>控制系統(tǒng)</b>(LVGL),附項目教程/源碼

    鴨舍智能環(huán)境控制系統(tǒng)

    在現(xiàn)代農(nóng)業(yè)的快速發(fā)展中,養(yǎng)殖業(yè)的智能化轉(zhuǎn)型已成為不可逆轉(zhuǎn)的趨勢。其中,鴨舍智能環(huán)境控制系統(tǒng)作為提升養(yǎng)殖效率、保障禽類健康與品質(zhì)的關(guān)鍵技術(shù),正逐步被廣大養(yǎng)殖戶所接受和應(yīng)用。 鴨舍智能環(huán)境控制系統(tǒng)
    的頭像 發(fā)表于 08-28 16:11 ?437次閱讀

    環(huán)境在線監(jiān)測系統(tǒng)解決方案

    、環(huán)保、氣象、農(nóng)業(yè)等領(lǐng)域的實時環(huán)境氣象監(jiān)測與發(fā)布的監(jiān)測系統(tǒng),主要針對景區(qū)、濕地公園空氣質(zhì)量環(huán)境進(jìn)
    的頭像 發(fā)表于 07-10 16:21 ?477次閱讀

    校園科研實驗智能溫室大棚環(huán)境控制系統(tǒng)

    。 校園科研實驗智能溫室大棚環(huán)境控制系統(tǒng),通過對溫室內(nèi)部環(huán)境參數(shù)的實時監(jiān)測和調(diào)控,聯(lián)動灌溉系統(tǒng)、
    的頭像 發(fā)表于 06-28 16:05 ?463次閱讀

    大氣環(huán)境質(zhì)量監(jiān)測系統(tǒng)

    、體積大、易引起錯報、漏報以及控制系統(tǒng)復(fù)雜等問題,出現(xiàn)了一種大氣環(huán)境質(zhì)量監(jiān)測系統(tǒng),利用現(xiàn)代傳感技術(shù)對大氣空氣質(zhì)量進(jìn)行管控。 大氣環(huán)境質(zhì)量
    的頭像 發(fā)表于 06-17 16:35 ?390次閱讀

    智能環(huán)境監(jiān)測系統(tǒng):智能控制,根據(jù)環(huán)境變化自動調(diào)節(jié)

    智能環(huán)境監(jiān)測系統(tǒng),作為一種集信息采集、分析和控制于一體的智能化系統(tǒng),可以對室內(nèi)環(huán)境進(jìn)行實時
    的頭像 發(fā)表于 04-03 15:36 ?947次閱讀

    智能生態(tài)環(huán)境監(jiān)測系統(tǒng)實時監(jiān)測大氣中的各種污染物)

      JD-FZ1隨著工業(yè)化進(jìn)程的不斷加速,環(huán)境污染已經(jīng)成為人們關(guān)注的焦點。為了保護(hù)我們的環(huán)境,智能生態(tài)環(huán)境監(jiān)測系統(tǒng)應(yīng)運而生。這個系統(tǒng)利用先進(jìn)
    的頭像 發(fā)表于 03-27 15:46 ?1071次閱讀

    雞舍環(huán)境智能控制系統(tǒng)功能

    控制系統(tǒng)解決方案,基于設(shè)施養(yǎng)雞場的環(huán)境及雞群的養(yǎng)殖要求,以智慧養(yǎng)殖監(jiān)控平臺為核心,配合溫濕度傳感器、電參數(shù)采集模塊、智能控制柜、無線通信模塊等智能硬件,對雞舍的溫度、濕度、風(fēng)速、氣壓、空氣質(zhì)量等要素進(jìn)行
    的頭像 發(fā)表于 02-19 17:45 ?434次閱讀

    DCS控制系統(tǒng)原理 DCS控制系統(tǒng)的基本功能

    DCS(分散控制系統(tǒng))是一種廣泛應(yīng)用于工業(yè)自動化領(lǐng)域的控制系統(tǒng)。它具有分散控制、集中管理的特點,能夠?qū)崿F(xiàn)對生產(chǎn)過程的進(jìn)行實時監(jiān)測
    的頭像 發(fā)表于 02-02 11:17 ?3586次閱讀

    分布式大屏控制系統(tǒng)對網(wǎng)絡(luò)環(huán)境的要求

    分布式大屏控制系統(tǒng)對網(wǎng)絡(luò)環(huán)境的要求較高,主要是因為該系統(tǒng)需要實時傳輸大量的視頻信號數(shù)據(jù),以保證多個顯示屏幕的同步顯示。以下是幾個關(guān)鍵的網(wǎng)絡(luò)環(huán)境
    的頭像 發(fā)表于 01-29 14:52 ?613次閱讀