2015年7月10日 星期五

NodeMCU 物聯網開發平台

之前在露天找 Arduino 模組時, 有注意到 NodeMCU 這塊主控板, 它是以 ESP8266(ESP12) 這顆 WiFi SoC 晶片為基礎, 集成 WiFi, GPIO, PWM, ADC, I2C, 1-Wire 等功能的主控板, 採用簡潔的 Lua 語言, Lua 標榜可以很容易內嵌到其它語言中, 內核非常小, 執行效率高, 非常適合物聯網應用開發, 因為它內建了 WiFi 功能!


上圖中, 右半部突起來的小 PCB 就是 ESP8266 模組, 左半部是 USB 晶片與插槽, RESET 按鈕等元件, 亦即這個板子組合了 USB 晶片 (CP2102) 與 ESP8266, 並燒錄了 NodeMCU 韌體, 接上電腦 USB 即可開始用 Lua 寫程式了. 當然也可以單買 ESP8266 模組加上 TTL 轉 USB 板連接電腦, 自行燒錄 NodeMCU韌體, 詳參高手 Proteus 的大作與所販賣之套件組 :

ESP8266 ( ESP-01 ) 無線模組燒錄 NodeMCU 韌體 ( Lua 語法支援 )
# 萬物皆聯網-ESP8266 IoT(Internet of Things)入門學習套件
# NodeMCU(DevKit v1.0) Lua WiFi 物聯網開發板 ( 4M Bytes flash )

一般 WiFi 主要的缺點是耗電大, 而 NodeMCU 具有電源管理, 進入睡眠時功耗很低, 據下列資料顯示, 峰值時約 0.6W, 深度睡眠狀態僅消耗 79 uA, 2600mAH 的鋰電池可用三年 :

# http://bbs.minikm.com/forum.php?mod=viewthread&tid=793
# http://tim.jagenberg.info/2015/01/18/low-power-esp8266/

NodeMCU 的官網, 檔案管理網站, 以及 Lua 相關連結如下 :

NodeMCU 物聯網開發平台
# NodeMCU GitHub
# Wiki : NodeMCU
# Wiki : Lua
# Lua Reference
# Programming in Lua
# Lua programming gem
# 下載 Lua
# Scripting系統概論與Lua簡介

此板體積小功能強大, 而且有把 ESP8266 的全部 10 個 GPIO 接腳接出 (一般 ESP8266 模組只接出 GPIO0 與 GPIO1), 因此可以連接感測器, 本身就能取代 Arduino 作為物聯網的主控元件. 最重要的是 ~~~ 價格便宜! 露天可找到約 $260 的板子 (第一版) :

# IOT 開發板 ESP8266 NodeMCU ESP-12 學習套件 $250
# IOT ESP-12 ESP8266串口 工業級 穩定版 測試板全套 !全IO引出 $200
# 新款 NodeMcu Lua WIFI 物聯網 開發板 ESP8266串口wifi模塊 
# NodeMcu Lua 物聯網 開發板 基於ESP8266 ★264121-039 ★ $260
App HTML5 開發板 WF8266R ESP8266 物聯網 IoT 智慧家電 WIFI Arduino $250
# NodeMcu Lua WIFI 物聯網 開發板 基於ESP8266 $280
# ESP-12 ESP8266串口 工業級 穩定版 測試板全套 全IO腳引出 $195

不過目前最新的 NodeMCU 已經是第二版, 價格稍貴 :

NodeMCU v2 - 基於 Lua 之 ESP8266 WiFi 開發板
NodeMCU v2 Lua腳本 第二代 超簡單的物聯網開發平臺 物聯網開發板 ESP8266 wifi $340
MCUapps™第二代 NodeMCU v2(DevKit v1.0)Lua ESP8266 WiFi 開發送 USB線 $355

淘寶網也有很多, 最便宜 RMB $33 就可買到, 折合台幣約 160 元, 似乎較便宜, 但加上郵資 (一般約 RMB $24), 其實跟露天價格也差不多.

淘寶網 NodeMCU

Youtube 上有許多 ESP8266/NodeMCU 的實作與教學影片 :

# Nodemcu Esp8266 development board
# ESP8266 NodeMCU RC car control over WiFi using RoboRemo app
# Cheap and Easy WiFi (IoT) Tutorial Part 1 - ESP8266 Setup/Intro
# Cheap and Easy WiFi (IoT) Tutorial Part 2 - ESP8266 Arduino Code
# Wireless Module on Breadboard - NRF24L01+ and ESP8266
# How to work with the NRF24L01+ Best Wireless Communication for Arduino
# Overview for WebEditor for ESP8266 with NodeMCU
# $5 Arduino WiFi Module!? ESP8266 mini Tutorial/Review
# $3 Wifi module part 1: FTDI Test
# $3 Wifi module part 2: ThingSpeak Demo
# $3 Wifi module part 3: NodeMCU LUA Interpreter
# $3 Wifi module part 4: WebServers
# $3 Wifi module part 5: Socket.io
# $3 Wifi module part 6: Unlimited I/O pins?!
# $3 Wifi module part 7: WiFi I/O
# $3 Wifi module part 8A: WiFi I/O Schematic Diagram
# $3 Wifi module part 8B: WiFi I/O NodeMCU LUA Code
# $3 Wifi module part 9: X-10 Hacking
# $3 Wifi module part 10: A World Record?!
# The ESP-8266 module ported to Arduino - An Introduction
# ESP8266 Arduino IDE HowTo
# ESP8266 - Getting Started & Connected.
# ESP8266 Part1 WiFi Basics, AT Commands, Wiring & 'TRAPS'
# ESP8266 wifi Part2 - Getting & Sending data via Internet
# Lua on the ESP8266 - Part 1
# Lua on the ESP8266 - Part 2 "The Burglar Alarm"
# First Impression on the ESP8266 Serial-to-WiFi Module
# ESP8266 Hack #1: Web Enabled LED - WiFi Internet-of-Things IoT
ESP8266 Hack #2: Web Enabled LED - WiFi Internet-of-Things IoT
ESP8266 Hack #3: Web Enabled LED - WiFi Internet-of-Things IoT
ESP8266 Hack #4: Web Enabled LED - WiFi Internet-of-Things IoT
【技術教學】打造Wifi遙控車(之一):使用 ESP8266進行 Wifi無線通訊
【技術教學】打造Wifi遙控車(之二):整合 ESP8266 與 Arduino
【作品】Wifi 遙控車!
# ESP8266 How To Flash NodeMcu Firmware
# ESP8266 規格 (Nurdspace)
# ESP8266 的 AT 指令集
ESP8266 Lua Loader
# 如何燒錄 ESP8266 無線模組的韌體

至於 ESP8266 的 WiFi 傳輸距離, 有人在馬里蘭州用 TP-LINK 無線路由器測試, 只用 ESP8266 板上天線時可達 366 公尺遠; 加裝天線後可達 479 公尺; 若基地台使用碟形天線發射, 則 ESP8266 裸板可達 3.71 公里, 接天線則高達 4.28 公里, 真是太驚人了! 參見 :

# ESP8266 Wifi Range/Distance Tests (Wi07C)