使用WLAN接口將溫度和相對(duì)濕度發(fā)送到家庭網(wǎng)絡(luò)web服務(wù)器
在本文中,我想利用WLAN接口,為家庭網(wǎng)絡(luò)中的web服務(wù)器提供溫度和相對(duì)濕度。但是,我將使用物有所值的DHT20傳感器和帶有SH1106驅(qū)動(dòng)IC的1.3英寸OLED,以盡量減少重復(fù)。
但首先是樹(shù)莓派Pico W的引腳圖,以及樹(shù)莓派Pico和Pico W的區(qū)別:
雖然外形尺寸和引腳(很大程度上)保持不變,但布局上的差異很明顯。這在WLAN芯片和用于DEBUG的三個(gè)空閑引腳上最為明顯,由于WLAN天線的緣故,它們現(xiàn)在位于芯片的中間。內(nèi)置LED的連接器已經(jīng)更換;稍后會(huì)詳細(xì)介紹。2.4 GHz無(wú)線局域網(wǎng)接口采用英飛凌CYW43439芯片。藍(lán)牙尚未實(shí)現(xiàn);這需要固件更新,但近期不打算更新。
下載了擴(kuò)展名為。uf2的最新文件后,Pico被插入計(jì)算機(jī)的USB端口,并按下BOOTSEL鍵;然后顯示為USB驅(qū)動(dòng)器RPI-RP2;請(qǐng)看下圖。只需將下載的文件復(fù)制到目錄中。復(fù)制過(guò)程完成后,驅(qū)動(dòng)器消失,并且在tony下將Pico W識(shí)別為虛擬COM端口。
對(duì)于那些還沒(méi)有安裝或更新的人。
目前截至2022年10月:thonny-4.0.1.exe
在Run/Execute選項(xiàng)卡下進(jìn)行設(shè)置。
像往常一樣,我們首先在命令行(也稱為shell或REPL)中測(cè)試“hello world”。
物理計(jì)算中的“hello world”是閃爍的LED,我們的第二次嘗試:
在程序中,您可以看到上述內(nèi)置LED的差異。使用簡(jiǎn)單的Pico,這是通過(guò)引腳25控制的,引腳沒(méi)有連接到外部。使用Pico W, LED連接到無(wú)線芯片,并通過(guò)名稱“LED”進(jìn)行尋址。
在一切解決之后,我想首先重建J?rn Weise的實(shí)驗(yàn)裝置,然后使用另一個(gè)傳感器,以及另一個(gè)顯示器。
除了MicroPython模塊機(jī)和utime模塊bme280和ssd1306用于0.96英寸OLED。兩者都可以在PyPI上找到,點(diǎn)擊“附加”選項(xiàng)卡下的“管理軟件包…”并在搜索窗口中輸入術(shù)語(yǔ)。選擇時(shí)請(qǐng)注意名稱中的“micropython”字樣。
示意圖:
安裝成功,見(jiàn)圖:
現(xiàn)在我首先想把0.96英寸的顯示屏換成1.3英寸的OLED顯示屏。但是這個(gè)沒(méi)有驅(qū)動(dòng)IC SSD1306,而是SH1106;PyPI上沒(méi)有MicroPython模塊。
該模塊實(shí)際上是為ESP8266編寫的,但工作良好。因此,下載ZIP文件,將其解壓為tony下的sh1106.py,并將其安裝在Pico W的lib目錄下。i2c示例程序中Pico W的唯一偏差是實(shí)例化期間的一個(gè)附加參數(shù),i2c接口的編號(hào):i2c= i2c (0, sda=sda, scl=scl, freq=400000)
當(dāng)實(shí)例化顯示時(shí),我必須插入rotate=180:oled = sh1106。SH1106_I2C(128, 64, i2c, None, 0x3c, rotate=180)
有了這個(gè),它馬上就工作了。所以選擇DHT20,而不是昂貴的BME280。
我已經(jīng)在2022年7月的一篇博客文章中使用了DHT20。有趣的是i2c接口,這個(gè)組合溫濕度傳感器與DHT11和DHT22不同。PyPI上也沒(méi)有為此提供MicroPython模塊。所以我再次在GitHub上搜索。
再次下載ZIP、解壓縮、dht20.py,用thony運(yùn)行它,并將它保存在Pico W子目錄lib子目錄下。
下面是代碼中的主要新行:
在while循環(huán)中:
現(xiàn)在所缺少的就是把Pico W變成一個(gè)大氣數(shù)據(jù)的網(wǎng)絡(luò)服務(wù)器。在互聯(lián)網(wǎng)上進(jìn)行研究。到目前為止失蹤了。但是樹(shù)莓派基金會(huì)有兩個(gè)例子程序,已經(jīng)被其他博主復(fù)制了:一個(gè)簡(jiǎn)單的web服務(wù)器,帶有文本顯示和通過(guò)內(nèi)部網(wǎng)切換LED,可以在小冊(cè)子“用pico-w連接到互聯(lián)網(wǎng)”中找到。
總是需要登錄到家庭WLAN的部分:
在隊(duì)列中
請(qǐng)輸入家庭網(wǎng)絡(luò)的SSID和密碼。
作為我項(xiàng)目的基礎(chǔ),我使用示例程序進(jìn)行文本輸出。在這里,我基本上必須增加第二行的字體大小,以便能夠在智能手機(jī)上閱讀文本,并將測(cè)量值作為字符串插入。測(cè)量值基于HTML行每10秒更新一次。最后我以這個(gè)名字創(chuàng)建了這個(gè)程序:main.py
在Pico W上,這個(gè)程序在Pico W通電時(shí)自動(dòng)啟動(dòng)。因此,對(duì)花園棚或儲(chǔ)藏室的監(jiān)控很容易實(shí)現(xiàn)。
結(jié)論:與沒(méi)有WLAN的Pico相比,您只需花費(fèi)不到兩歐元的額外費(fèi)用,就可以獲得帶有Pico W的多功能微控制器,可以輕松地在家庭WLAN中注冊(cè),因此適合許多自己的智能家居項(xiàng)目。我自己很快就會(huì)把它用在我最喜歡的機(jī)器人汽車項(xiàng)目上。我不認(rèn)為會(huì)有什么困難;我會(huì)回來(lái)報(bào)告的。
本文編譯自hackster.io