pretty code

2020年8月20日 星期四

ESP8266 翻頁器設計

ESP8266 概述

ESP8266 是物聯網時代興起時很熱門的一顆 Wi-Fi 晶片,除了可以當作外部裝置給 Arduino 使用,由於本身的計算能力還不錯,故也可以單獨使用。 

晶片開發廠商是上海樂鑫信息科技,而外面常見的模組則是由安信可科技(Ai-Thinker)整合販售的,有 ESP-01、ESP-03、ESP-12等等。不同的模組有不同的 GPIO 數量,可以視需求購買。

另外,還有連燒錄電路,供電電路都整合好的開發版,比如說 NodeMCU 之類的,插上 USB 就可以工作,不需要再買一條 USB 轉 TTL 的轉接線即可工作。另外,USB 轉 TTL 的轉接線預設是走 5V 輸出,而 ESP8266 是吃 3.3V,故還需要把轉接線接頭打開,自行將輸出焊接到 3.3V 腳位。

網路上還有看到,USB 因為電流可能不足,故燒錄時如果失敗,建議外接電源。

ESP8266 共有 17 根 GPIO,扣掉 GPIO6 ~ GPIO11 共 6 根讀取 flash 專用,再扣掉 GPIO1、GPIO3 共 2 根 UART 用,故最多能使用 9 根 GPIO。

下面是抄錄自官方 FAQ:「除了 XPD_DCDC,GPIO 可以配置上拉。關於 GPIO 的上電 IO 口預設狀態為:除了 SDIO 6根線 +GPIO4+GPIO5+GPIO16 上電 IO 默認無上拉,其他的 GPIO 口均有上拉。由於是內部配置上拉,所以如需下拉,需外部加下拉方式或者加一個三級管的反相電路。」

ESP8266 使用 3 根 GPIO 決定 Boot Mode 模式,分別是 GPIO15、GPIO0、GPIO2,其模式如下:

燒錄模式 - 0V, 0V, 3.3V
正常模式 - 0V, 3.3V, 3.3V

為了配合 Boot Mode,GPIO15 上電時會讓它保持 Low,故不建議把它設成 PULL_HIGH,故 9 根 GPIO中,建議使用 GPIO12 ~ GPIO14、GPIO16、GPIO4 ~ GPIO5、GPIO0、GPIO2 這 8 根,越前面的越推薦。另外,每根 GPIO 可提供的最大電流為 12 mA。

GPIO0 ~ GPIO15 都有內建的上拉電阻,GPIO16 則是下拉電阻。

ESP8266 大部份都是使用 26 MHz 晶振,故上電時,晶片預設鮑率為 74880,如果不是使用這個設定,上電訊息便會看到亂碼。

關於 ESP8266 的介紹,這篇文章是我看過寫得很棒的,可以參考。

翻頁器設計

01. GPIO - 3 個 Web API,1 個 LED 指示開機狀態,1 個 LED指示自動偵測 Server IP 狀態,1 個 LED 指示 API 狀態。
02. 電路 - 3.3V 
03. 外部燒錄接口

ESP-03 是 7 個 GPIO 接口,ESP-12 則是 9 個 GPIO。

供電電路

01. 鈕扣電池類,容量只有一兩百 mAh,最大容許放電電流也只有 3 mA,看來是不可行。
02. 4 號電池容量有 1250 mAh,放電電流未知?但我想應該是不行,設計目的不同。

穩壓電源簡介

工作目標

01. 先花幾百塊買現成開發版驗證程式功能。
02. 直接買現成模組 + 麵包板測試。
03. 使用 3 D 列印或其他方式製作外殼。

2020/08/24 更新

查了一下,似乎乾電池的供電電流是可以供 ESP8266 使用,也有賣集成 18500 mAh 電池座與 ESP8266 的開發版,就看那一樣最方便。

規格如下:
ESP-WROOM 02 - 20g
Panasonic 3.7V 3350 mAh - 46g

2020/08/25 更新

查了一下,NodeMCU 上面是使用 AMS1117 這顆 IC 來做電壓轉換,所有電路只需要額外 2 組電容,看起來還不錯。不過這種轉換 IC,效率可能不到 8 成,但簡單運用場景下還算不錯。

2020/08/26 更新

之前沒有想到,按鍵偵測應該要使用中斷,趕緊查了一下,幸好 ESP8266 除了 GPIO16,大部份的 GPIO 都可以觸發中斷。另外網路的操作在中斷裡應該會有問題?流程需要好好設計。

2020/08/29 更新

Arduino 也可以寫 ESP8266 程式真的很方便,polling 版的程式馬上就寫好了,實測模擬按鍵的靈敏度也還行,可惜的是自己焊接的功力真的太差,想把線焊到開發板上一直無法成功,看來這個專案只能到這了!幸好該有的概念都已驗證完畢。

影片連結

2020/08/31 更新

查了一下 3D 列印,一個門外漢要把外殼從無到有設計出來,看起來也不是一天兩天的事,目前看起來還堪用的 3D 列印機大概也要一萬多元,如果不是沒有地方可以放置,自己買一台應該是比較好的選擇。

沒有留言: