pretty code

2020年8月27日 星期四

WeMos D1 ESP Wroom 02 開發板 ESP8266+18650 電池座 初次使用記錄

為了 Kobo 硬體翻頁器的設計,最後選擇了這一塊開發版,這個開發版的好處是包含了 18650 電池座,也有供電及燒錄模組,我只要自己焊幾根線,3D 列印設計外殼,剩下的就是純軟體的工作了,應該可以加快開發速度。另外,其電路設計會讓 CHIP RESET 時進入燒錄模式,故不需要按下 FLASH 按鈕,似乎開發板都有內建這個功能。原理似乎是利用 UART 傳輸時,會觸發 RESET 並讓 GPIO0 拉 Low 好讓 CHIP 進入燒錄模式。下面是取自 NodeMCU 的電路圖。

下面是板子示意圖,隨手畫畫,元件相對位置是對的,但可能水平位置不一定有對齊。


相關 IC 概略

AMS1117 - 電源轉換 IC,負責將 5V 轉成 ESP8266 需要的 3.3V。
CP2102 - USB 轉 UART 的 IC,SILABS 網站上有提供驅動程式。
TP5400 - 負責電池充電,也會將電池的 3.7V 轉成 5V 輸出。

前置作業準備

01. 下載 Arduino IDE。
02. Arduino IDE -> 檔案 -> 偏好設定 -> 額外開發板管理員網址,輸入 http://arduino.esp8266.com/stable/package_esp8266com_index.json。
03. Arduino IDE -> 工具 -> 開發板管理員 -> 搜尋 ESP8266 並下載套件。
04. 開發板選擇 LOLIN(WEMOS) D1 R2 & mini,似乎選別的也無妨,重點自己是用那根 GPIO 要搞清楚。


第一個 Hello Word (控制 LED)


#define LED_BUILTIN 16

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}

編譯及上傳訊息


Executable segment sizes:
IROM   : 228640          - code in flash         (default or ICACHE_FLASH_ATTR) 
IRAM   : 26756   / 32768 - code in IRAM          (ICACHE_RAM_ATTR, ISRs...) 
DATA   : 1248  )         - initialized variables (global, static) in RAM/HEAP 
RODATA : 688   ) / 81920 - constants             (global, static) in RAM/HEAP 
BSS    : 24880 )         - zeroed variables      (global, static) in RAM/HEAP 
草稿碼使用了 257332 bytes (24%) 的程式儲存空間。上限為 1044464 bytes。
全域變數使用了 26816 bytes (32%) 的動態記憶體,剩餘 55104 bytes 給區域變數。上限為 81920 bytes 。
esptool.py v2.8
Serial port COM6
Connecting....
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: 24:62:ab:00:00:00
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Auto-detected Flash size: 2MB
Flash params set to 0x0230
Compressed 261488 bytes to 193147...
Wrote 261488 bytes (193147 compressed) at 0x00000000 in 4.4 seconds (effective 475.9 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...

實際測試結果,這樣的一個小程式,耗電量約為 40 ~ 80 mA 左右。

2020/08/28 更新

早上趁著上班前,量測了一下腳位,確認板子上的 D1 ~ D8 是對應到那些 GPIO。

2020/08/29 更新

焊接技術真的很糟!看來自己是沒辦法把線焊到開發板上,程式已經大致 OK,雖然是用 polling 的方式,不是用中斷。非常克難的用一根線模擬按鍵的功能,意思到了就好。


沒有留言: