chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

從零搭建W55MH32以太網(wǎng)環(huán)境空氣質量檢測系統(tǒng):MQTT阿里云平臺監(jiān)測+內置Web網(wǎng)頁顯示+代碼全解析

胡沛源 ? 來源:jf_43373790 ? 作者:jf_43373790 ? 2025-08-12 09:44 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1 前言

我是個挺愛琢磨生活細節(jié)的人,在不同的場所我總是會覺得我鼻子不舒服,嗓子也有點干。但是有的地方也挺干凈整潔的呀,我心里時常想:“這也沒人抽煙,也沒刮大風啊?難道是空氣不行?”可空氣好不好,看不見摸不著啊!PM2.5:那些比頭發(fā)絲還細幾十倍的灰塵顆粒,吸進去就賴在肺里不走了,長期下來可不是鬧著玩的。家里有老人小孩的,更得注意這個。二氧化碳:你以為人多的地方只是“悶”?那是CO2超標了!在教室、會議室甚至自己關著門的臥室待久了,頭暈、犯困、注意力不集中,很可能就是它在搗鬼。辦公室下午集體犯困?搞不好就是通風不夠,CO2爆表了!空氣干不干凈?不知道! 全憑感覺,鼻子嗓子不舒服了才后知后覺。開不開窗?很糾結! 外面看著天挺好,開了窗結果可能進來一堆灰(PM2.5);關窗吧,屋里人一多,CO2蹭蹭漲,悶得慌。凈化器/新風開不開?開多久?純靠猜!電費嘩嘩流,效果怎么樣?心里沒底。我就想:能不能做個簡單、便宜又能聯(lián)網(wǎng)的小玩意兒,讓我隨時知道身邊的空氣“底細”?

既然要“隨時知道”,那肯定得聯(lián)網(wǎng)!把數(shù)據(jù)發(fā)到手機或者網(wǎng)頁上才方便。自己做網(wǎng)絡協(xié)議?想想就頭大!直到我發(fā)現(xiàn)了 W55MH32 這塊板子,簡直是量身定做:“自帶網(wǎng)卡”的MCU: 它最牛的地方就是 芯片里直接集成了硬件TCP/IP協(xié)議棧、以太網(wǎng)MAC和PHY!這意味著什么?我不需要再外接復雜的WiFi模塊或者額外跑協(xié)議棧消耗寶貴的CPU資源。硬件搞定網(wǎng)絡底層,開發(fā)更簡單! 我只需要關心怎么讀取傳感器數(shù)據(jù),然后把數(shù)據(jù)打包發(fā)出去就行。成本低、連線少: 基本上,加個網(wǎng)絡變壓器和RJ45網(wǎng)口,插根網(wǎng)線,它就能直接上網(wǎng)了!穩(wěn)定性也比很多WiFi方案靠譜。性能夠用: 處理幾個傳感器的數(shù)據(jù),做點簡單計算,再通過網(wǎng)絡發(fā)出去,W55MH32的性能綽綽有余。

基于以上,我決定動手搞這個項目:本項目以W55MH32 以太網(wǎng)開發(fā)板為核心,通過JW01-CO2傳感器(實時監(jiān)測二氧化碳濃度)與DC01紅外PM2.5傳感器(精準檢測空氣中細顆粒物含量),構建了一套智能環(huán)境監(jiān)測解決方案。系統(tǒng)通過MQTT協(xié)議與阿里云物聯(lián)網(wǎng)平臺建立穩(wěn)定通信鏈路,實現(xiàn)監(jiān)測數(shù)據(jù)的云端遠程傳輸、存儲與分析,支持用戶通過移動端或Web端實時查看數(shù)據(jù)歷史趨勢與告警信息。
創(chuàng)新性地開發(fā)了本地實時數(shù)據(jù)可視化網(wǎng)頁,設備內置輕量級Web服務器,用戶可直接通過瀏覽器訪問設備IP地址,獲取傳感器數(shù)據(jù)的動態(tài)刷新顯示(5秒更新一次)。最終達到讓“看不見”的空氣變得“看得見、摸得著、管得住”,用數(shù)據(jù)指導生活,呼吸得更明白、更健康!

開源項目源碼:https://gitee.com/hupeiyuan0218/w55mh32_aircheck.git

視頻演示:https://www.bilibili.com/video/BV162tzzaEcg/?vd_source=0e464ab43d68457de7bac889723ef284

2 項目環(huán)境

2.1 硬件環(huán)境

W55MH32開發(fā)板

JW01-CO2傳感器

DC01紅外PM2.5傳感器

網(wǎng)線

若干杜邦線

2.2 軟件準備

開發(fā)環(huán)境:Keil uVision 5

Wiznet串口助手(其他串口工具也可以)

阿里云服務器

瀏覽器

2.3 方案圖示

wKgZPGiVYhyAP1oeAArxn9C9TrI734.png

3 注冊阿里云賬號以及建立物模型

注冊賬號在這里不進行贅述,下面我們看如何建立物模型。

3.1 創(chuàng)建產(chǎn)品

搜索物聯(lián)網(wǎng)平臺 → 點擊物聯(lián)網(wǎng)平臺 → 點擊公共實例

wKgZO2iVYiWAdXp8ABj8N6p_KIk230.png

選擇設備管理 → 點擊產(chǎn)品 → 點擊創(chuàng)建產(chǎn)品

wKgZPGiVYi2AY7IWABaVPu1qT6M599.png

設置產(chǎn)品名稱、所屬品類、節(jié)點類型、連網(wǎng)方式、數(shù)據(jù)格式

wKgZO2iVYjWAJo1yABaVPpKI99Y074.png

3.2 添加設備

創(chuàng)建成功產(chǎn)品后點擊添加設備 → 輸入DeviceName

wKgZO2iVYj2AcWS1ABaVPoQmH1I132.png

3.3 創(chuàng)建物模型

定義物聯(lián)網(wǎng)模型,選擇產(chǎn)品 → 點擊功能定義 → 點擊前往編輯草稿

wKgZO2iVYkqAPnPmABaVPpbZrtg441.png

點擊添加自定義功能 → 選擇功能類型 → 輸入功能名稱 → 設置標識符 → 設置數(shù)據(jù)類型 → 設置取值范圍 → 設置步長 → 設置單位 → 設置讀寫類型

wKgZPGiVYlCANaraABaVPjdbUqA314.png

3.4 獲取設備連接信息

點擊產(chǎn)品 → 選擇創(chuàng)建的產(chǎn)品 → 點擊Topic類列表 → 選擇物模型通信

wKgZO2iVYlaAAk13ABDaj0Pm0WM721.png

訂閱平臺下發(fā)消息的主題:
/sys/a1QsjDLF7Rq/${deviceName}/thing/service/property/set
設備發(fā)布消息主題:
/sys/a1QsjDLF7Rq/${deviceName}/thing/event/property/post

注:兩個主題中的{device_id}需要更改為自己設備的ID

點擊設備管理 → 選擇設備 → 點擊查看

wKgZPGiVYmKAca9mABDajw3qPQk880.png


點擊查看DeviceSecret,獲取到設備證書

{
    "ProductKey": "a1QsjDLF7Rq",
    "DeviceName": "W55MH32",
    "DeviceSecret": "5a2b4550d9a3e7a8c19c1c8943d8f710"
}
wKgZPGiVYoGAU11vABDaj94HZmM828.png

獲取MQTT連接參數(shù)

wKgZO2iVYomABvIDABDaj0Em_gk332.png

4 例程修改

本次以MQTT&Aliyun為例:

找到do_mqtt.c文件,把上述中的參數(shù)更換為自己阿里云的參數(shù),這些參數(shù)我們在上面都有講到,可以自行替換。

mqttconn mqtt_params = {
    .mqttHostUrl = "a1QsjDLF7Rq.iot-as-mqtt.cn-shanghai.aliyuncs.com",
    .server_ip =
        {
            0,
        },        /*Define the Connection Server IP*/
    .port = 1883, /*Define the connection service port number*/
    .clientid = "a1QsjDLF7Rq.W55MH32|securemode=2,signmethod=hmacsha256,"
                "timestamp=1752545118110|", /*Define the client ID*/
    .username = "W55MH32&a1QsjDLF7Rq",      /*Define the user name*/
    .passwd = "f0dcd6ce4df2493438e42dbd9dd789d348309201ac18f18dd158ddceea45fc5"
              "d", /*Define user passwords*/
    .pubtopic =
        "/sys/a1QsjDLF7Rq/W55MH32/thing/event/property/post", /*Define the
                                                                 publication
                                                                 message*/
    .subtopic =
        "/sys/a1QsjDLF7Rq/W55MH32/thing/service/property/set", /*Define
                                                                  subscription
                                                                  messages*/
    .pubQoS = QOS0, /*Defines the class of service for publishing messages*/
};

先發(fā)送訂閱主題{device_id}的數(shù)據(jù)包
/sys/a1QsjDLF7Rq/W55MH32/thing/service/property/set訂閱成功后,接收到來自主題的信息SUCCESS。

case SUB: {
    ret = MQTTSubscribe(&c, mqtt_params.subtopic,mqtt_params.subQoS,
                        messageArrived); /* Subscribe to Topics */
    printf("Subscribing to %srn", mqtt_params.subtopic);
    printf("Subscribed:%srnrn", ret == SUCCESSS ? "success" : "failed");
    if (ret != SUCCESSS) {
      run_status = ERR;
    } else {
      run_status = PUB_MESSAGE;
    }
    break;
  }

接下來進行數(shù)據(jù)發(fā)布,這一步請確保服務ID(Temperature)和屬性名(CurrentTemperature)與您在阿里云上定義的產(chǎn)品模型完全一致(包括大小寫)。發(fā)布成功后更新狀態(tài)為保持連接狀態(tài)。

case PUB_MESSAGE: {
    // 動態(tài)構建JSON負載
    snprintf(payload_buffer, PAYLOAD_BUFFER_SIZE,
             "{"id":"123","version":"1.0","
             ""params":{"co2":%d,"PM2_5":%d},"
             ""method":"thing.event.property.post"}",
             co2_concentration, concentration);

    pubmessage.qos = QOS0;
    pubmessage.payload = payload_buffer;
    pubmessage.payloadlen = strlen(payload_buffer);
    ret = MQTTPublish(&c, (char *)&(mqtt_params.pubtopic),
                      &pubmessage); /* Publish message */
    if (ret != SUCCESSS) {
      run_status = ERR;
    } else {
      printf("publish:%s,%srnrn", mqtt_params.pubtopic, payload_buffer);
      run_status = KEEPALIVE;
    }
    break;
  }

完成這兩步就可以成功連接阿里云,并上傳數(shù)據(jù)到阿里云。

采集數(shù)據(jù)采用的傳感器采用的是JW01-CO2傳感器、DC01紅外PM2.5傳感器,這兩個傳感器都是通過串口通信,首先進行串口初始化,然后傳感器每秒自動將采集到的數(shù)據(jù)通過串口發(fā)送。DC01紅外PM2.5傳感器通過串口二連接,JW01-CO2傳感器通過串口三連接。

初始化串口二、串口三

// 串口2初始化函數(shù)
void pm25_usart2_init(uint32_t baudrate)
{
    GPIO_InitTypeDef  GPIO_InitStructure;
    USART_InitTypeDef USART_InitStructure;
    NVIC_InitTypeDef  NVIC_InitStructure;

    // 使能時鐘
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);

    // 配置TX引腳 (PA0)
    GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_0;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AF_PP;
    GPIO_Init(GPIOA, &GPIO_InitStructure);

    // 配置RX引腳 (PA3)
    GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_3;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
    GPIO_Init(GPIOA, &GPIO_InitStructure);

    // 配置串口參數(shù)
    USART_InitStructure.USART_BaudRate            = baudrate;
    USART_InitStructure.USART_WordLength          = USART_WordLength_8b;
    USART_InitStructure.USART_StopBits            = USART_StopBits_1;
    USART_InitStructure.USART_Parity              = USART_Parity_No;
    USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
    USART_InitStructure.USART_Mode                = USART_Mode_Rx | USART_Mode_Tx;

    USART_Init(USART2, &USART_InitStructure);
    
    // 使能接收中斷
    USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);
    
    // 配置NVIC
    NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);
    
    // 使能串口
    USART_Cmd(USART2, ENABLE);
}
 
// 串口3初始化
void co2_usart3_init(uint32_t baudrate)
{
    GPIO_InitTypeDef GPIO_InitStructure;
    USART_InitTypeDef USART_InitStructure;
    NVIC_InitTypeDef NVIC_InitStructure;

    // 使能時鐘
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE);

    // 配置USART3 TX (PB10) 為復用推挽輸出
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
    GPIO_Init(GPIOB, &GPIO_InitStructure);

    // 配置USART3 RX (PB11) 為浮空輸入
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
    GPIO_Init(GPIOB, &GPIO_InitStructure);

    // USART參數(shù)配置
    USART_InitStructure.USART_BaudRate = baudrate;
    USART_InitStructure.USART_WordLength = USART_WordLength_8b;
    USART_InitStructure.USART_StopBits = USART_StopBits_1;
    USART_InitStructure.USART_Parity = USART_Parity_No;
    USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
    USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
    USART_Init(USART3, &USART_InitStructure);

    // 使能接收中斷
    USART_ITConfig(USART3, USART_IT_RXNE, ENABLE);

    // 配置USART3中斷
    NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2; // 優(yōu)先級低于串口2
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);

    // 使能串口
    USART_Cmd(USART3, ENABLE);
}

初始化完成之后,通過數(shù)據(jù)格式進行解析,將PM2.5濃度、二氧化碳濃度計算出來

//解析計算PM2.5濃度
void pm25_data_process_usart2(void)
{
    // 計算校驗和:前三字節(jié)的低7位之和
    uint8_t calculated_checksum = (rx_buffer[0] & 0x7F) + 
                                  (rx_buffer[1] & 0x7F) + 
                                  (rx_buffer[2] & 0x7F);
    calculated_checksum &= 0x7F; // 保留低7位
    
    // 獲取接收到的校驗位(第四字節(jié))
    uint8_t received_checksum = rx_buffer[3] & 0x7F;
    
    // 校驗檢查
    if (calculated_checksum != received_checksum)
    {
        checksum_error = 1;
        return; // 校驗失敗,丟棄數(shù)據(jù)
    }
    
    checksum_error = 0;
    
    // 計算濃度值
    // 濃度值 = (DATAH[6:0] 

這樣我們就獲取到了環(huán)境空氣質量數(shù)據(jù),再創(chuàng)建一個網(wǎng)頁,將PM2.5濃度、CO2濃度進行顯示出來,每五秒刷新一次。

int32_t loopback_tcps(uint8_t sn, uint8_t *buf, uint16_t port) {
  int32_t ret;
  uint16_t size = 0, sentsize = 0;

  switch (getSn_SR(sn)) {
  case SOCK_ESTABLISHED:
    if (getSn_IR(sn) & Sn_IR_CON) {

      setSn_IR(sn, Sn_IR_CON);
    }
    if ((size = getSn_RX_RSR(sn)) >
        0) // Don't need to check SOCKERR_BUSY because it doesn't not occur.
    {
      if (size > DATA_BUF_SIZE)
        size = DATA_BUF_SIZE;
      ret = recv(sn, buf, size);

      if (ret <= 0)
        return ret; // check SOCKERR_BUSY & SOCKERR_XXX. For showing the
                    // occurrence of SOCKERR_BUSY.
      size = (uint16_t)ret;
      sentsize = 0;
      buf[size] = 0x00;
      printf("rece data:%srn", buf);

      HttpRequestLine req_line;
      if (parse_request_line((char *)buf, &req_line) == 0) {
        printf("Method: %sn", req_line.method);   // 輸出: GET
        printf("URI: %sn", req_line.uri);         // 輸出: /
        printf("Version: %sn", req_line.version); // 輸出: HTTP/1.1

        if (strcmp(req_line.method, "GET") == 0 &&
            strcmp(req_line.uri, "/") == 0) {
          char html_buffer[2048]; // 確保緩沖區(qū)足夠大
          snprintf(html_buffer, sizeof(html_buffer), index_page,
                   g_co2_concentration, g_pm25_concentration);

          uint16_t content_len = strlen(html_buffer);
          sentsize = 0;
          while (content_len != sentsize) {
            ret = send(sn, (uint8_t *)html_buffer + sentsize,
                       content_len - sentsize);
            if (ret < 0) {
              close(sn);
              return ret;
            }
            sentsize += ret;
          }
          disconnect(sn);
          close(sn);
        } else if (strcmp(req_line.method, "GET") == 0 &&
                   strcmp(req_line.uri, "/api/sensor") == 0) {
          char sensor_data[64];
          sprintf(sensor_data, "{"pm25":%u,"co2":%u}", g_co2_concentration,
                  g_pm25_concentration);
          char response[128];
          sprintf(response,
                  "HTTP/1.1 200 OKrn"
                  "Content-Type: application/jsonrn"
                  "Connection: closern"
                  "rn"
                  "%s",
                  sensor_data);
          send(sn, (uint8_t *)response, strlen(response));
          disconnect(sn);
          close(sn);
        } else {
          send(sn, (uint8_t *)HTTP_RESPONSE_404, strlen(HTTP_RESPONSE_404));
          disconnect(sn);
          close(sn);
        }
      }

      else {
        printf("解析失??!n");
      }
    }
    break;
  case SOCK_CLOSE_WAIT:
    if ((ret = disconnect(sn)) != SOCK_OK)
      return ret;
    break;
  case SOCK_INIT:
    if ((ret = listen(sn)) != SOCK_OK)
      return ret;
    break;
  case SOCK_CLOSED:
    if ((ret = socket(sn, Sn_MR_TCP, port, 0x00)) != sn)
      return ret;
    break;
  default:
    break;
  }
  return 1;
}

最后在主函數(shù)中添加初始化并在while函數(shù)中添加函數(shù)

    pm25_usart2_init(9600);
    co2_usart3_init(9600);
    while (1) {
    do_mqtt();
    pm25_data_process_usart2();
    co2_data_process_usart3();
    loopback_tcps(1, ethernet_buf, 80);
    }

5 功能驗證

程序燒錄完畢,硬件連接完成如下圖所示:

wKgZO2iVY1OAQGMaABIyV2RXrGg638.png

硬件連接完畢,上電通過串口助手打印如下信息:

wKgZPGiVY12AG9aeACjJffcH22g114.png

二氧化碳傳感器需要預熱5-10分鐘進行測試,預熱完成之后即可測試出環(huán)境空氣中CO2和PM2.5濃度含量,同步上傳到阿里云服務器和在本地網(wǎng)頁,每五秒刷新一次。

wKgZO2iVY4aAWNg1ACJ33fAoH1Y351.png

6 總結


本項目通過整合硬件資源、通信協(xié)議與云平臺能力,成功實現(xiàn)環(huán)境空氣質量檢測功能,驗證了 W55MH32 在物聯(lián)網(wǎng)的實用性,感謝大家的耐心閱讀!如果您在閱讀過程中有任何疑問,或者希望進一步了解這款產(chǎn)品及其應用,歡迎隨時通過私信或評論區(qū)留言。我們會盡快回復您的消息,為您提供更詳細的解答和幫助!

審核編輯 黃宇

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

    關注

    41

    文章

    5866

    瀏覽量

    178598
  • 服務器
    +關注

    關注

    13

    文章

    10000

    瀏覽量

    90113
  • 開發(fā)板
    +關注

    關注

    25

    文章

    5999

    瀏覽量

    110045
  • 阿里云
    +關注

    關注

    3

    文章

    1023

    瀏覽量

    45270
  • MQTT
    +關注

    關注

    5

    文章

    708

    瀏覽量

    24422
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    汽車空氣質量檢測與改善方案簡介

    吹到汽車里的空氣質量。該系統(tǒng)能自動判斷并地適應各種駕駛環(huán)境,如城市、鄉(xiāng)村、交通阻塞路口或隧道等。另外,該系統(tǒng)還有自學習和自我檢測功能以適應不
    發(fā)表于 07-19 14:09

    STM32空氣質量檢測應用教程

    應用,即微控制器采集空氣質量傳感器的數(shù)據(jù),通過WIFI上報到機智服務器,然后我們通過手機端APP即可遠程查看監(jiān)測值。有圖有真相: 1.圖文PDF教程: STM32L432 Nucleo-32案例-3
    發(fā)表于 12-29 14:36

    【OneNET麒麟座試用申請】空氣質量數(shù)據(jù)監(jiān)測

    項目名稱:空氣質量數(shù)據(jù)監(jiān)測站試用計劃:空氣質量數(shù)據(jù)監(jiān)測站用于測試空氣質量監(jiān)測及數(shù)據(jù)采集,實現(xiàn)野外
    發(fā)表于 04-05 15:03

    【Thunderboard Sense試用申請】移動空氣質量監(jiān)測

    模式,空氣質量傳感器監(jiān)測當前空氣質量狀況并通過LED分色顯示,陀螺儀記錄使用者運動狀態(tài),以上數(shù)據(jù)通過2.4G wireless soc 上傳至網(wǎng)絡
    發(fā)表于 05-19 17:10

    什么是空氣質量網(wǎng)格化監(jiān)測?

    近幾年,環(huán)境污染問題一直都困擾著人們的生活,尤其是大氣污染問題不僅嚴重威脅著人類的生命健康,而且也造成了生態(tài)破壞。隨著城市大氣污染的日益惡化,城市管理部門為了實時采集各區(qū)域范圍內的空氣質量數(shù)據(jù),都會選擇部署空氣
    發(fā)表于 11-24 06:07

    怎樣去設計基于STM32的空氣質量監(jiān)測系統(tǒng)

    基于STM32的空氣質量監(jiān)測系統(tǒng)簡單案例系統(tǒng)簡介軟硬件介紹STM32F103開發(fā)板MQ135空氣質量傳感器DS18B20溫度傳感器設計流程硬
    發(fā)表于 08-11 07:38

    基于單片機的環(huán)境空氣質量檢測系統(tǒng)的設計

    【資源下載】下載地址如下:設計簡介:本設計是基于單片機的環(huán)境空氣質量檢測系統(tǒng)的設計,主要實現(xiàn)以下功能:實現(xiàn)通過甲烷氣體傳感器檢測室內甲烷濃度
    發(fā)表于 11-19 07:03

    基于單片機的空氣質量監(jiān)測的設計資料分享

    設計簡介:本設計是基于單片機的空氣質量監(jiān)測,主要實現(xiàn)以下功能:可實現(xiàn)LCD1602顯示DS1302時間以及空氣質量值可通過按鍵對時間進行設置可通過按鍵對
    發(fā)表于 12-13 07:26

    網(wǎng)格化空氣質量監(jiān)測站的特點

    網(wǎng)格化空氣質量監(jiān)測站【霍爾德儀器HED-AQ1】空氣質量檢測儀有哪些強大功能呢?以前我們只顧及科技的快速進步,工業(yè)生產(chǎn)的加快發(fā)展,往往忽視了我們的生活
    發(fā)表于 08-11 16:12 ?586次閱讀

    空氣質量監(jiān)測儀:了解您周圍空氣質量的最佳選擇

    監(jiān)測儀的種類 空氣質量監(jiān)測儀有多種類型,包括室內空氣質量監(jiān)測儀、室外空氣質量
    的頭像 發(fā)表于 06-21 11:15 ?1225次閱讀

    空氣質量監(jiān)測儀:掌控空氣質量

    是作為空氣質量監(jiān)測儀的核心部件,它能夠監(jiān)測空氣中的污染物,如:PM2.5、PM10、二氧化碳、氨氣、臭氧、甲醛等等,然后將檢測結果轉換成電信
    的頭像 發(fā)表于 07-21 13:50 ?1332次閱讀

    空氣質量監(jiān)測系統(tǒng)介紹

    環(huán)境保護已經(jīng)成為全球的重要議題,而空氣質量監(jiān)測和管理是其中的重要一環(huán)。在這個過程中,空氣質量監(jiān)測系統(tǒng)
    的頭像 發(fā)表于 08-15 10:51 ?2298次閱讀

    空氣質量監(jiān)測系統(tǒng):保護我們的環(huán)境和健康

    空氣質量的變化情況,制定有效的環(huán)境保護策略,并評估這些策略的效果。 空氣質量監(jiān)測系統(tǒng)是如何工作的? 一般來說,
    的頭像 發(fā)表于 08-16 11:39 ?956次閱讀

    即刻啟程,踏上W55MH32高性能以太網(wǎng)單片機學習之路!

    即刻啟程,踏上W55MH32高性能以太網(wǎng)單片機學習之路!即刻開啟W55MH32學習之旅!本教系列程配套官方手冊與W55MH32L開發(fā)板,
    的頭像 發(fā)表于 05-07 18:51 ?689次閱讀
    即刻啟程,踏上<b class='flag-5'>W55MH32</b>高性能<b class='flag-5'>以太網(wǎng)</b>單片機學習之路!

    智能農(nóng)業(yè)監(jiān)控系統(tǒng)MQTT阿里平臺監(jiān)測+內置Web網(wǎng)頁控制+代碼解析

    該智能農(nóng)業(yè)監(jiān)控系統(tǒng)基于W55MH32以太網(wǎng)單片機搭建,核心實現(xiàn)土壤濕度、光照數(shù)據(jù)采集與水泵智能灌溉控制。硬件采用W55MH32L-EVB主控
    的頭像 發(fā)表于 08-08 11:07 ?1108次閱讀
    智能農(nóng)業(yè)監(jiān)控<b class='flag-5'>系統(tǒng)</b>:<b class='flag-5'>MQTT</b><b class='flag-5'>阿里</b><b class='flag-5'>云</b><b class='flag-5'>平臺</b><b class='flag-5'>監(jiān)測</b>+<b class='flag-5'>內置</b><b class='flag-5'>Web</b><b class='flag-5'>網(wǎng)頁</b>控制+<b class='flag-5'>代碼</b><b class='flag-5'>解析</b>