設為首頁收藏本站

艾歐踢論壇

 找回密碼
 立即註冊

QQ登錄

只需一步,快速開始

搜索
熱搜: 活動 交友 discuz
查看: 820|回復: 0
打印 上一主題 下一主題

ESP8266指南:角色、功效及開發途徑

[複製鏈接]
跳轉到指定樓層
樓主
發表於 2017-1-13 06:12:40 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
ESP8266可以扮演什麼(應用)角色?
ESP8266可以扮演3種應用角色

ESP8266大致可以扮演3種應用角色:
1. 扮演Arduino的功能擴充,成為Arduino的受控者Arduino本身沒有Wi-Fi功能,但ESP8266有Wi-Fi功能,Arduino需要進行Wi-Fi無線收發時,可以透過ESP8266來實現。簡單說,這是把ESP8266當成Arduino的Wi-Fi擴充卡(Shield)來用,差別只是ESP8266可能更便宜而已。
2. 扮演獨立運作的Web Client角色例如將溫度計與ESP8266連接,並預先在ESP8266的執行程式中寫入SSID=xxx,Password=yyy,讓ESP8266以Web Client(其實連上線後用任何Internet協定均可,但最常用是WWW/HTTP)的身份,定時把溫度資料回傳到附近的Wi-Fi路由器上,再透過路由器傳遞到區域網路或Internet上的某個網站(Web Server),以便定時統整記錄溫度資料。
3. 扮演獨立運作的Web Server角色這角色是扮演成Web Server,而讓Web Client來連線取得服務,這種應用方式最少,畢竟ESP8266硬體規格、效能太過薄弱,但網路上確實有一點這類的想法與討論。
整體而言多數人採第二種應用,例如用ESP8266連接一個電源插座,然後透過Web瀏覽器遙控插座的開或關,也有人用來定期記錄土壤濕度等。
怎樣開發ESP8266的執行程式?若本來已經使用過Arduino的人,最簡單的開發方式就是用Arduino IDE開發軟體來開發ESP8266的執行程式,很多語法已經可相容使用,如pinMode、digitalRead、digitalWrite等。
如果不用Arduino也可以用C語言(嚴格而論Arduino用的程式語言,其學名為Processing,但其實90%與C、C++語言相仿),因為ESP8266的SDK(軟體開發套件)源頭就來自GCC編譯器,C語言可以提供更接近硬體層的低階控制。另外也可以用Python語言開發,但是是微型的Micro Python。
怎樣把開發的執行程式放入ESP8266內?程式開發完後怎樣放入ESP8266內,以便讓ESP8266一直執行該程式呢?此分成有Arduino電路板或沒有Arduino電路板。
如果有,可以在Arduino IDE內選擇讓Arduino電路板充當燒錄器,對ESP8266進行燒錄。如果沒有,就必須去購買一條「USB轉TTL」的轉接器,將轉接器一端連接PC的USB埠,另一端(先確認電壓已從5V降至3.3V,否則過高的電壓會傷害ESP8266)接至ESP8266,而後在PC端用串列埠通訊軟體,如putty、Realterm、 sscom32等,而後以下指令的方式,將程式從PC端燒錄到ESP8266上。
除了燒錄執行程式外,其實也可以燒錄、更新ESP8266上的韌體程式,但使用機會比燒錄執行程式低一點。
ESP8266有哪些(硬體)功效?
ESP8266有ADC輸入及PWM輸出功能

除了Wi-Fi通訊能力外,有的ESP8266有提供1個10-bit的ADC輸入(實際接腳與TOUT共用),如此可方便ESP8266與各種感測器連接,不過有的沒有提供,必須注意。
另外ESP8266有PWM輸出功能,腳位為GPIO12、GPIO13、GPIO15,但還要看電路板本身是否有實現。(註:2015年8月21日釋出的1.1版ESP8266 RTOS SDK可以支援PWM、C++程式語言。)
此外ESP8266的Datasheet上有提及ESP8266有即時鐘(Real-Time Clock, RTC)功能,但多數ESP8266電路板沒有實現這項功能。如果真的有取得真實世界的日期、時間等資訊需求,建議在Wi-Fi連線後,用Internet上的NTP(Network Time Protocol)協定來取得會比較合適。
整體而言ESP8266的一般性輸出入(General Purpose Input/Output, GPIO)功能相當薄弱,畢竟是以Wi-Fi通訊為主要功能,表面上有編號1-16的GPIO接腳,但實際真的顯露的接腳相當少,象徵性提供2、3個腳位,因此不要對ESP8266有過度期望,畢竟只是5~7美元的小玩意兒。
另外,ESP8266雖可支援SDIO、SPI、I2C等多種介面,但其實同時間只能使用一種介面,且為了串接外部的快閃記憶體(韌體與執行程式都存在這個記憶體內),已經不可能轉換成SDIO、I2C等其他介面,此同樣在提醒大家勿過度期望ESP8266的外接接腳功能,應將多數需求寄望在Wi-Fi通訊上。
開發建議途徑
開發ESP8266應用的兩條建議途徑

簡單來說,對電子線路較無把握、只學過簡單Arduino應用開發者,筆者建議用Arduino來開發ESP8266應用,也透過Arduino將程式燒錄到ESP8266內,比較簡單,一片Arduino電路板約數百元台幣。
而對電子線路較把握者,或期望用Arduino IDE/Processing以外的程式語言開發者,可以只花數十元台幣買一條USB轉TTL線路,透過串列埠通訊程式來燒錄。軟硬體底子較足的人才建議此法。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 轉播轉播 分享分享 分享淘帖
回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

小黑屋|Archiver|手機版|艾歐踢創新工坊    

GMT+8, 2024-5-17 05:12 , Processed in 0.297019 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表