構(gòu)建一個(gè)智能空氣質(zhì)量衛(wèi)士
掃描二維碼
隨時(shí)隨地手機(jī)看文章
步驟1:收集組件
對(duì)于這個(gè)項(xiàng)目,您將需要:
?W6300-EVB-PICO2單片機(jī)
?Sensirion SFA30傳感器
?USBFan
?面包板和跳線
步驟2:硬件設(shè)置
W5100S-EVB-PICO2 -可靠的物聯(lián)網(wǎng)基礎(chǔ)
?RP2350雙Cortex-M33 (150MHz) + 520KB SRAM
?16MB閃存+ 16KB網(wǎng)絡(luò)緩沖區(qū)
?4個(gè)并發(fā)套接字,僅支持IPv4
?OTP內(nèi)存的基本安全性
?基本物聯(lián)網(wǎng)應(yīng)用的成本效益
W6300-EVB-PICO2 -高級(jí)物聯(lián)網(wǎng)解決方案
?同樣強(qiáng)大的RP2350核心基礎(chǔ)
?64KB網(wǎng)絡(luò)緩沖區(qū)+ 8個(gè)并發(fā)套接字
?支持IPv4/IPv6雙棧
?增強(qiáng)安全性與TrustZone +安全啟動(dòng)
?局域網(wǎng)喚醒和先進(jìn)的電源管理
主要區(qū)別:W6300增加了一倍的插槽容量,增加了IPv6的未來(lái)保障,并增強(qiáng)了安全性-使其成為復(fù)雜的多連接應(yīng)用的理想選擇,而W5100S可以可靠地處理基本的物聯(lián)網(wǎng)任務(wù)。
連接
SFA30傳感器
?Tx→gp0
?Rx→gp1
風(fēng)機(jī)控制電路
?MOSFET觸發(fā)器PWM→GP2(控制信號(hào))
?MOSFET地→Pico板地(共地)
?MOSFET VIN→5V電源
?MOSFET VOUT→風(fēng)扇
以太網(wǎng)
—內(nèi)置RJ45到網(wǎng)絡(luò)路由器
重要提示:在給電路板上電之前,要仔細(xì)檢查所有連接的安全性和準(zhǔn)確性。
步驟3:軟件配置
設(shè)置Adafruit IO
創(chuàng)建提要:
?溫度飼料
?濕度飼料
?甲醛濃縮飼料
設(shè)計(jì)儀表板:
?轉(zhuǎn)到Dashboard部分設(shè)計(jì)控制界面,添加開(kāi)關(guān)和顏色選擇器等組件
代碼實(shí)現(xiàn)
導(dǎo)入所需庫(kù)
?digitalio:用于控制GPIO引腳。
?time:用于代碼的延遲。
?board:訪問(wèn)特定于板的引腳定義。
?busio:處理串行通信(如SPI)。
?adafruit_dht:用于與DHT溫濕度傳感器交互。
?WIZnet Ethernet:如果單板是指定的以太網(wǎng)單板,則導(dǎo)入WIZnet庫(kù)功能。
?MQTT庫(kù):這些庫(kù)用于使用MQTT協(xié)議與Adafruit IO通信。
管理的秘密
此字典存儲(chǔ)您的Adafruit IO憑據(jù)。您應(yīng)該創(chuàng)建一個(gè)單獨(dú)的secrets.py文件來(lái)保證敏感信息的安全。
網(wǎng)絡(luò)配置
定義網(wǎng)絡(luò)連接的MAC地址、靜態(tài)IP地址、子網(wǎng)掩碼、網(wǎng)關(guān)和DNS服務(wù)器地址。
硬件初始化
?以太網(wǎng)配置:為以太網(wǎng)連接配置引腳并重置WIZnet模塊。
?初始化以太網(wǎng):WIZnet模塊使用SPI初始化,啟用DHCP以自動(dòng)獲取IP地址。
SFA30傳感器設(shè)置
1. UART的設(shè)置
?UART初始化:這一行使用UART(通用異步收發(fā)器)初始化SFA30傳感器進(jìn)行串行通信。
?引腳定義:板。GP0和主板。GP1分別用于TX和RX通信。
?波特率:設(shè)置為115200,保證數(shù)據(jù)傳輸速度快。
2. 傳感器復(fù)位
?Reset命令:SFA_reset數(shù)組中包含復(fù)位SFA30傳感器的命令。命令格式通常包括起始和結(jié)束字節(jié)(0x7E)以及特定的操作代碼。
?等待時(shí)間:發(fā)送reset命令后,等待10秒,以確保傳感器完成初始化過(guò)程。這對(duì)于可靠的讀數(shù)至關(guān)重要。
3. 配置命令
?配置命令:SFA_config數(shù)組包含傳感器開(kāi)始測(cè)量的設(shè)置。與reset命令類(lèi)似,它包括起始字節(jié)和結(jié)束字節(jié)。
?短等待:在發(fā)送配置命令后實(shí)現(xiàn)0.2秒的短暫等待,以允許傳感器在進(jìn)行測(cè)量之前處理設(shè)置。
數(shù)據(jù)處理功能
Set_reading_values (recv_data)處理來(lái)自傳感器的原始數(shù)據(jù):
?檢查有效的響應(yīng)幀。
?提取和轉(zhuǎn)換原始值為有意義的測(cè)量(甲醛,濕度,溫度)。
get_reading_value:向傳感器發(fā)送請(qǐng)求數(shù)據(jù)的命令,讀取響應(yīng),并使用set_reading_values函數(shù)處理它。
風(fēng)機(jī)控制系統(tǒng)
初始化一個(gè)引腳來(lái)控制風(fēng)扇。
?control_fan功能在溫度超過(guò)27℃時(shí)開(kāi)啟風(fēng)扇。
MQTT配置
套接字池:創(chuàng)建用于網(wǎng)絡(luò)通信的套接字池。
?MQTT客戶機(jī):使用來(lái)自秘密字典的代理詳細(xì)信息和憑據(jù)初始化MQTT客戶機(jī)。
?MQTT回調(diào):定義處理MQTT事件的函數(shù):
?connected:確認(rèn)與代理的連接。
?disconnected:斷開(kāi)連接時(shí)通知。
?message:處理傳入消息。
?publish:消息成功發(fā)布時(shí)的日志。
?回調(diào)分配:將前面定義的回調(diào)函數(shù)鏈接到MQTT客戶機(jī)。
主應(yīng)用程序循環(huán)
?處理MQTT任務(wù)。
?從SFA30傳感器讀取數(shù)據(jù)。
?如果獲得有效的讀數(shù),它應(yīng)用一個(gè)校準(zhǔn)偏移到溫度和控制風(fēng)扇。
?打印傳感器讀數(shù)并將其發(fā)布到Adafruit IO
?在下一次讀取前等待3秒。
步驟4:功能和好處
實(shí)時(shí)監(jiān)控
?環(huán)境參數(shù)的連續(xù)跟蹤
?溫度超過(guò)27℃時(shí),風(fēng)扇立即啟動(dòng)
?實(shí)時(shí)數(shù)據(jù)流到Adafruit IO儀表板
安全特性
?自動(dòng)溫度調(diào)節(jié)
?空氣質(zhì)量甲醛水平監(jiān)測(cè)
?傳感器通信的魯棒錯(cuò)誤處理
數(shù)據(jù)可視化
?實(shí)時(shí)測(cè)量當(dāng)前讀數(shù)
?用于趨勢(shì)分析的歷史數(shù)據(jù)圖表
?從任何設(shè)備進(jìn)行遠(yuǎn)程監(jiān)控
步驟5:申請(qǐng)
該系統(tǒng)適用于:
?家庭環(huán)境監(jiān)測(cè)
?辦公室空氣質(zhì)素評(píng)估
?實(shí)驗(yàn)室安全系統(tǒng)
?暖通空調(diào)系統(tǒng)集成
?智能溫室控制
結(jié)論
該環(huán)境監(jiān)測(cè)系統(tǒng)為環(huán)境監(jiān)測(cè)提供了數(shù)據(jù)實(shí)時(shí)傳輸和自動(dòng)化控制的綜合解決方案。W6300-EVB-PICO2可靠的以太網(wǎng)連接和Adafruit IO強(qiáng)大的云平臺(tái)的結(jié)合創(chuàng)造了一個(gè)強(qiáng)大的物聯(lián)網(wǎng)應(yīng)用程序,既具有教育意義又實(shí)用。
該項(xiàng)目展示了重要的物聯(lián)網(wǎng)概念,包括傳感器集成、實(shí)時(shí)數(shù)據(jù)處理、MQTT通信和自動(dòng)控制系統(tǒng),使其成為物聯(lián)網(wǎng)愛(ài)好者和開(kāi)發(fā)人員的絕佳學(xué)習(xí)平臺(tái)。
本文編譯自hackster.io





