一文速通ESP8266NodeMCU(基于ArduinoIDE)——萬字爆肝含示例代碼
ESP8266,點擊此處黃色字體領取文章中的配套資料
ESP8266是一款由樂鑫(Espressif)公司開發的芯片。
一般來說,搭載了ESP8266芯片,長得像下面的這樣的開發板就叫ESP8266NodeMCU。
可能會有些許不同,但是只要芯片上寫著ESP8266的就沒問題。因為隨便來個人搞個ESP8266的芯片都可以搞個自己的ESP8266NodeMCU。
ESP8266內部集成了WiFi,所以可以作為WiFi模塊(我干過,用STM32去采集數據,然后通過串口通信傳給ESP8266,再由ESP8266把數據上傳到服務器),也可以作為獨立的微控制器。
接下來我們就開始用ArduinoIDE來編寫程序速通一遍ESP8266NodeMCU。(需要對單片機有點基礎,否則一些名詞會聽的稀里糊涂)
ArduinoIED環境配置
要使用ArduinoIED編寫ESP8266NodeMCU的程序,我們需要有ESP8266開發板的資源包,這個我們可以去電燈科技的官網里找離線安裝包。
包括ESP32的資源也有。
我們點擊下載之后會跳轉到Arduino中文網,跟著步驟下載即可。得到一個exe文件,直接執行就好了。
然后在ArduinoIDE中按照下面選擇即可(不是我不截圖,一用快捷鍵截圖這些選項就不見了,所以只能拍照了)
GPIO
要學習一款芯片,我們先成為電燈大師再說。
我們能用的ESP8266NodeMCU的GPIO口其實挺少的。
GPIO口看著不少,其實右邊那一排的GPIO口我們是用不了的(不作為普通的GPIO口使用,其他特殊用途可以),因為它們是用來控制內部存儲單元的。就記著A0口在的那一排的其他GPIO用不了。
然后左邊一排的GPIO中,GPIO1和GPIO3被用來串口通信,一般也不用作其他用途,所以能用的GPIO口其實少的可憐。
那我們就先點個燈吧。
閃爍LED
配置GPIO口模式
pinMode(uint8_t pin, uint8_t mode);
第一個參數可以直接填入ESP8266NodeMCU開發板上的標注,例如“D0”,也可以填入數字,例如D0實際上是GPIO16,因此填入數字16也是可以的。
第二關參數配置模式,簡單來說我們就使用三種,OUTPUT,INPUT,INPUT_PULLUP,分別是輸出,輸入,上拉輸入,其實可配置的模式不止這三種,但是這三種是最常用的。
數字輸出
digitalWrite(uint8_t pin, uint8_t val);
第一個參數就是指定GPIO口,跟上面一樣。
第二個參數直接寫數字即可,1就是高電平,0就是低電平。
點亮LED
void setup() { // put your setup code here, to run once: pinMode(D0,OUTPUT); //等價于pinMode(16,OUTPUT); digitalWrite(D0, 1); //等價于digitalWrite(16, 1) } void loop() { // put your main code here, to run repeatedly: }
以防有小伙伴不清楚這種格式的代碼編寫(因為51和32都是寫main函數的),這邊稍微解釋一下。我們寫在setup函數里的是配置東西的代碼,只會執行一次,而寫在loop函數里的是會一直循環執行的東西,可以理解為我們51,32代碼里的while(1)。
這樣我們先配置了GPIO口,再輸出高電平,然后再接上LED就可以實現點亮LED的操作了。
完整代碼可進群免費領取!!!
嵌入式物聯網的學習之路非常漫長,不少人因為學習路線不對或者學習內容不夠專業而錯失高薪offer。不過別擔心,我為大家整理了一份150多G的學習資源,基本上涵蓋了嵌入式物聯網學習的所有內容。點擊下方鏈接,0元領取學習資源,讓你的學習之路更加順暢!記得點贊、關注、收藏、轉發哦!
- 贊