第二章、 文獻探討
2.6 ESP8266
2.6.3 韌體
ESP8266 的firmware 預設會支援一種ATCommand的協定,可以從 Serial連進去以後,下指令時會把設定寫入flash中,重開機也還會在,設成 AP or wifi client 模式或者連線,設定查詢wificonfig與實際測試。如同一個
介面能夠簡化的與Arduino溝通。7 ESP8266,而可以改用 Arduino 去連接,並對 ESP8266 發送指令。
(一)讓 ESP8266 跟電腦連接
ESP8266使用的通訊方式,叫做序列(Serial)通訊的方式。這種通訊方式 和一般的 USB 通訊方式是不同的。
要讓 ESP8266 跟電腦通訊,需要一個「USB 轉 Serial」的轉換器,這
7https://mlwmlw.org/2015/07/深入淺出-wifi-晶片-esp8266-with-arduino/
8http://lolwarden.pixnet.net/blog/post/82031214-arduino-wifi(esp8266)
種轉換器另有「USB 轉 TTL」和「USB 轉 UART」等不同的名稱。下圖為
「USB 轉 Serial」轉換器 CP2102。
圖 2-4「USB 轉 Serial」轉換器 CP2102
熟悉的 USB 接頭,CP2102 的另外一端有六隻腳,包括:3v3、TXD、
RXD、GND 和 5V。其中有幾隻就是要用來跟 ESP8266 連接的,大部分的轉 換器的接腳都大同小異。
下面就是 ESP8266 的接腳說明圖:
圖 2-5 ESP8266 的接腳說明圖
可以看到,左邊的 8 個點,就是它的八隻接腳,旁邊的八串英文字,就 是這八支接腳的代號名稱。
圖中的 GND 代表 Ground,即電源負極接腳。VCC 則代表電源正極接 腳。ESP8266 需要 3.3V,電源輸入,若使用 5V 電源會把它燒毀!
要特別注意的是,ESP8266 的電流消耗可達 200~300mA,電源必須能提 供足夠的電流,以確保它正常運作。
然而,大部分的「USB 轉 TTL」轉換器,例如 CP2102,雖然有提供 3.3V 的電源輸出,但是卻無法提供足夠的電流。因此我們需要使用其他的裝置做 為電源。例如電源供應器或 Arduino。
圖中的 UTXD 和 URXD,是主要用來與電腦連接通訊的兩個接腳,TX 表示它是用來發送訊號,RX 則表示它是用來接收訊號。
ESP8266接線。首先接電源。使用 Arduino 做為電源。接法如下:
1. 【Arduino】3.3V →【ESP8266】VCC 2. 【Arduino】3.3V →【ESP8266】CH_PD 3. 【Arduino】GND →【ESP8266】GND 4. 【Arduino】GND →【CP2102】GND
需要注意的是,Arduino 的電流供應其實還是不夠大。雖然這對 ESP8266 在一般運作時的影響不大。但要更新韌體的時候,就必須要改用電源供應器 來供電,要將訊號線與 CP2102 連接,接法如下:
1. 【CP2102】TXD→【ESP8266】URXD 2. 【CP2102】RXD→【ESP8266】UTXD TX是發送端,所以要接到 RX 接收端。
和 ESP8266 通訊。在網路上可以找到很多種不同的序列埠通訊軟體。
(二)幫 ESP8266 更新韌體
要更新韌體,是為了讓 Arduino 可以跟 ESP8266 通訊。更新韌體時,
ESP8266會消耗更大的電流,所以不能用 Arduino 作為電源,而必須把 Arduino換成電源供應器,或其他可以提供更大電流的電源。
(三)透過指令(AT Command)去操作 ESP8266
當 ESP8266 完成韌體更新之後,要重新與 ESP8266 連接,輸入「AT」
與「AT+GMR」這兩個基本指令去測試它。測試成功後,可以繼續用其他指
指令「AT+CWJAP」
「AT+CWJAP=<SSID>,<Password>」連線到已存在的無線網路。
「AT+CWJAP?」查詢已連線到的無線網路。
SSID:無線網路的識別名稱(要加引號)。
Password:無線網路的密碼(要加引號)。
如果需要切斷 Wifi 連線,我們可以也可使用這個指令:
指令「AT+CWQAP」
切斷已連線的無線網路。 9
9http://lets-make-games.blogspot.tw/2015/04/wifi-esp8266-wifi.html
2.6.6 與目標裝置連線
<port>:網路連接埠號碼。10
10http://lets-make-games.blogspot.tw/2015/04/wifi-esp8266-wifi.html
要讓 ESP8266 扮演客戶端,對伺服器進行連線,需要使用以下指令:
指令「AT+CIPSTART」
「AT+CIPSTART=?」:查詢目前已經建立的連線資訊。
<id>:範圍 0~4。推測最多可以連線到 5 台伺服器,這是用來代表此連線的 代號。
<type>:連線類型,可為"TCP"或"UDP"(要加引號)。
<addr>:連線的 IP 位址,如"192.168.43.31"(要加引號)。
<port>:伺服器接受連線的連接埠(Port)號碼(這個不用加引號)。
圖 2-7 FT232 兩大功用:
1.用來燒錄 ESP8266 內建韌體。
2.可以隨時用簡單的 Realterm(終端機)來測試 ESP8266 是否正常。
圖 2-8 FT232 與 ESP8266
圖 2-9Arduino 與 ESP8266
圖 2-10 Arduino 與指紋辨識器
2.7 ESP01
ESP01 有八個腳由左到右,由上到下,由內到外,依序為 TX、GND、
CH_PD(must be 1 to enable WiFi)、GPIO02、GPIO01、RST(Reset)、VCC(3.3V)、
RX。11
圖 2-11ESP8266, ESP-01 電路板接腳名稱 ESP8266, ESP-01 AT 指令簡介:
ESP8266無線模組的指令主要分為:基礎 AT 指令、WiFi 功能 AT 指令、
11http://ruten-proteus.blogspot.tw/2014/12/esp8266-at-command.html
TCP/IP 工具箱 AT 指令等,根據韌體版本的不同,會新增或修改 AT 指令以
操作 ESP8266,ESP-01AP+STA(混和模式) 三種模式來間接說明無線 模組的 AP (無線網路基地台)、STA (個人工作站)模式指令,方法步驟如下:
PC 與手機測試軟體下載與安裝,取得無線網路的 SSID(無線網路的名稱 或識別碼)與密碼
ESP8266,ESP-01 無線模組通訊接線 指令「AT+CWMODE」
「AT+CWMODE?」:查詢當前模式
「AT+CWMODE=2」:將模式設定為第 2 種(AP 模式) 指令「AT+CWLAP」:顯示可連線的 Wifi 網路清單
由於 ESP8266 無線模組的韌體一直在更新當中,因此若是韌體版本不
ESP8266, ESP-01 的接法可以分為直接通訊,與外接電源是接法。前者 不需要另一個外接電源介入;後者需要另外一個外接電源提供足夠的電流。
直接接線通訊方式:
圖 2-12 通訊的電路接線
圖 2-13ESP8266, ESP-01、USB 轉 TTL 模組
在未接線之前,先將 USB 轉 TTL 模組插上 PC,確認驅動程式是否正常 驅動?以及系統所給的 COM 埠號碼是多少?
照著下面照片先將四條線接上 USB 轉 TTL 模組,再分別將黃線與綠線接 到 ESP8266, ESP-01 的 URXD 和 GND 接腳
圖 2-14 兩條杜邦線與下排接腳
圖 2-15 ESP8266, ESP-01 的 UTXD 接腳
圖 2-16 與 VCC 連接
圖 2-17 插上 USB 轉 TTL 模組到與 PC 的 USB 插槽連接
圖 2-18ESP8266 的電源燈亮起
當接線正確時,模組通電的時候就會看到紅燈與藍燈一起亮起,且藍燈會閃 爍之後滅掉只剩下紅燈一直亮著,藍燈只有在通訊時會閃爍!13
2.8 PL2303HX
PL2303HX 下載線電路板被包覆在 USB 塑膠殼內, 拆開來可看到裡面有 3.3V 電源接線孔,若需要輸出 3.3V 電源需自行焊線拉出去,ESP8266 會 消耗 200~300mA 左右的電流,而一般下載線即使有 3.3V 電源輸出,但無 法輸出這麼多電流, 所以無法啟動 ESP8266。
PL2303HX規格,其最大操作電流是 25mA,也是不夠的,所以其 3.3V 輸 出不能用,必須使用麵包板電源模組的 3.3V 電源,如下圖右上角處,把跳 線帽移到 3.3V 處,旁邊的接點就是輸出 3.3V 。
13http://ruten-proteus.blogspot.tw/2014/12/esp8266-at-command.html#!/2014/12/esp8266-at-com mand.html
圖 2-19 PL2303HX
雖然 PL2303HX 接電腦 USB 的 5V 電源,其信號輸出卻是 3.3V 準位,所以 其 TX/RX 可以直接與 ESP8266 的 UXRD/UXTD 相接。
PL2303HX 有四條線,其中+5V 不能用 PL2303HX
+5V:不可接 (會讓 ESP8266 燒毀)
GND:接 ESP8266 與 3.3V 電源板的 GND (三個 GND 共接) TXD:接 ESP8266 的 URXD
RXD:接 ESP8266 的 UXTD
PL2303HX與 ESP8266 的GND都接到電源模組的GND,ESP8266 的 CH_PD 與VCC都接到電源模組的 3.3V,然後PL2303HX的RX接ESP8266 的UXTD,
TX接ESP8266 的URXD。14
14http://yhhuang1966.blogspot.tw/2015/07/esp8266-wifi-at-command.html
圖 2-20 PL2303HX 與 ESP8266
PL2303HX插入電腦USB槽,按下電源模組按鈕送電,當有資料傳送時 ESP8266旁的藍色LED會閃一下,當有電源時紅色 LED會亮起來 15
圖 2-21 PL2303HX 插入電腦 USB 槽
15http://yhhuang1966.blogspot.tw/2015/07/esp8266-wifi-at-command.html
2.9 各種 AT 指令參考 :
AT+GMR : 取得韌體版本 AT+RST : 重新起始 ESP8266
AT+CIOBAUD? : 查詢鮑率 (位元速率) AT+CIFSR : 查詢 IP 位址
AT+CWMODE? : 查詢目前工作模式 AT+CWLAP : 列出附近偵測得到的基地台 0 OPEN (不加密)
AT+CWJAP="SSID","PWD" : 連線指定之基地台 AT+CWJAP? : 查詢目前連線到哪一個基地台
AT+CWQAP : 離開目前連線的基地台 AT+CIPSTART : 建立 TCP/UDP 連線 AT+CIPSTATUS : 查詢目前 IP 連線狀態 AT+CIPCLOSE : 關閉 IP 連線
AT+CIPMUX? : 詢問目前 TCP/UDP 連線模式
AT+CIPMUX=1 : 設定 TCP/UDP 連線模式為多重連線 AT+CIPSTO? : 查詢伺服器逾時計時器設定值 (秒)
第三章、專題規劃
我們大部分所了解的雲端可能只是運用在上傳資料或者是照片,我們想藉由 這次專題讓大部分的人了解說我們所知道雲端,不只是有那些功能還可以結 合在其他地方像是辦公室或家裡或餐廳都可以利用雲端來達到更方便的環 境。
3.1 研究方法.
我們系統開發的方法是利用螺旋法的方式來去做,在一開始還不知道怎 麼做利用螺旋法的方式邊做邊修改的方法來去達到我們最後要的東西。
3.1.1 系統藍圖
圖 3-1 系統藍圖
3.1.2 系統藍圖描述
手機連接至雲端來建立資料,再以物聯網的方式來達成指紋進行的工作 3.1.3 系統架構圖
圖 3-2 系統架構圖 3.1.4 專題設備
表 3-1 軟體設備表
類別 名稱
作業平台 Windows7 旗艦版 64 位元
文書處理 Microsoft office Word 2010
撰寫程式 Arduino
資料庫 PHPmyadmin
網頁設計 Notepad++
表 3-2 硬體設備表
類別 規格
電腦 CPU:Intel Core i5-4460、硬碟:1T、記憶體:8GB
CPU:Intel(R) Celeron(R) CPU J1900 @1.99GHz 1.99GHz, RAM:4.00GB,64 位元
隨身碟 16GB
ESP8266 ESP01
指紋辨識器 YN510
Arduino 電路板 微控制器:ATmega328 工作電壓:5V
數位 I/O Pins:14 支類入 Input Pins:6 支 I/O pin 直流電流:40mA 3.3V pin 直流電流:50mA Flash 記憶體:32KB SRAM:2KB EEPROM:1KB 時脈 :16MHz
PL2303HX PL2303HX :+5V、GND、TXD、RXD
3.2 使用案例圖
圖 3-3 使用案例圖
3.3 專題工作目標
專題工作目標最主要著重在系統連接至實體指紋鎖,所以我們最主要的 重心還是會放在系統以及物聯網。
3.4 專題時程規劃
3.4.1 專題分工
表 3-4 專題分工表 組員
工作 陳彥廷 蕭治釩 張登國 湯政偉
專題製作 ● ● ● ●
專題方向定義 ● ● ● ●
專題分析與討論 ● ● ● ●
資料蒐集 ● ● ● ●
使用案例圖 ● ●
產品分析與討論 ● ● ● ●
產品規劃 ● ● ● ●
產品設計 ● ● ●
網頁程式撰寫 ● ●
網頁測試與維護 ● ● ●
書面報告總整 ● ● ● ●
第四章、專案成果
專案成果簡介:
圖 4-1 系統架構圖
圖 4-2 指紋系統管理圖
圖 4-3 產品設計流程圖
4.1 系統分析報告
4.1.1 使用案例圖(功能)(權限)
4.1.2 使用者案例描述
使用者只能單方面的做輸入指紋的動作,存入資料庫中;另一方面管理 者負責的就是從資料庫中的使用者指紋資料去做整理,進行給予權限與管理 權限動作,至於遠端開鎖方便管理者進行開鎖動作,不用到現場開鎖。
4.1.3 活動圖
圖 4-4 產品活動圖
使用者
[有資料]
[無資料]
圖 4-5 新增指紋活動圖
4.2 系統設計報告
4.2.1 資料庫設計
圖 4-6 資料庫設計
使用者
4.2.2 使用者介面設計
圖 4-7 使用者介面設計 4.2.3 配套設計(硬體)
圖 4-8 裝置設備
8266 開關鎖
指紋辨識器 Arduino
繼電器
發音器
指紋辨識器開關
指紋辨識器開關
4.3 系統成果展示
4.3.1 首頁與功能圖 4-9 首頁與功能 4.3.2 程式端
圖 4-10 介面程式碼
圖 4-11 介面程式碼 4.3.3 軟體說明
圖4-12 新增指紋
若無輸入 ID 碼,ID 碼則為預 設值 0
四秒以內新增指紋,若無則關 閉新增指紋
圖4-13 刪除指紋
4.4
操作手冊4.4.1 功能一
以實際的硬體設備來說,按下指紋辨識器按鈕,指紋辨識將會亮燈,要 在四秒內掃描指紋,如四秒內沒掃描將自行關閉。
將手指放在指紋辨識器上進行掃描與檢查是否有資料。如有資料,繼電 器會發出聲音;發音器會依照有無資料進行確認,如果有資料會發出長音,
相反的若無資料則會發出短音,讓使用者可以知道自己有沒有資料。
相反的若無資料則會發出短音,讓使用者可以知道自己有沒有資料。