01 DIFI板的基本功能
(2018/09/04)
此部份修改之前所做的測試(13-16DIFI板的基本功能測試),之前採用MotoBlockly來寫程式,但在題目九之後就發生錯誤了!如今Motoduino針對ESP8266推出了iotBlockly,所以今天我們就利用iotBlockly來寫程式,並測試DIFI與iotBlockly是否能成功結合!
題目一:點亮Difi ESP8266旁的LED燈(integrated LED)
題目二:點亮Difi上的三色LED燈
題目三:讀取Difi上光敏電阻的值,並顯示在序列埠監控視窗
題目四:讀取Difi上按鍵的值,並顯示在序列埠監控視窗
題目五:讀取Difi上紅外線開關的值,並顯示在序列埠監控視窗
題目六:當Difi上按鍵被按下時,啟動繼電器
題目七:測試 伺服馬達
題目八:測試 超音波測距模組
題目九:測試 蜂鳴器 (音不準有雜音)
題目十:測試 DHT11溫濕度感測器
題目十一:測試 紅外線遙控器(編譯錯誤,告知motoduino,請他們再做修改,註:此部份已於9/18修改完成)
題目十二:測試 4位數七段顯示器
題目十三:測試 I2C 1602 LCD顯示器
題目十四:測試 空氣品質感測器(PMS5003T) (溫濕度顯示有問題)
題目十五:測試 LED點矩陣 (目前僅提供16X8 LED的積木,尚無8X8 LED的積木,但Motoblockly已有8X8 LED點矩陣(MAX7219)的積木可用,這部份再請Motoduino提供出來!註:此部份已於9/18修改完成))
一、認識 Motoduino的iotBlockly
網址:https://www.motoduino.com/wp-content/themes/storefront/moto_iot_blockly_v17/demos/code/index.html
如何使用iotBlockly
下載自動燒錄程式(motoblockly_broker_setup.exe)
安裝完成後會在桌面出現motoblockly_broker的捷徑,並在arduino/libraries下產生Motoduino_v11及Motoesp_v1的資料夾
Arduino的安裝說明: (ARDUINO 1.8.7下載)
打開ARDUINO軟體,檔案>>偏好設定,在下方額外的開發板管理員網址:輸入http://arduino.esp8266.com/stable/package_esp8266com_index.json
接著到工具>>開發板>>開發板管理員
拉到最下一欄會多一項ESP8266,需在欄內點一下才會出現安裝訊息
安裝好後會顯示INSTALLED
接下來到工具>>開發板>>選 Generic ESP8266 Module
但我們這次採用DIFI板子,但選擇 NodeMCU 1.0
二、認識DIFI腳位
外觀
(Difi腳位 ) 13 12 14 16 ADC 5 4 0 15 2 Rx(3) Tx(1)
(NodeMCU 腳位) 7 6 5 0 A0 1 2 3 8 4 9 10
三、利用簡單程式(題目一)來測試是否可成功自動燒錄
題目一:點亮Difi ESP8266旁的LED燈(integrated LED)
程式如下:
直接燒錄
自動燒錄失敗 (很顯然目前自動燒錄程式只針對ESP-01的板子,並不適用NodeMCU及DIFI的板子!!)
直接複製程式碼到Arduino IDE環境下來執行(板子採用NodeMCU 1.0則可成功燒錄)
接下來,如果要採用DIFI板來測試,則要請Motoduino修改程式來支援NodeMCU或自己直接利用Arduino的環境來燒錄!
integrated LED在HIGH的時侯是暗燈、在LOW的時侯是亮燈
題目二:點亮Difi上的三色LED燈
說明:三色LED(綠、紅、藍)的使用腳位為13、12、14,記得跳線區的這些針腳要用jumper連接
利用拖曳的方法,完成如下作業:綠、紅、藍 循環亮燈
成果
題目三:讀取Difi上光敏電阻的值,並顯示在序列埠監控視窗
說明:光敏電阻的使用腳位為ADC(A0),記得跳線區的這個針腳要用jumper連接
利用拖曳的方法,完成如下的程式
但積木中類比輸入腳位只有腳位17,所以先用此腳位,程式碼轉到IDE後再改為腳位0
小朋友,如果要摸擬天黑開燈的機制,你會嗎?試著做遮光時(天黑時)會點亮三色LED燈的紅燈
題目四:讀取Difi上按鍵的值,並顯示在序列埠監控視窗
說明:按鍵的使用腳位為0,記得跳線區的這個針腳要用jumper連接
利用拖曳的方法,完成如下的程式
但積木中數位輸入腳位沒有腳位0,所以先用其他腳位,程式碼轉到IDE後再改為腳位0
發現,【右下角的按鍵】要將跳線區的針腳用jumper連接才有作用,但【右上角按鍵】沒有用jumper也有作用!
小朋友,如果要按下按鍵時,點亮三色LED燈的紅燈,你會做嗎?
題目五:讀取Difi上紅外線開關的值,並顯示在序列埠監控視窗
說明:紅外線開關的使用腳位為4,記得跳線區的這個針腳要用jumper連接
利用拖曳的方法,完成如下的程式
到IDE下燒錄
小朋友,同上一題,如果遮光時要點亮三色LED燈的紅燈,你會做嗎?
題目六:當Difi上按鍵被按下時,啟動繼電器
說明:按鍵的使用腳位為0,繼電器使用的腳位為16,記得跳線區的這些針腳要用jumper連接
利用拖曳的方法,完成如下的程式
註:發現未按下按鍵時Relay的燈(D2)亮,當按下按鍵時,Relay的燈(D2)不亮
小朋友,如果要再做天黑請開燈,但這時侯是要點亮接市電的抬燈,你會做嗎?
認識【繼電器】
COM(Common)表示共接點。
NO(Normally Open)表示常開接點(俗稱a接點)。平常處於開路,線圈通電後才與共接點COM接通。
NC(Normally Close)表示常閉接點(俗稱b接點)。平常處於閉路(與共接點COM接通),線圈通電後才成為開路(斷路)。
自製「繼電器插座」,並測試按下按鍵,啟動電扇
題目七:測試 伺服馬達
說明:伺服馬達(SG90)可自行選擇空腳位來使用(像本例是接在13)
利用拖曳的方法,完成如下的程式
這有很多應用可以做
題目八:測試 超音波測距模組
說明:超音波測距模組使用的腳位為可自行找空的腳位,這邊用Trig接13腳位、Echo接12腳位,先不理會下圖的LCD顯示器
利用拖曳的方法,完成如下的程式
題目九:測試蜂鳴器
說明:蜂鳴器使用的腳位為15,記得跳線區的這個針腳要用jumper連接
頻率表
利用拖曳的方法,完成如下的程式
測試結果:有發出聲音,但音不準有雜音,效果很不好!!有空再來調整看看!!
試試全家便利商店入店時的音樂簡譜:3 1 5(低音) 1 2 5~ 2 3 2 5(低音) 1
題目十:測試 DHT11溫濕度感測器
說明:DHT11溫濕度感測器使用的腳位為5,記得跳線區的這個針腳要用jumper連接
利用拖曳的方法,完成如下的程式
應該這個DHT11的設備有問題,導致濕度不準!!測試另一塊DIFI板子,濕度比較正常。
小朋友,可以結合溫度的測量值與上面教過的繼電器來設計,當溫度大於32度時,就啟動電扇,設計看看吧!
題目十一:測試 紅外線遙控器
說明:紅外線接收器(IR_R)及發射器(IR_E)可自行選擇空腳位來使用(像本例是分別接在15及0)
測試出問題,訊息如下:(編譯錯誤,告知motoduino,請他們再做修改,註:此部份已於9/18修改完成)
Arduino:1.8.3 (Windows 7), 開發板:"NodeMCU 1.0 (ESP-12E Module), 80 MHz, Flash, 4M (1M SPIFFS), v2 Lower Memory, Disabled, None, Only Sketch, 115200"
D:\TEMP\temp\Temp1_Air_Quality_Test_Box-master.zip\Air_Quality_Test_Box-master\Air_monitor\Air_monitor.ino:6:26: fatal error: esp_IRremote.h: No such file or directory
#include <esp_IRremote.h>
^
compilation terminated.
exit status 1
開發板 NodeMCU 1.0 (ESP-12E Module) 編譯錯誤。
利用拖曳的方法,完成如下的程式,測試成功(9/19)
題目十二:測試 4位數七段顯示器
說明:4位數七格顯示器可自行選擇空腳位來使用(像本例是CLK接在12、DATA接在13)
利用拖曳的方法,完成如下的程式
註:若輸入的數字未達四位數,則前方的數字會補上0
題目十三:測試 I2C 1602 LCD顯示器
說明: I2C 1602 LCD顯示器使用的腳位為4(NodeMCU的D2)、5,所以SDA接腳位4、SCL接腳位5!
利用拖曳的方法,完成如下的程式
題目十四:測試 空氣品質感測器(PMS5003T)
說明:由於手上沒有PMS5003T,但有PMS5003ST(PMS5003ST攀藤測PM2.5的感測器,可以偵測PM2.5、甲醛及溫濕度的值,比PMS5003T多了甲醛偵測),所以就拿PMS5003ST來測試
之前利用Arduino與NodeMCU的接法
與DIFI的接法
利用拖曳的方法,完成如下的程式
註:發現溫度、濕度的值有問題,都呈現0!另外,沒有校正也不知PM2.5的值準不準確?
題目十五:測試 LED點矩陣
說明: 目前僅提供16X8 LED的積木,尚無8X8 LED的積木,但Motoblockly已有8X8 LED點矩陣(MAX7219)的積木可用,這部份再請Motoduino提供出來!(9/5)
註:此部份已於9/18修改完成
說明: 8X8 LED點矩陣使用的腳位為 CLK接13、CS接12、DIN接14
利用拖曳的方法,完成如下的程式