物聯網技術分享 使用esp8266

44
物物物物物物物 2016/10/06 物物 ESP8266 物物物 物物物 1

Upload: power-wu

Post on 13-Feb-2017

540 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: 物聯網技術分享 使用ESP8266

1

物聯網技術分享 2016/10/06使用 ESP8266報告人:吳宗錫

Page 2: 物聯網技術分享 使用ESP8266

2

物聯網 Internet of Things ,簡稱 IoT 。 讓所有能行使獨立功能的普通物體,實現互聯互通的網絡。 物聯網的網路通常是指無線網路,可以透過藍芽、 Bee 、 Wi-Fi 、 LoRa 等方式進行資料交換。

Page 3: 物聯網技術分享 使用ESP8266

3

物聯網 領域主要包括: 運輸和物流領域 健康醫療 智慧環境(家庭、辦公、工廠) 個人和社會

Page 4: 物聯網技術分享 使用ESP8266

4

物聯網裝置 Machine to machine (M2M) 架構。 具備微處理機、網路通訊模組的微控制器。 視需求決定是否需要作業系統。 常見的物聯網微控制器: Arduino 、 ESP8266 、 MSP430 、 Raspberry PI……

常見的作業系統: Raspberry OS 、 Windows IoT 、 Linux 、 CoOS……

Page 5: 物聯網技術分享 使用ESP8266

5

無線網路簡介 藍芽、 ZigBee 、 Wi-Fi 、 LoRa

Page 6: 物聯網技術分享 使用ESP8266

6

Bluetooth 短距離、省電、快速開發

Page 7: 物聯網技術分享 使用ESP8266

7

藍牙 在短距離間交換資料,以形成個人區域網絡( PAN )。 其使用短波特高頻( UHF )無線電波,經由 2.4 至 2.485 GHz 的 ISM 頻段來進行通信。 IEEE 曾經將藍芽技術標準化為 IEEE 802.15.1 ,但是這個標準已經不再繼續使用。

Page 8: 物聯網技術分享 使用ESP8266

8

藍牙歷史 藍牙技術最初由愛立信創製。技術始於愛立信公司的 1994 方案,它是研究在移動電話和其他配件間進行低功耗、低成本無線通信連接的方法。發明者希望為設備間的通訊創造一組統一規則(標準化協議),以解決用戶間互不兼容的移動電子設備。 1997 年前愛立信公司以此概念接觸了移動設備製造商,討論其項目合作發展,結果獲得支持。

Page 9: 物聯網技術分享 使用ESP8266

9

藍牙重要版本 5.0 版 (2016 年 6 月公布 ) 在有效距離上是 4.2LE 版的 4 倍(理論上可達 300 公尺),速度是 4.2LE 的兩倍 支持室內定位、導航功能,如果結合 Wi-Fi 可以實現精度小於 1 公尺的室內定位 針對物聯網進行了許多底層優化

4.0 ~ 4.2 版 省電 智能連接 支援多設備連接

3.0+HS 版 速度提升至 2.0 版的 8 倍速

Page 10: 物聯網技術分享 使用ESP8266

10

常見藍芽模組 HC-05 藍牙 4.0 工作電壓: 3.6 ~ 6V 有效距離約 10 公尺 傳輸方式: Serial (UART) 可分為 slave 或 master 模式

HC-06 與 HC-05 硬體皆相同 唯一的不同就是無法更改 slave 或 master 模式,出廠時就決定了,通常為 slave 模式售價約 85 至 150台幣

Page 11: 物聯網技術分享 使用ESP8266

11

ZigBee 工業界的權威

Page 12: 物聯網技術分享 使用ESP8266

12

ZigBee 是一種低速短距離傳輸的無線網路協定,底層是採用 IEEE 802.15.4 標準規範的媒體存取層與實體層。 主要特色有低速、低耗電、低成本 ??? 、支援大量網路節點、支援多種網路拓撲、低複雜度、快速、可靠、安全。 868/915MHz 和 2.4GHz 。 2.4GHz 的物理層支持空氣中 250kb/s 的速率,而 868/915MHz 的物理層支持空氣中 20kb/s 和 40kb/s 的傳輸速率。 有 ZigBee專用程式可以進行設定。

Page 13: 物聯網技術分享 使用ESP8266

13

ZigBee 網路架構

Page 14: 物聯網技術分享 使用ESP8266

14

常見 ZigBee 模組 Xbee 工作電壓: 2.8 ~ 3.4V 有效距離約 100 公尺 工作頻率: 2.4GHz 傳輸速率: 250kbps 可以用 Serial 傳輸 本身也是 MCU售價約 650 至 900元台幣

Page 15: 物聯網技術分享 使用ESP8266

15

Wi-Fi 無所不在的無線網路

Page 16: 物聯網技術分享 使用ESP8266

16

Wi-Fi 簡介 Wi-Fi 是 Wi-Fi 聯盟製造商的商標做為產品的品牌認證,建立於 IEEE 802.11標準的無線局域網技術。 「Wi-Fi」常被寫成「WiFi」或「Wifi」,但是它們並沒有被Wi-Fi 聯盟認可。 「Wi-Fi」一詞本身並沒有任何意義。 2.4GHz 或 5GHz

Page 17: 物聯網技術分享 使用ESP8266

17

Wi-Fi世代 Wi-Fi 可分為五代。 [6] 由於 ISM 頻段中的 2.4GHz 頻段被廣泛使用,例如微波爐、藍牙,它們會干擾WiFi ,令速度減慢, 5GHz干擾則較小。雙頻路由器可同時使用 2.4GHz 和 5GHz ,裝置則只能使用某一個頻段。 第一代 802.11 , 1997 年制定,只使用 2.4GHz ,最快 2Mbit/s 第二代 802.11b ,只使用 2.4GHz ,最快 11Mbit/s ,正逐漸淘汰 第三代 802.11g/a ,分別使用 2.4GHz 和 5GHz ,最快 54Mbit/s 第四代 802.11n ,可使用 2.4GHz 或 5GHz , 20 和 40MHz 頻寬下最快 72和 150Mbit/s 第五代 802.11ac ,只使用 5GHz

Page 18: 物聯網技術分享 使用ESP8266

18

Wi-Fi 運作模式 可分為 Station (STA) 、 Access Point (AP) 、混合式……。 具備一組 SSID 與密碼,也可為公開網路 ( 連線時無須密碼 ) ,或是連線時不需要密碼,透過 AP 內建的程式進行用戶篩選(例如:校園Wi-Fi 等等)。 加密模式分為 WEP 、 WPA 、 WPA2-TKIP 、 WPA2-AES…… 。 遵循 OSI 模型,可以使用 TCP 、 UDP 等方式進行資料傳輸。

Page 19: 物聯網技術分享 使用ESP8266

19

常用 Wi-Fi 模組 RM04 工作電壓: 5V 傳輸方式: Serial (UART) 具備操作介面售價約 500元台幣

ESP8266 工作電壓: 3.3V 傳輸方式: Serial (UART) 、 I2C 、 SPI 不具備操作介面,僅有 AT Command 本身是 MCU ,有 GPIO售價約 55 至 80台幣

Page 20: 物聯網技術分享 使用ESP8266

20

LoRa 大範圍網路、智慧都市

Page 21: 物聯網技術分享 使用ESP8266

21

LoRa 一個長距離 (long range) 的通訊協定。 LoRa 的特點就是長距離、高穿透、抗干擾、低功耗。 經過 IBM 的測試,曼哈頓下城區約 30 平方公里的區域,只需要 7 個閘道器即可做到密集覆蓋。

Page 22: 物聯網技術分享 使用ESP8266

22

ESP8266 是 Wi-Fi 模組,也是 MCU

Page 23: 物聯網技術分享 使用ESP8266

23

ESP8266 由中國深圳樂鑫資訊所研發的超低價格具備 Wi-Fi 的微控制器,約為其他 Wi-Fi 控制器的 10 分之 1價錢。

深圳安信可科技 (AI-Thinker) 用這顆晶片開發出 12種小型電路板,分別為ESP-01到 ESP-14 。

不只安信可科技一家公司用 ESP8266晶片做Wi-Fi 小卡,也有其他板卡商拿這顆晶片去做小卡,例如北京多奧雲智科技做成 DWA8 ,或位在紐約市的創客知名公司 Adafruit也有做。

Page 24: 物聯網技術分享 使用ESP8266

24

ESP8266 本身為微控制器,預先燒好的系統提供 AT Command ,可以與主系統做連結。 連結方式可以是 Serial (UART) 、 I2C 、 SPI 。 也可以自行撰寫韌體 (firmware) ,達到自己想達到的功能。 工作電壓 3.3V ,支援 GPIO 。

Page 25: 物聯網技術分享 使用ESP8266

25

ESP 系列簡介 有無金屬屏蔽罩: 有: ESP-06 、 ESP-07 、 ESP-12 、 ESP-13 、ESP-14 。

天線: PCB天線: ESP-01 、 ESP-12 、 ESP-13 、 ESP-14 。

陶瓷天線: ESP-03 、 ESP-07 、 ESP-11 。 可外加天線: ESP-02 、 ESP-05 、 ESP-07 。 無天線: ESP-04 、 ESP-08 、 ESP-09 、 ESP-10 。

GPIO腳位特性

Page 26: 物聯網技術分享 使用ESP8266

26

架構RAM : 32KBROM : 沒有,只能用外接 SPI flash memoryFlash memory : 512 KB

Page 27: 物聯網技術分享 使用ESP8266

Pin Name Type Function1 VDDA P Analog Power 3.0 ~3.6V

 

2

 LNA

 I/O

RF Antenna Interface. Chip Output Impedance=50ΩNo matching required but we recommend that the π-type matching network is retained.

3 VDD3P3 P Amplifier Power 3.0~3.6V4 VDD3P3 P Amplifier Power 3.0~3.6V5 VDD_RTC P NC (1.1V)6 TOUT I ADC Pin (note: an internal pin of the chip) can be used to check the power voltage of VDD3P3 (Pin 3 and Pin4) or the

input voltage of TOUT (Pin 6). These two functions cannot be used simultaneously. 

CHIP_EN 

IChip Enable.High: On, chip works properly; Low: Off, small current

8 XPD_DCDC I/O Deep-Sleep Wakeup; GPIO169 MTMS I/O GPIO14; HSPI_CLK

10 MTDI I/O GPIO12; HSPI_MISO11 VDDPST P Digital/IO Power Supply (1.8V~3.3V)12 MTCK I/O GPIO13; HSPI_MOSI; UART0_CTS13 MTDO I/O GPIO15; HSPI_CS; UART0_RTS14 GPIO2 I/O UART Tx during flash programming; GPIO215 GPIO0 I/O GPIO0; SPI_CS216 GPIO4 I/O GPIO417 VDDPST P Digital/IO Power Supply (1.8V~3.3V)18 SDIO_DATA_2 I/O Connect to SD_D2 (Series R: 200Ω); SPIHD; HSPIHD; GPIO919 SDIO_DATA_3 I/O Connect to SD_D3 (Series R: 200Ω); SPIWP; HSPIWP; GPIO1020 SDIO_CMD I/O Connect to SD_CMD (Series R: 200Ω); SPI_CS0; GPIO1121 SDIO_CLK I/O Connect to SD_CLK (Series R: 200Ω); SPI_CLK; GPIO622 SDIO_DATA_0 I/O Connect to SD_D0 (Series R: 200Ω); SPI_MSIO; GPIO723 SDIO_DATA_1 I/O Connect to SD_D1 (Series R: 200Ω); SPI_MOSI; GPIO824 GPIO5 I/O GPIO525 U0RXD I/O UART Rx during flash programming; GPIO326 U0TXD I/O UART Tx during flash progamming; GPIO1; SPI_CS1

 27

 XTAL_OUT

 I/O

Connect to crystal oscillator output, can be used to provide BT clock input

28 XTAL_IN I/O Connect to crystal oscillator input29 VDDD P Analog Power 3.0V~3.6V30 VDDA P Analog Power 3.0V~3.6V31 RES12K I Serial connection with a 12 kΩ resistor and connect to the ground32 EXT_RSTB I External reset signal (Low voltage level: Active)

Page 28: 物聯網技術分享 使用ESP8266

28

電源供應問題 由於 ESP8266只吃穩定的 3.3V 電壓,工作時最大電流達 220mA ,單用Arduino 或其他微控制器的 3.3V孔是不夠的,必須外接穩壓器。

3.3V 穩壓器104號 電容10F 16v 電容

Page 29: 物聯網技術分享 使用ESP8266

29

連接方式 ( 以 UART 為例 ) TX :主控制器 RX 。 RX :主控制器 TX 。 VCC :穩壓過後的 3.3V 。 GND :接地。 CH_PD :外接電組與 VCC 連接。 (Enable) GPIO15 :接地。 (UART Mode) RST :接重置的按鈕,也可以主控制器的 Reset 互接。

Page 30: 物聯網技術分享 使用ESP8266

30

Flash firmware 連結方式 TX : TTL RX 。 RX : TTL TX 。 VCC :穩壓過後的 3.3V 。 GND :接地。 CH_PD :外接電組與 VCC 連接。 GPIO2 : VCC (flash mode) GPIO0 、 GPIO15 : Ground

Flash tool : http://www.xess.com/blog/esp8266-reflash/

Page 31: 物聯網技術分享 使用ESP8266

31

Firmware SDK NodeMCU: a Lua-based firmware.

Arduino: a C++ based firmware. This core enables the ESP8266 CPU and its Wi-Fi components to be programmed like any other Arduino device. The ESP8266 Arduino Core is available through GitHub.

MicroPython: a port of the MicroPython to the ESP8266 platform.

ESP8266 BASIC: An open source basic interpreter specifically tailored for the internet of things. Self hosting browser based development environment.

Page 32: 物聯網技術分享 使用ESP8266

32

AT Command AT代表 Attention 的意思,提醒裝置使用者即將下達指令。 裝置的 Baud rate必須與 ESP8266 的 Baud rate 相同。

ESP8266 初始 baud rate 為 115200 。

Page 33: 物聯網技術分享 使用ESP8266

33

Baud rate修改 由於 115200 的 Baud rate 相對於 Arduino 來說是比較難負荷的Baudrate 。

所以必須先修改 ESP8266 的 Baud rate 至 9600 。 利用 Arduino 或其他 TTL 裝置以 115200 連結 ESP8266 。 下達指令「 AT+UART_DEF=9600,8,1,0,0」,等待裝置重新開啟後,即完成修改。 再次連線時,記得改為 9600 連線。

Page 34: 物聯網技術分享 使用ESP8266

34

常用 AT Command - General AT Command Table : https://room-15.github.io/blog/2015/03/26/esp8266-at-command-reference/

AT : 詢問裝置是否待命。 AT+RST : 重置 ESP8266 。 AT+GMR : 取得韌體版本。 AT+CIFSR : 查詢 IP 位置。 AT+CWMODE? : 查詢目前工作模式 (1=STA 、 2=AP 、 3=BOTH) 。 AT+CWMODE=1 : 設定工作模式為 1 。

Page 35: 物聯網技術分享 使用ESP8266

35

常用 AT Command – STA Mode AT+CWLAP : 列出附近偵測得到的基地台。 AT+CWJAP=“SSID”,”Password” : 連線至指定的 AP 。 AT+CWJAP? : 查詢目前連線到哪一個基地台。 AT+CWQAP : 離開目前的基地台。

Page 36: 物聯網技術分享 使用ESP8266

36

常用 AT Command – AP Mode AT+CWSAP? : 查詢 SoftAP 的設定,只有為 AP Mode時才能使用。

AT+CWSAP? AT+CWSAP:“ESP_9CBD07”,“”,6,0    // ssid, pwd, ch, ecn , ch 為頻道, ech 為加密模式 OK

AT+CWSAP=“SSID”,”password”,ch,ech : 更改 AP 設定。 AT+CWLIF : 查詢有哪些使用者連線到此 AP 。 AT+CIPSERVER=0 : 關閉伺服器。

Page 37: 物聯網技術分享 使用ESP8266

37

常用 AT Command – TCP/UDP AT+CIPSTART : 建立 TCP/UDP 連線。 AT+CIPCLOSE : 關閉 TCP/UDP 連線。 AT+CIPSTATUS : 查詢目前的 IP狀態。 AT+CIPSEND=pid,data : 傳送 Socket封包。

Page 38: 物聯網技術分享 使用ESP8266

38

ESP8266 實際控制 使用 Socket Program 控制

Page 39: 物聯網技術分享 使用ESP8266

39

Socket Program Socket 內會包含要傳送的地址 (IP)埠號 (Port) 資料 (data)

Wi-Fi 與有線網路的程式設計方式一模一樣。電腦、手機 APP 、網站……皆可以使用Socket Program 開發。

Socket

IP Port

data

Page 40: 物聯網技術分享 使用ESP8266

40

Socket Program ESP8266預設的 IP 為 192.168.4.1 ,可以透共 AT Command修改 IP 。 在 AP Mode時,必須開啟伺服器( AT+CIPSERVER=1,port ),設定指定的Port給使用者。

設定完畢後即可開始。

Page 41: 物聯網技術分享 使用ESP8266

41

Client端 電腦:利用 JAVA ,撰寫 Socket程式。利用 C# , using IO.Socket ,撰寫 Socket程式。

手機: 透過原生 APP撰寫 Socket程式。 透過 PhoneGap/Cordova撰寫跨平台 APP ,使用 socket.io plugin撰寫 Socket程式。

Page 42: 物聯網技術分享 使用ESP8266

42

參考資料 物聯網 – Wiki (https://zh.wikipedia.org/wiki/%E7%89%A9%E8%81%94%E7%BD%91) 藍芽 – Wiki (https://zh.wikipedia.org/wiki/%E8%97%8D%E7%89%99) What is Bluetooth (http://mytop10bestsellers.blogspot.tw/p/what-is-bluetooth-technology-in-plain.html)

超圖解物聯網 IOT 實作入門 – 旗標出版社 Wi-Fi – Wiki (https://zh.wikipedia.org/wiki/Wi-Fi) LoRa Alliance (https://www.lora-alliance.org/) MakerPro (http://makerpro.cc/) ESP8266 – Wiki (https://en.wikipedia.org/wiki/ESP8266)

Page 44: 物聯網技術分享 使用ESP8266

Thanks for your attention !