消息推送作為App運營日常使用的用戶促活和召回手段,是與用戶建立持續互動和連接的良好方式。[推送服務](https://developer.huawei.com/consumer/cn/hms/huawei-pushkit?ha_source=hms1)(Push Kit)是華為提供的消息推送平臺, ...
1-NodeMCU、ESP32的基礎
簡介
NodeMCU是一個開源的IoT(物聯網)平臺,包括在樂鑫的ESP8266 Wi-Fi SoC上運行的固件和基於ESP-12模塊的硬體。它是由一樂鑫在2014年創建的,他們希望為物聯網項目提供低成本和靈活的平臺。ESP32是低成本的微晶元,具有Wi-Fi和藍牙功能,由樂鑫開發,是一家中國的微控制器和集成電路製造商。它於2016年發佈,作為ESP8266的繼任者,由於其改進的性能和額外的藍牙連接,它已成為物聯網項目的流行選擇。
樂鑫司成立於2008年,由一群對為新興物聯網市場開發低成本、高性能微控制器感興趣的中國工程師組成。除了ESP8266和ESP32之外,該公司還發佈了一系列用於物聯網應用的其他微晶元和模塊。
NodeMCU ESP8266和ESP32哪個更好?
ESP8266和ESP32都是低成本的微晶元,具有Wi-Fi和微控制器功能,使它們非常適合於物聯網(IoT)應用。兩種晶元都有自己的優勢,根據你的需要,可能更適合某些項目。
下麵是ESP8266和ESP32之間的一些關鍵區別:
- 性能: ESP32比ESP8266擁有更強大的處理器和更多的記憶體,使其更適合於需要更多處理能力和記憶體的應用。
- 連接性: ESP32除了支持Wi-Fi外,還支持藍牙,這使得它在需要這兩種無線技術的應用中更具通用性。
- 功耗: ESP32的功耗比ESP8266低,使其更適合電池供電的應用。
- 價格: ESP8266通常比ESP32便宜,使其成為項目中更適合預算的選擇。
總的來說,ESP32通常被認為比ESP8266更強大,功能更全面,但它也更昂貴。如果你需要具有更多處理能力和記憶體的晶元,或者你需要藍牙連接,ESP32可能是更好的選擇。如果你的預算有限,而且不需要那麼多的處理能力或藍牙連接,ESP8266可能是更合適的選擇。
參考資料
- 軟體測試精品書籍文檔下載持續更新 https://github.com/china-testing/python-testing-examples 請點贊,謝謝!
- 本文涉及的python測試開發庫 謝謝點贊! https://github.com/china-testing/python_cn_resouce
- python精品書籍下載 https://github.com/china-testing/python_cn_resouce/blob/main/python_good_books.md
NodeMCU和ESP32的實時應用
在物聯網(IoT)領域,NodeMCU和ESP32有許多實時應用。下麵是幾個例子:
- 智能家居自動化: NodeMCU和ESP32可用於建立智能家居自動化系統,如智能恆溫器、智能插頭和智能照明。這些系統可以使用智能手機應用程式進行遠程式控制制,它們可以被編程以響應來自感測器和其他設備的實時數據。
- 工業自動化: NodeMCU和ESP32可用於建立工業自動化系統,如自動化生產線控制器和感測器網路。這些系統可用於實時監測和控制工業流程,提高效率和降低成本。
- 環境監測: NodeMCU和ESP32可用於建立環境監測系統,如空氣質量感測器和氣象站。這些系統可用於監測和報告實時數據,如溫度、濕度和空氣質量。
- 可穿戴技術: NodeMCU和ESP32可用於建立可穿戴技術,如健身追蹤器和智能手錶。這些設備可用於監測和報告實時數據,如心率、所走的步驟和睡眠模式。
- 遠程式控制制: NodeMCU和ESP32可用於建立遠程式控制制系統,如遙控車輛和無人機。這些系統可以使用智能手機應用程式或其他遠程式控制制設備進行實時遠程式控制制。
總的來說,NodeMCU和ESP32非常適合物聯網領域的實時應用,因為它們成本低,可用性廣,而且易於使用。它們可以用來建立廣泛的連接設備和系統,可以實時監測和控制各種過程。
開始使用ESP8266和ESP32?
下麵是一些開始使用NodeMCU和ESP32的簡短步驟:
- 安裝Arduino IDE: NodeMCU和ESP32都可以使用Arduino集成開發環境(IDE)進行編程。你可以從Arduino網站下載最新版本的Arduino IDE ( https://www.arduino.cc/en/Main/Software )。
- 將NodeMCU或ESP32板添加到Arduino IDE中:為了在Arduino IDE中使用NodeMCU或ESP32,你需要將該板添加到可用板的列表中。要做到這一點,請遵循以下步驟:
- 打開Arduino IDE,進入文件>首選項。
- 在 "額外的板子管理器URLs"領域,輸入以下URL:http://arduino.esp8266.com/stable/package_esp8266com_index.json(用於NodeMCU)或https://dl.espressif.com/dl/package_esp32_index.json(用於ESP32)。
- 進入工具 > 板卡 > 板卡管理器。
- 搜索 "esp8266"(用於NodeMCU)或 "esp32"(用於ESP32)並安裝ESP8266社區(用於NodeMCU)或Espressif Systems(用於ESP32)的相應軟體包。
- 將NodeMCU或ESP32板連接到您的電腦上:用一根微型USB電纜將NodeMCU或ESP32板連接到您的電腦上。
- 選擇NodeMCU或ESP32板和埠: 在Arduino IDE中,進入工具>板,選擇 "NodeMCU 1.0(ESP-12E模塊)"(對於NodeMCU)或 "ESP32 Dev Module"(對於ESP32)。然後,轉到工具>埠,選擇你的板子所連接的埠。
- 編-寫並上傳你的第一個草圖: 你現在可以編寫並上傳你的第一草圖(程式)到NodeMCU或ESP32板。草圖是一組指令,告訴板子要做什麼。要創建新的草圖,進入文件>新建。然後,在出現的視窗中編寫你的代碼。當你準備把草圖上傳到電路板上時,點擊上傳按鈕(朝右的箭頭圖標)。
- 測試你的NodeMCU或ESP32板: 你可以通過編寫簡單的草圖來測試你的NodeMCU或ESP32板,使LED打開和關閉。要做到這一點,你需要將LED連接到板子上。按照下麵的步驟進行:
使用麵包板和跳線將LED的正極(較長的那條)連接到NodeMCU或ESP32板的數字引腳D1。
將LED的負極(較短的那條腿)連接到電路板上的GND引腳。
編寫以下草圖,並將其上傳到電路板上:
void setup() {
// Set pin D1 as an output
pinMode(D1, OUTPUT);
}
void loop() {
// Turn the LED on
digitalWrite(D1, HIGH);
// Wait for 1 second
delay(1000);
// Turn the LED off
digitalWrite(D1, LOW);
// Wait for 1 second
delay(1000);
}
如果一切設置正確,LED應該每秒鐘打開和關閉。
要開始使用ESP8266或ESP32,你將需要以下組件:
- ESP8266或ESP32板。
- USB-micro-USB電纜: 你將需要這條電纜來連接你的ESP8266或ESP32板和你的電腦。
- 麵包板: 麵包板是一種原型設計工具,可以讓你輕鬆地將元件連接在一起。你將需要一塊麵包板來連接ESP8266或ESP32板和其他元件,如感測器和執行器。
- 跳線: 跳線是短而靈活的電線,用於連接麵包板上的元件。你將需要跳線來連接ESP8266或ESP32板和其他組件。
- 感測器和執行器等組件: 根據您的項目,您可能還需要額外的組件,如感測器(如溫度感測器、濕度感測器等)和執行器(如LED、電機等)。這些組件可以使用麵包板和跳線連接到ESP8266或ESP32板上。
除了這些組件外,你還需要一臺安裝了Arduino IDE的電腦( https://www.arduino.cc/en/Main/Software )。這是你用來編寫和上傳代碼到ESP8266或ESP32板的軟體。
ESP32和ESP8266的引腳配置
ESP32和NodeMCU都有類似的引腳配置,可以使用相同的工具進行編程。ESP32和NodeMCU上的引腳都標有字母和數字,如 "D0 "或 "A5"。字母指的是引腳的功能,而數字指的是微控制器上的具體引腳。
下麵是ESP32和NodeMCU的主要引腳類型的總結:
- 數字引腳: 這些引腳可用於讀取或寫入數字值(高或低)。它們可以用來控制LED,讀取開關輸入,或使用I2C或SPI等數字協議與其他設備通信。
- 模擬引腳: 這些引腳可用於讀取模擬值,如電壓或電阻。它們可以用來讀取感測器值,控制LED的亮度,或產生PWM信號。
- 電源引腳: 這些引腳可用於向電路板或其他設備供電。ESP32和NodeMCU有一個3.3V的電源引腳,可以用來給電路板和其他3.3V設備供電,還有一個5V的電源引腳,可以用來給電路板和其他5V設備供電。
- 接地引腳: 這些引腳用於為電路板和其他設備建立一個共同的接地參考。
- 串列引腳: 這些引腳可以用來與其他使用UART、I2C和SPI等串列協議的設備通信。
你可以在ESP32和NodeMCU各自的數據手冊中找到更多關於其引腳的詳細信息,或者參考製造商提供的文件。
受歡迎原因
具體來說,因為有以下特點:
- 低成本: ESP32只需6美元就可以買到,這使得一般人都能負擔得起。
- 低功耗: 與其他微控制器相比,ESP32的耗電量非常小,而且它支持低功耗模式狀態,如深度睡眠,以節省電力。
- Wi-Fi功能: 對於物聯網和家庭自動化項目來說,ESP32是必不可少的,它可以快速而方便地加入現有的Wi-Fi網路來訪問互聯網(站模式),或者它可以建立自己的Wi-Fi無線網路(接入點模式),讓其他設備連接到它。
- 藍牙: ESP32可與經典藍牙和藍牙低能耗(BLE)一起工作,這使它對許多物聯網應用非常有用。
- 雙核: 大多數ESP32是雙核的,這意味著它們有兩個Xtensa 32位LX6微處理器,分別命名為核0和核1。
- 豐富的外設輸入/輸出介面--ESP32支持廣泛的輸入(從外部世界讀取數據)和輸出(向外部世界發送命令/信號)外設,如電容式觸摸、ADC、DAC、UART、SPI、I2C、PWM等。
- 與Arduino "編程語言 "相容: 那些已經知道如何對Arduino板進行編程的人,會很高興聽到ESP32可以用同樣的方式進行編程。
- 與MicroPython相容: MicroPython固件是Python 3的重新實現,專門設計用於微控制器和其他嵌入式系統,可以用來為ESP32編寫程式。
ESP32規格
對於那些喜歡更多技術和細節的人,可以考慮以下方法ESP32的詳細規格(來源:http://esp32.net/)
無線連接 WiFi:
150.0 Mbps的數據速率,使用HT40
- 藍牙: BLE(藍牙低能量)和藍牙經典
- 處理器: Tensilica Xtensa雙核32位LX6微處理器,運行頻率為160或240 MHz
存儲器:
- ROM: 448 KB (用於啟動和核心功能)
- SRAM: 520 KB (用於數據和指令)
- RTC fas SRAM:8KB(用於數據存儲和RTC啟動時的主CPU從深度睡眠模式)。
- RTC慢速SRAM:8KB(用於在深度睡眠模式下訪問協處理器)。
- eFuse:1K比特(其中256比特用於系統(MAC地址和晶元配置),其餘768比特保留給客戶應用,包括Flash-加密和晶元-ID)
嵌入式快閃記憶體:
在ESP32-D2WD和ESP32-PICO-D4上通過IO16、IO17、SD_CMD、SD_CLK、SD_DATA_0和SD_DATA_1內部連接快閃記憶體。
- 0 MiB (ESP32-D0WDQ6, ESP32-D0WD, 和 ESP32-S0WD晶元)
- 2 MiB (ESP32-D2WD晶元)
- 4 MiB (ESP32-PICO-D4 SiP模塊)
低功耗
確保你仍然可以使用ADC轉換,例如,當你處於深度睡眠狀態。
輸入/輸出:
- 支持DMA並具有電容式觸摸的外設介面
- ADC(模數轉換器),DAC(數模轉換器)。
- I²C (互連電路)
- UART(通用非同步接收器/發射器)
- SPI(串列外設介面),I²S(集成片間聲)。
- RMII(精簡媒體獨立介面),PWM(脈衝寬度調製)。
- 安全性:用於加密協議的硬體加速器,如AES和SSL/TLS
ESP32開發板
ESP32一詞指的是ESP32晶元的整體。然而,術語 "ESP32 "也可以指ESP32開發板。使用ESP32裸晶元是很困難和不方便的,特別是在學習、測試和製作原型時。大多數時候,一個ESP32開發板就足夠了。
這些開發板有你開始工作所需的一切,包括給晶元供電和編程的電路、與電腦的連接、連接外設的引腳、電源和控制LED、Wi-Fi天線等等。有些,如ESP32-CAM,甚至包括板上的補充硬體,如內置攝像頭或各種感測器和模塊。
如何選擇ESP32開發板?
當你開始在網上尋找ESP32板時,你會看到來自不同供應商的大量板子。雖然它們的功能都差不多,但有些板子可能比其他的更適合某些任務。在選購ESP32開發板時,有各種因素需要考慮:
-
USB到UART介面和穩壓電路。這兩個功能在大多數全功能的開發板上都有。這是必要的,以便簡單地將ESP32連接到你的電腦,以便上傳代碼和應用電源。
-
BOOT和RESET/EN按鈕可以使板子處於閃爍模式或重置(重啟)板子。並非所有的板子都有BOOT按鈕。通常情況下,這些板子會自己進入閃爍模式。
-
引腳配置和引腳數量。 你需要獲得板子的引腳配置,以便以適合你的應用的方式使用ESP32(比如一張顯示哪個引腳對應哪個GPIO及其功能的地圖)。因此,請確保你能夠獲得你將要購買的電路板的引腳分佈。否則,你有可能誤用ESP32,給自己帶來麻煩。
-
天線連接器。大多數板子都包括一個內置的Wi-Fi天線。有些板子包括一個天線連接器,如果需要的話,可以連接一個外部天線。增加一個額外的天線可以擴大你的Wi-Fi範圍。
-
電池介面。如果你想使用電池為你的ESP32供電,有一些開發板帶有鋰電池的插頭。這可能更方便。你也可以用電池通過電源引腳為 "普通 "ESP32供電。
額外的硬體功能。有一些ESP32開發板具有額外的硬體功能。有些可能包括OLED顯示屏,LoRa模塊,SIM800模塊(用於GSM和GPRS),電池座,攝像頭,或其他功能。
什麼是最適合初學者的ESP32開發板?
對於初學者來說,我們推薦一個ESP32板,它有大量可訪問的GPIO,沒有額外的硬體功能。同樣關鍵的是,它要有標準的電壓輸入,以及一個用於供電和代碼上傳的USB輸入。我們在大多數ESP32項目中使用ESP32 DEVKIT DOIT板,它是我們推薦給初學者的。這個板子有三種不同的配置,每種配置都有不同數量的可訪問引腳(30、36和38)--所有板子的功能都差不多。其他具有前面所述功能的類似板子,如Adafruit ESP32 Feather、Sparkfun ESP32 Thing、NodeMCU-32S、Wemos LoLin32等,也可能是一個不錯的選擇。
它有微型USB介面,可以讓你把板子連接到電腦上,這樣你就可以上傳代碼或給它供電。它使用CP2102晶元(USB轉UART),通過COM埠的串列介面與你的電腦對話。CH340是另一個著名的晶元。找出你的板子有什麼樣的USB-to-UART晶元轉換器,因為你需要為你的電腦安裝正確的驅動程式,以便能夠與板子對話(本指南後面會有更多相關信息)。這個板子還有一個RESET(或EN)按鈕,用來關閉和重新開啟板子,還有一個BOOT按鈕,用來將板子置於閃動模式(可用於接收代碼)。請記住,並不是所有的板子都有一個BOOT按鈕。
它還內置了一個藍色的LED,從內部接線到GPIO 2。這個LED對調試很有幫助,因為它可以提供某種可以看到的物理輸出。板子上還有紅色的LED,當你給它供電時,它會亮起來。
ESP32的GPIO引腳分佈
ESP32晶元有48個引腳,都做不同的事情。並非所有的ESP32開發板都有所有的引腳暴露,有些引腳不應該被使用。大多數時候,ESP32 DEVKIT V1 DOIT板有36個GPIO,這些GPIO是暴露的,可以用來連接外設。
電源引腳
在大多數情況下,電源引腳3V3、GND和VIN已經安裝在電路板上。如果你不通過USB埠給電路板供電,你可以使用這些引腳給電路板供電。如果你通過USB埠給板子供電,你可以用這些引腳給其他設備供電。
通用輸入輸出引腳(GPIOS)
大多數的GPIO都被賦予了一個編號,因此你應該總是用這個編號來指代它們。你可以通過在代碼中設置這些信息來選擇哪些ESP32引腳用於UART、I2C或SPI。ESP32晶元的多路復用功能使之成為可能,它可以將許多功能分配給一個引腳。
如果你沒有在代碼中指定這些引腳,那麼這些引腳將被預設設置為下圖所示(引腳的位置可能會根據製造商的不同而改變)。此外,一些引腳具有特殊的特性,決定了它們是否適合於一個特定的項目。根據你的開發板的型號,GPIO的位置可能有所不同。然而,無論你使用的是哪種開發板,每個單一的GPIO通常以相同的方式工作(有一些例外)。例如,GPIO 5通常總是VSPI CS0引腳,GPIO 23通常是用於SPI通信的VSPI MOSI引腳,等等,與板子無關。
釘釘或微信號: pythontesting 微信公眾號:pythontesting