使用基于樹莓派Pico W的web服務(wù)器控制LED
Raspberry Pi Pico W是一款基于RP2040微控制器的低成本開發(fā)板。它具有內(nèi)置的2.4 GHZ WIFI功能,提供無線連接到該板的功能。該板采用英飛凌CYW43439 WIFI+ BLE芯片,增加了板載單頻段2.4 GHZ無線接口(802.11n)。因此,它使用戶能夠基于所有類型的AIoT解決方案構(gòu)建無線控制和遠(yuǎn)程監(jiān)控設(shè)備。微控制器可以使用Micropython和C/ c++編程。
在這個項目中,我們將使用互聯(lián)網(wǎng)上的網(wǎng)頁來控制連接到Pico W的led。Pico - W板和智能手機(jī)都需要連接到穩(wěn)定的互聯(lián)網(wǎng),以便順利工作而不會滯后。這種LED可以在世界任何地方使用智能手機(jī)或任何電腦進(jìn)行控制。此外,我們將了解板樹莓派及其功能,規(guī)格,并使用Arduino IDE編程。我們之前構(gòu)建了許多基于web服務(wù)器的物聯(lián)網(wǎng)項目,您可以從任何地方控制設(shè)備。
大多數(shù)情況下,我們看到Micropython是用來使用Micropython ide(如thony)對Raspberry Pi Pico W進(jìn)行編程的。但是,對于大多數(shù)人來說,用Python編程并不像用Arduino IDE用C/ c++編程那么舒服。因此,我們將學(xué)習(xí)如何在Arduino IDE中配置和編程Pico W。
樹莓派Pico W
Raspberry Pi Pico W板提供RP2040芯片所需的外部電路,如閃存、晶片、電源、去耦、USB接口等。RP2040微控制器在板的左右邊緣提供了大部分引腳作為用戶I/O引腳。然而,它的四個I/O引腳專門用于內(nèi)部功能,如控制LED,管理板載SMPS電源和傳感系統(tǒng)電壓。Pico W還具有使用英飛凌CYW43439的板載2.4GHz無線接口,通過SPI連接到RP2040。該板配備了ABRACON授權(quán)的機(jī)載天線。
樹莓派Pico W本身能夠從寬范圍的輸入電壓(1.8v至5.5v)中使用內(nèi)部降壓-升壓轉(zhuǎn)換器產(chǎn)生所需的3.3伏功率。
主要特點(diǎn):
?該板共有40針(21mm×51mm) 1mm厚的PCB與0.1“通孔引腳
?有26個電壓水平為3.3v的I/o引腳。
?23個GPIO是數(shù)字的,另外三個是ADC能力
?I/O電壓1.8 ~ 3.3 v
?3手臂SWD(串口線調(diào)試)引腳接口
?雙核cortex M0處理器,頻率高達(dá)133MHz
?片上鎖相環(huán)允許可變核心頻率
?264kB高性能SRAM
?12位500kbps模數(shù)轉(zhuǎn)換器(ADC)
?有各種I/O數(shù)字外設(shè)選項
?2個UART, 2個I2C, 2個SPI, 16個PWM通道
?1個定時器,4個鬧鐘,1個實(shí)時時鐘
?2個可編程輸入輸出(PIO)模塊,總共8個狀態(tài)機(jī)
?靈活的,用戶可編程的高速I/O
Raspberry Pi Pico W Pinout
電路板兩側(cè)共有40個引腳。引腳的主要功能解釋如下。
?GP0-GP28:這些是通用輸入輸出引腳,可以與I/O設(shè)備連接以發(fā)送和接收數(shù)據(jù)。它們可以同時用于輸入和輸出功能。
?GP26-GP28:這三個引腳也可以用于連接模擬傳感器或設(shè)備。
?GP0:內(nèi)置led燈已連接。
?GND:該引腳用于為I/O設(shè)備提供接地連接。有幾個接地引腳,以方便連接。
?RUN:該引腳啟用或禁用RP2040微控制器,這意味著啟動或停止Pico W.短引腳使其低復(fù)位RP2040。
?AGND:該引腳用于模擬設(shè)備接地。此接地連接用于ADC_VREF引腳。
?ADC_VREF: ADC參考電壓是為模擬輸入設(shè)置參考電壓的輸入引腳。
?3V3(OUT):該引腳為RP2040和I/O引腳提供3.3v,由板載SMPS產(chǎn)生。因此,它可以為外部I/O設(shè)備供電3.3v,但最大輸出電流取決于RP2040負(fù)載和VSYS引腳處的輸入電壓,建議不要超過約的電流限制。300 ma。
?3V3_EN:板載SMPS使能引腳。它通過一個100k Ω電阻被拉高。短路引腳使其低,使3.3v電源失效,導(dǎo)致RP 2040斷電。
?VSYS:為系統(tǒng)提供輸入電壓的引腳,允許范圍為1.8V ~ 5.5V,用于產(chǎn)生3.3v電壓,通過板載電源轉(zhuǎn)換器為RP2040和GPIO供電。
?VBUS:引腳完全連接到micro-USB的電源引腳1,如果USB供電,一般為5v。
Raspberry Pi Pico W所需組件
?樹莓派Pico W
?Led燈泡(5v)
?電路試驗板
樹莓派Pico W接口電路圖
現(xiàn)在讓我們從連接Led與Pico W板開始。Led正極接GP2,另一端接單板接地。單板的電源由USB接口提供。
現(xiàn)實(shí)生活中的電路如下圖所示。
用Arduino IDE編程樹莓派Pico W
讓我們看看如何使用Arduino IDE對樹莓派Pico W板進(jìn)行編程。為此,我們需要安裝支持Raspberry Pi Pico w的Raspberry Pi RP2040板包。如果已經(jīng)安裝,請離開安裝過程。
?打開Arduino IDE,進(jìn)入File > Preferences。現(xiàn)在將給定的鏈接粘貼到Additional Boards Manager url中,并按Ok保存。
?打開Arduino IDE,導(dǎo)航到Boards Manager,搜索“Pico”。您將找到帶有電路板名稱的軟件包,安裝它。
?現(xiàn)在,選擇板為Raspberry Pi Pico W,其余的保持原樣。
?最后,復(fù)制并編譯下面提供的示例代碼。
?要上傳代碼,您必須將Pico W板連接到顯示在任何COM端口的計算機(jī)。為此,同時按住Pico W上的BOOTSEL按鈕,立即使用micro-USB電纜將Board連接到計算機(jī)。釋放BOOTSEL按鈕,如果RPI-RP2驅(qū)動器通知出現(xiàn)在您的計算機(jī)上。
?文件管理器,這意味著驅(qū)動器啟動模式。因此,設(shè)備已準(zhǔn)備好接受代碼/固件。
?將編譯后的代碼上傳到Pico W板,選擇正確的端口。
?上傳代碼成功后,打開串口監(jiān)視器,將波特率設(shè)置為115200。
Arduino代碼說明
該程序在成功連接到Internet后從遠(yuǎn)程服務(wù)器讀取數(shù)據(jù)。根據(jù)接收到的數(shù)據(jù)生成輸出響應(yīng)。
首先,我們需要知道如何將Pico W連接到WiFi網(wǎng)絡(luò),使用web數(shù)據(jù),并構(gòu)建web接口。為此,我們必須將Pico W作為客戶端連接到WiFi網(wǎng)絡(luò)。我們必須包括所有必要的庫,以成功連接到網(wǎng)絡(luò)。因此,庫只包括Wifi.h。此外,我們還定義了進(jìn)一步編程所需的變量和對象。
Arduino IDE中包含的WiFi庫提供了通過WiFi網(wǎng)絡(luò)連接和通信的所有必要功能。我們需要通過我們的登錄憑據(jù),包括SSID和密碼來加入加密的網(wǎng)絡(luò)。
接下來,我們定義所需的字符常量來存儲我們想要連接的網(wǎng)絡(luò)的SSID和密碼。你必須傳遞你的網(wǎng)絡(luò)參數(shù)。
定義字符串變量來存儲來自瀏覽器的HTTP請求和板載LED的狀態(tài)。這是必要的,因為通過使用字符串變量,我們可以在網(wǎng)頁上顯示LED狀態(tài)。
定義變量來保持時間是至關(guān)重要的,因為它允許在我們的網(wǎng)頁上超時。如果沒有它,我們將永遠(yuǎn)無法斷開連接,并最終耗盡連接。
然后,我們創(chuàng)建一個名為“server”的WiFiServer對象。我們傳遞HTTP端口號。80作為參數(shù)。
在Setup中,我們啟動串行監(jiān)視器。然后我們將板載LED引腳設(shè)置為輸出和LOW,以使用命令pinmode()保持LED關(guān)閉。
然后我們使用WiFi。開始啟動網(wǎng)絡(luò)連接,我們在此命令中傳遞SSID和密碼。
然后我們將監(jiān)視WL_CONNECTED常量的連接狀態(tài)。如果while條件為真,則沒有連接,循環(huán)將繼續(xù)運(yùn)行。在等待期間,我們以半秒的延遲將周期作為進(jìn)度指示器打印到串行監(jiān)視器上。最后,成功連接后,IP地址將在串行監(jiān)視器上打印。此外,我們還使用server.begin()命令啟動我們創(chuàng)建的wiiserver對象。
在循環(huán)中,我們等待傳入的客戶端連接,并在連接建立時啟動超時。如果客戶端發(fā)送信息來控制LED,我們將分解HTTP請求以提取URL字符串中的值。根據(jù)該值,我們打開或關(guān)閉LED,并相應(yīng)地設(shè)計屏幕上的按鈕。如果需要的話,可以在HTML樣式表設(shè)置中修改按鈕形狀或顏色。
最后,您將找到完整的代碼。
樹莓派Pico W工作流程
我們將執(zhí)行的任務(wù)是使用基于web的界面來控制LED。
將顯示一個簡單的網(wǎng)頁,具有單個切換按鈕,并指示板載LED的當(dāng)前狀態(tài)。
按照上面已經(jīng)討論過的步驟上傳代碼并嘗試一下。打開串行監(jiān)視器,設(shè)置正確的波特率,等待,直到它顯示一個IP地址。
在任何連接到相同WiFi網(wǎng)絡(luò)的設(shè)備上復(fù)制IP地址并打開Google Chrome瀏覽器。在搜索欄中輸入地址,單擊“搜索”,可進(jìn)入web開關(guān)控制LED的頁面。
顯示LED的打開狀態(tài),而下圖顯示LED在關(guān)閉狀態(tài),而我們通過網(wǎng)頁進(jìn)行控制。
你現(xiàn)在可以通過反復(fù)點(diǎn)擊開關(guān)來控制LED的開/關(guān)。每次撥動開關(guān)時,LED狀態(tài)和開關(guān)顏色都會發(fā)生變化。
本文編譯自iotdesignpro