01 NodeMCU與物聯網入門
(2021/03/26)
上課地點:國立高雄科技大學 楠梓校區(原 海科大) 寰宇樓 2104教室(一樓,需脫鞋)
上課時間:
110年04月10日(六) 13:00-18:00
110年04月11日(日) 13:00-17:00
講師:黃文玉老師 (shspswenyu@gmail.com)
高雄市新上國小電腦老師
高雄市SCRATCH推廣教師
教育部中小學教師運算思維增能研習種子教師
Facebook S4A社團管理員之一
致力Scratch、Arduino、micro:bit、Web:Bit、凱比機器人等程式教育及創客教育的推廣(分享一系列的文章)
主題:NodeMCU與物聯網入門
認識NodeMCU練習題:
題目一:點亮NodeMCU ESP8266旁的內建LED燈(integrated LED)
題目二:點亮接在NodeMCU上的三色LED燈
題目三:讀取光敏電阻的值,並顯示在序列埠監控視窗
題目四:按鍵的使用
題目五:蜂鳴器的使用
題目六:LCD顯示器的使用
題目七:溫濕度感測器的使用
題目八:超音波測距模組的使用
題目九:伺服馬達的使用
上面題目使用motoblockly來寫程式的教材:01 NodeMCU入門課程
零、 NodeMCU(硬體)及bDesigner(軟體)介紹
認識 NodeMCU
Ai-Thinker原裝產品,採用樂鑫原廠Espressif ESP8266之Wi-Fi SoC、CP2120 USB轉UART,原裝品質保證非其他山寨產品可比擬。
NodeMCU本身就是一顆包含ESP8266 Wi-Fi的微控制器,本身就可以做到控制、資料處理、運算,不要再用ESP8266 + Arduino Uno做應用了
NodeMCU官方內建的是eLua的韌體,為直譯語言,可以用ESplorer開發,也可以用Arduino IDE進行開發。常用的感測器及模組(如: 溫濕度感測、OLED螢幕、三軸感測器等…)大多能直接支援,並包含完整的網路協議,能迅速開發進行物聯網相關應用
特點:
採用內建 WiFi 通訊功能之 ESP8266
新板 ESP-12E 具備大容量 4MB Flash
基於 eLua 之開源專案、可自行編譯
交談式開發與除錯使用者自訂之應用程式
可燒錄使用者自自訂之應用 scripts
低成本、簡單、智慧、好玩
豐富的中、英文資料,輕易進入物聯網開發
第二代電路板設計特別適合進行麵包板實驗
NodeMCU Lua v2 之 USB to TTL 晶片,已改用功能更完整、穩定的 SiLab CP2102,可隨插即用
技術規格:
支持無線802.11 b/g/n 標準;
支持STA/AP/STA+AP 三種工作模式;
內置TCP/IP協議棧,支持多路TCP Client連接(5 MAX);
HSPI,UART,I2C,I2S,紅外遙控器,PWM,GPIO;
D0~D8,SD1~SD3:用作GPIO,PWM,IIC等,端口驅動能力15mA;
AD0:1路ADC;
電源輸入:4.5V~9V(10VMAX),支持USB供電,提供USB調試接口;
工作電流:持續發送:≈70mA(200mA MAX),待機:<200uA;
傳輸速率:110-460800bps;
支持UART/GPIO數據通信接口;
支持遠程固件升級(OTA);
支持Smart Link 智能聯網功能;
支持Smart Config 功能(包括Android 和iOS 設備);
工作溫度:-40℃~+125℃;
驅動形式:雙路大功率H橋驅動
尺寸:48.26mm(長)、25.4mm(寬)、3mm(高)
重量:約5g
腳位圖
認識 bDesigner
說明:bDesigner是一套由桃園市八德國小蔡佳倫老師自行研發之Scratch擴充積木軟體以及blockly程式,目前開放給中小學老師自由使用。bDesigner的scratch有別於其他的擴充積木軟體,它具有網頁控制、支援多組arduino uno和nodeMCU板子、micro:bit板子的特性,而blockly目前正朝向可以編譯出nodeMCU....
檔案下載:
軟體安裝:點擊下載檔即可安裝
主畫面:點擊桌面上的bDesigner捷徑即可進入主畫面
本文的主角為NodeMCU,本課程為介紹如何用bDesigner來撰寫NodeMCU的程式
前置作業
安裝NodeMCU的驅動程式,讓電腦認識NodeMCU
下載NodeMCU(ESP8266)的函式庫,讓Arduino IDE認識NodeMCU
偵測使用的PORT
也可從【裝置管理員】去查得
進入寫NodeMCU積木程式
前置作業完成,可以開始寫程式來控制NodeMCU了
題目一:點亮NodeMCU ESP8266旁的內建LED燈(integrated LED)
integrated LED使用的腳位為D4(GPIO2)
利用拖曳的方法,完成如下的程式
燒錄程式(上傳程式到NodeMCU)
程式上傳結束後,發現下圖的藍色LED燈會閃爍(integrated LED在高電位(1)的時侯是暗燈、在低電位(0)的時侯是亮燈
題目二:點亮接在NodeMCU上的三色LED燈
三色LED燈的三腳分別接於 D0(GPIO16)、D1(GPIO5)、D2(GPIO4) ,負極接於GND(利用4條母母杜邦線),如下圖:
程式如下:(先亮紅燈,再亮綠燈,再亮藍燈)
先不拆掉,待會做天黑請開燈
題目三:讀取光敏電阻(或電位計)的值,並顯示在序列埠監控視窗
光敏電阻的A0針腳接在A0上,VCC接在3.3V ,GND接在GND上(3條母母杜邦線),如下圖:
程式如下:
程式上傳後,監看如下:利用手去遮光敏電阻,A0的值會改變 (A0值介於1~1024間;亮時A0值較小,暗時A0值較大)
天黑請開燈,要燒錄程式時,記得把監控視窗關掉(占到連接埠了)
也可以使用在【電位計】(可變電阻器)上,中間的腳位接在A0,兩邊的腳位接在3.3V及GND上(兩腳位置可互換,旋轉電位計的值變化剛好相反),如下圖:
題目四:按鍵的使用
將按鍵模組的S針腳接在D3(GPIO0)上,+接在3.3V ,-接在GND上,如下圖:
程式如下:
監看結果,如下
按下按鍵開燈,放開時關燈
按一下開燈、按一下關燈
與其他積木比較不同的是:這邊變數的初始化積木要放在啟動之前
題目五:蜂鳴器的使用
將蜂鳴器的一針腳接在D6(GPIO12)上,另一針腳接在GND上(沒有正負分,兩線可互換位置),如下圖:
程式如下:
下面是全家便利商店入店時的音樂 (簡譜:3 1 5(低音) 1 / 2 5~ 2 / 3 2 5(低音) 1)
C5為中音的Do,後方一定要有等待時間才會發出聲音
音階--頻率對照表(單位:Hz)
題目六:LCD顯示器的使用
I2C 1602 LCD顯示器的GND接到(NodeMCU)的GND;VCC接到5V(如果接到3.3V會電力不足,顯示不清楚);SDA接到D2;SCL接到D1,如下圖:
程式如下:先要確認顯示器位址是 0x27或0x3F,此顯示器有2列、16行
燒錄時,雖然有出現如下的警告,但還是燒錄成功
題目七:溫濕度感測器的使用
接線說明:
DHT11溫濕度感應器的-接到(NodeMCU)的GND;+ 接到3.3V;S接到D5(GPIO14)
I2C 1602 LCD顯示器的GND接到(NodeMCU)的GND;VCC接到5V;SDA接到D2;SCL接到D1
程式如下:在LCD顯示器顯示溫濕度
題目八:超音波測距模組的使用,將距離顯示在LCD上
接線說明:
超音波測距模組 HC-SR04(要接5V電壓),HC-SR04P或HC-SR04+(可接3.3V電壓)
將超音波測距模組
VCC接到(NodeMCU)的5V或3.3V;GND接GND;Trig接D7(GPIO13);Echo接D8(GPIO15)
I2C 1602 LCD顯示器的GND接到(NodeMCU)的GND;VCC接到5V;SDA接到D2;SCL接到D1
HC-SR04P(可接3.3V電壓)
HC-SR04(要接5V電壓):利用麵包板當5V及GND的延長線
程式如下:在LCD顯示器顯示量測的距離
再加上一顆蜂鳴器,如果量測的距離小於10公分時,會發出聲響
題目九:伺服馬達的使用
接線說明:
伺服馬達SG90的S針腳接在D7(GPIO013)上,+接在5V ,-接在GND上 (註:伺服馬達由外部供電會比較好)