Talaan ng mga Nilalaman:

Google Photo Clock: 7 Hakbang (na may Mga Larawan)
Google Photo Clock: 7 Hakbang (na may Mga Larawan)

Video: Google Photo Clock: 7 Hakbang (na may Mga Larawan)

Video: Google Photo Clock: 7 Hakbang (na may Mga Larawan)
Video: ATEM MasterClass v2 — FIVE HOURS of ATEM Goodness! 2024, Nobyembre
Anonim
Image
Image
Google Photo Clock
Google Photo Clock
Google Photo Clock
Google Photo Clock
Google Photo Clock
Google Photo Clock

Ipinapakita ng mga itinuturo na ito kung paano gumamit ng isang ESP32 at isang LCD upang makagawa ng isang digital na orasan na may random na pagpapakita ng larawan sa background bawat minuto. Ang mga larawan ay nagmula sa iyong ibinahaging Google Photo Album, i-input lamang ang link sa pagbabahagi na gagawin ng ESP32 ang trabaho;>

Hakbang 1: Paghahanda ng Hardware

Paghahanda ng Hardware
Paghahanda ng Hardware
Paghahanda ng Hardware
Paghahanda ng Hardware
Paghahanda ng Hardware
Paghahanda ng Hardware

REUSE PREVIOUS PROJECT HARDWARE

Kung nagawa mo na ang mga nakaraang itinuro, maaari mong muling magamit ang hardware para sa proyektong ito at maaaring laktawan ang pagpupulong ng hardware:

  • https://www.instructables.com/id/Floating-Display/
  • https://www.instructables.com/id/COVID-19-WHO-Dash…

ESP8266 / ESP32 Dev Board

Ang anumang ESP8266 / ESP32 Dev Board ay dapat na maging ok.

LCD Display

Anumang Arduino_GFX suportadong LCD ay ok, maaari mong makita ang kasalukuyang sinusuportahang display sa GitHub readme:

Breadboard

Anumang breadboard na maaaring magkasya para sa ESP Dev Board at LCD Display.

Jumper Wire

Ang ilang mga Jumper Wires, nakasalalay sa dev board at LCD pin layout. Sa karamihan ng mga kaso ay sapat na ang 6-9 male to female jumper wires.

Hakbang 2: Hardware Assembly

Hardware Assembly
Hardware Assembly
Hardware Assembly
Hardware Assembly
Hardware Assembly
Hardware Assembly
Hardware Assembly
Hardware Assembly

Itulak ang ESP32 Dev Board sa breadboard at ikonekta ang LCD gamit ang mga jumper wires.

Narito ang sample na buod ng koneksyon:

ESP8266 -> LCD

Vcc -> Vcc

GND -> GND GPIO 15 -> CS GPIO 5 -> DC (kung magagamit) RST -> RST GPIO 14 -> SCK GPIO 12 -> MISO (opsyonal) GPIO 4 -> LED (kung magagamit) GPIO 13 -> MOSI / SDA

ESP32 -> LCD

Vcc -> Vcc

GND -> GND GPIO 5 -> CS GPIO 16 -> DC (kung magagamit) GPIO 17 -> RST GPIO 18 -> SCK GPIO 19 -> MISO (opsyonal) GPIO 22 -> LED (kung magagamit) GPIO 23 -> MOSI / SDA

Hakbang 3: Paghahanda ng Software

Arduino IDE

I-download at i-install ang Arduino IDE kung hindi mo pa ito nagagawa:

www.arduino.cc/en/main/software

Suporta ng ESP8266

Sundin ang Mga Tagubilin sa Pag-install upang magdagdag ng suporta sa ESP8266 kung hindi mo pa ito nagagawa:

github.com/esp8266/Arduino

Nag-upload ng filesystem ng Arduino ESP8266

Sundin ang Mga Tagubilin sa Pag-install upang magdagdag ng plugin ng uploader kung hindi mo pa ito nagagawa:

github.com/esp8266/arduino-esp8266fs-plugi…

Suporta ng ESP32

Sundin ang Mga Tagubilin sa Pag-install upang magdagdag ng suporta sa ESP32 kung hindi mo pa ito nagagawa:

github.com/espressif/arduino-esp32

Arduino_GFX Library

Mag-download ng pinakabagong mga aklatan ng Arduino_GFX: (pindutin ang "I-clone o I-download" -> "I-download ang ZIP")

github.com/moononournation/Arduino_GFX

Mag-import ng mga aklatan sa Arduino IDE. (Arduino IDE "Sketch" Menu -> "Isama ang Library" -> "Idagdag. ZIP Library" -> piliin ang na-download na ZIP file)

Hakbang 4: Pagtatakda at Pag-upload

Pagtatakda at Pag-upload
Pagtatakda at Pag-upload
  1. I-download ang programa sa GitHub: (pindutin ang "I-clone o I-download" -> "I-download ang ZIP")
  2. Buksan ang GooglePhotoClock.ino gamit ang Arduino IDE
  3. Punan ang iyong mga setting ng WiFi AP sa SSID_NAME at SSID_PASSWORD
  4. Punan ang impormasyon ng lokal na timezone sa GMT_OFFSET_SEC, DAYLIGHT_OFFSET_SEC at TZ
  5. Maghanda ng isang nakabahaging album sa Google Photo, lumikha ng isang link sa pagbabahagi at punan ang GOOGLE_PHOTO_SHARE_LINK
  6. Kung hindi ka gumagamit ng ILI9341 LCD, magbigay ng puna sa linya 133 at pigilan ang tamang deklarasyon sa klase ng LCD
  7. Ikonekta ang ESP Dev Board sa computer
  8. Pindutin ang pindutan ng Mag-upload upang mag-ipon at i-upload ang programa sa ESP Dev Board

Hakbang 5: ESP8266 BearSSL CertStore

ESP8266 BearSSL CertStore
ESP8266 BearSSL CertStore
ESP8266 BearSSL CertStore
ESP8266 BearSSL CertStore

Kinakailangan ng Google Photo ang lahat ng koneksyon sa HTTPS. Pinakabagong bersyon ng ESP8266 gamit ang pagpapatupad ng BearSSL at nangangailangan ito ng ilang preprocessing sa data ng CertStore.

Nakabuo ako ng isang data ng CertStore sa 2020 Abr 18, ginawang muli mo ito sa pamamagitan ng pagpapatakbo:

python make_spiffs.py

Kung gumagamit ka ng ESP8266, sundin ang mga hakbang upang mag-upload ng data ng CertStore:

  1. Buksan ang Arduino IDE
  2. Ikonekta ang ESP8266 dev board sa computer
  3. Piliin ang menu ng Mga Tool
  4. Piliin ang ESP8266 Sketch Data Upload
  5. Maghintay matapos ang pag-upload

Hakbang 6: Paano Ito Gumagana?

  1. Kumonekta sa paunang natukoy na WiFi AP
  2. Kumuha ng kasalukuyang oras mula sa NTP server
  3. Gawin ang kahilingan sa HTTPS na nakabahaging link na Google Photo
  4. Ang HTTPS response code 302 at nagsama ng lokasyon ng pag-redirect sa header ng tugon
  5. Gawin ang kahilingan sa HTTPS na lokasyon sa pag-redirect
  6. Basahin ang listahan ng larawan mula sa array ng Javascript bilang tugon na HTML (ang HTML ay higit sa 500 KB, kailangan ng kaunting oras upang mabasa at hatiin ang data)
  7. Para sa bawat mga minyo, random na pumili ng isang larawan sa listahan ng larawan
  8. Para sa ESP8266 lamang, subukang hanapin muna ang file na naka-cache na larawan sa SPIFFS
  9. Gumawa ng isang kahilingan sa HTTPS na link ng larawan
  10. Para sa ESP8266 lamang, i-cache ang file ng larawan sa SPIFFS
  11. Ipakita ang larawan
  12. I-print ang kasalukuyang oras sa larawan

Hakbang 7: Masiyahan

Mag-enjoy!
Mag-enjoy!
Mag-enjoy!
Mag-enjoy!

Panahon na upang magdagdag ng higit pang mga paboritong larawan sa ibinahaging Photo Album at ilagay ang Google Photo Clock na ito sa iyong mesa.

Inirerekumendang: