2018年4月11日

NodeMCU

透過Arduino IDE直接控制NodeMCU上的LED
選擇偏好設定
將下列網址複製到額外的板子管理員網址
http://arduino.esp8266.com/stable/package_esp8266com_index.json
IDE 選 工具 / 開啟板子管理員
安裝 esp8266 by ESP8266 Community 套件
(搜尋 esp8266)
選擇 NodeMCU 1.0 (ESP-12E Module) 板子
選擇ESP8266內建的範例 Blink
若沒問題的話 上傳後可以看到 Led 一閃一閃


連進 NodeMcu 網頁 控制LED
將下列程式碼中的your_wifi_ap_ssid與your_wifi_ap_password
修改為要使用的Wifi Ap SSID 與 password

https://github.com/gavim6249/NodeMcu_WebLed

上傳程式到NodeMCU後,請開啟Arduino IDE 中的序列埠監控視窗
可看到NodeMCU的IP位址,此例為 192.168.1.110

用瀏覽器開啟此網址,即可透過網頁控制NodeMCU上的LED燈



在戶外或外面控制家中的NodeMcu
剛剛的範例只能在家裡連線
如果要在戶外控制家中的NodeMcu
就要使用雲的服務
目前有免費的雲叫做ThingSpeak
先去註冊後可以取得

1 channelID
2 readAPIKey
3 writeAPIKey

有了這3個號碼就可以把剛剛的 程式碼改寫一下
改個幾行就可以了


程式碼如下
https://github.com/gavim6249/read_ThingSpeak
以這程式為例子
我去讀取 ThingSpeak 雲的資料
如果讀回0燈熄滅,讀回1燈亮起

至於要如何更改 ThingSpeak 雲的資料很簡單

下面就是開啟, 直接由流覽器 url 丟下去, PC 手機 都可以
http://api.thingspeak.com/update?key=你的readAPIKey=1
下面就是關閉
http://api.thingspeak.com/update?key=你的readAPIKey=0










自製 Arduino Nano 溫度計 OLED 0.96吋螢幕

實體影片



心血來潮想用Arduino做溫度計
使用的材料 material cost
   
1 Arduino Nano $NT 80元
2 OLED 0.96吋螢幕(128x64) $NT 130元
3 DHT11 $NT 30元

溫度計DHT11的接法是                 
1 DHT11的VCC 接 Arduino的 (17)+3V3
2 DHT11的GND 接 Arduino的 (4)GND
3 DHT11的Data 接 Arduino的 (5)D2



我買的是後面有板子一共只外接出3 Pin的版本(省事不用接4.7K電阻)

OLED 0.96吋螢幕(128x64) 的接法是                       
1 OLED的VCC 接 Arduino的 (PIN27)+5V
2 OLED的GND 接 Arduino的 (PIN29)GND
3 OLED_SCL 接 Arduino (PIN24)A5
4 OLED_SDA 接 Arduino (PIN23)A4

程式開發使用 Arduino IDE versuin 1.8.1
library 使用兩個
1 U8g2lib
2 SimpleDHT

程式 library導入的方法是
草稿碼 \ 匯入程式庫
再搜尋   U8g2lib 和 SimpleDHT 安裝 如下圖



程式碼的連結  Source Code
https://drive.google.com/open?id=1VBvoW4wFwVHWSQwAVas4WCLHkdBKCtvc

https://github.com/gavim6249/chung/blob/master/MyOled.ino


0.96吋螢幕OLED的 I2C address 是 0x078(0x3c)定義在u8x8_cad.c
如要更改 I2C address 可以用u8g2_SetI2CAddress 函式去變更.


上傳之後顯示
     
草稿碼使用了 24484 bytes (79%) 的程式儲存空間。上限為 30720 bytes。 全域變數使用了 691 bytes (33%) 的動態記憶體,剩餘 1357 bytes 給區域變數。上限為 2048 bytes 。
因為使用U8g2lib佔用比較大空間, 使用8x8 會比較小,只佔 20%多程式儲存空間


最後的成品