Tartalomjegyzék:

Valódi bináris óra NTP szinkronizálással: 4 lépés
Valódi bináris óra NTP szinkronizálással: 4 lépés

Videó: Valódi bináris óra NTP szinkronizálással: 4 lépés

Videó: Valódi bináris óra NTP szinkronizálással: 4 lépés
Videó: 8 часов ОБУЧАЮЩИХ СЛОВ ПО АНГЛИЙСКОМУ ЯЗЫКУ с примерами фраз | Практика английского языка 2024, November
Anonim
Valódi bináris óra NTP szinkronizálással
Valódi bináris óra NTP szinkronizálással
Valódi bináris óra NTP szinkronizálással
Valódi bináris óra NTP szinkronizálással

Egy valódi bináris óra a napszakot egy teljes nap bináris törtjeinek összegeként jeleníti meg, szemben a hagyományos "bináris órával", amely az órát/percet/másodpercet tartalmazó binárisan kódolt tizedes számjegyként jeleníti meg az időt. A hagyományos "bináris órák" valóban binárisan kódolt-tizedes-kódolt-sexagesimalt használnak. Micsoda rendetlenség! Az igazi bináris órák rendkívül leegyszerűsítik a dolgokat.

Egy valódi bináris órában az első számjegy a fél napot, a második számjegye a negyedik napot, a harmadik számjegy a nyolcadik napot, stb. Nagyon gyorsan leolvasható bármilyen felbontásra (természetesen gyakorlattal)). Az első számjegy hatékonyan kódolja az AM versus PM -et, a második számjegy pedig azt, hogy kora AM/PM vagy késő AM/PM stb.

A valódi bináris órám tervezésekor tizenkét számjegyű felbontást használtam, így a nap 2^12 = 4096 részre van osztva (minden lépés körülbelül 20 másodperc). Ahelyett, hogy az összes számjegyet egy sorban tartaná, a 12 számjegyet 3 4 számjegyből álló sorra osztották. Bár a tényleges bináris számjegyek változatlanok, ez lehetővé teszi, hogy az óra 3 binárisan kódolt hexadecimális számként legyen leolvasva, az első sor a nap 16. részét (1,5 óra), a második sor a nap 256-dik részét (~ 5 perc) mutatja, és a harmadik sor a nap 4096. részét (~ 20 másodperc) mutatja.

Az óra ESP8266 használatával szinkronizálva van az NTP -vel (Network Time Protocol). Az ESP8266 úgy van konfigurálva, hogy indításkor az óra gombjának megnyomása beállítási módba küldi. Beállítási módban az óra létrehoz egy WiFi hálózatot, amely kiszolgál egy weboldalt, amellyel megadhatja saját wifi beállításait, NTP szerverét és időzónáját. Ez az információ az ESP8266 EEPROM -jában tárolódik, és az óra óra üzemmódban való indulásakor olvassa be, hogy csatlakozzon az internethez és lekérje az időt.

Kellékek:

  • NodeMCU ESP8266
  • WS2812B LED szalag
  • Nyomógomb
  • 470 Ohm ellenállás
  • 10K ohmos ellenállás
  • 470 uF kondenzátor
  • Popsicle botok
  • Golyók
  • Fa (vagy más anyaglap) a tokhoz

1. lépés: Áramkör

Áramkör
Áramkör
Áramkör
Áramkör
Áramkör
Áramkör
Áramkör
Áramkör

A kijelző érdekében ez a projekt egy RGB led szalagot használ, amely 3 sorban van elhelyezve. A WS2812B ledek csíkjából levágtam 3 darab 8 LED -es csíkot, és összeforrasztottam őket. (Törékenyek, és a kis párnák forrasztása nehézségekbe ütközhet. A forrasztott végeket elektromos szalaggal tekertem, hogy szigetelje őket minden hajlítástól.) Annak ellenére, hogy csak 4 ledre volt szükségem soronként, 8 -as csíkokat vágtam ki. nagyobb távolság lehet a lámpák között, ha csak minden más ledet használ. Ezeket a csíkokat ezután egy lapos, popsicle botokból készült alapra ragasztották. Minden sor között kettős réteg popsicle botok biztosítják a profilt, így az előlap az óra tokjának belső oldalához tapadhat (lásd a fotót).

A led szalag a NodeMCU JE -jéből és GND -jéből táplálkozik. A VU (szinte) közvetlenül az USB -ről érkezik, így 5 V -ot biztosít a WS2812B LED -ekhez, annak ellenére, hogy az ESP8266 3.3 V -on működik. A WS2812B szalag tápellátására 470 uF kondenzátort helyeztem, hogy megvédje a LED -eket. A led szalag adatai a 470 ohmos ellenálláson keresztül csatlakoznak a NodeMCU D3 tűjéhez. A WS2812B LED -ek ESP8266 vezérlésével kapcsolatos további információkért tekintse meg ezt az útmutatót. Az áramkört proto-boardra forrasztották néhány férfi-nő fejléccel a NodeMCU számára.

Nyomógombot is csatoltak a NodeMCU D6 -hoz. Ezt a nyomógombot az óra indításakor lehet megnyomni, hogy beállítási módba küldje (amelyben a wifi beállítások, az NTP szerver és az időzóna beállításai módosíthatók). Az egyik végén a nyomógomb a D6 -hoz és a GND -hez van csatlakoztatva egy 10K ohmos ellenálláson keresztül, a másik végén pedig az áramhoz. Ha a gombot nem nyomják meg, a D6 alacsony értéket mutat; megnyomásakor a D6 magas értéket mutat.

2. lépés: Szoftver

Szoftver
Szoftver

Az ESP8266 szoftverét Arduino kóddal írták. A LED -eket a FastLED könyvtár használja, az NTP szinkronizálást pedig az NTPClient könyvtár végzi. Az időt az NTP óránként szinkronizálja.

A beállítási funkció elindításakor a program ellenőrzi, hogy nincs -e megnyomva a D6 -hoz csatlakoztatott gomb. Ha igen, az ESP8266 létrehoz egy wifi hálózatot (az SSID és a jelszó megváltoztatható a kódban, az alapértelmezett SSID "TrueBinary", a jelszó pedig "thepoweroftwo"). Csatlakozzon ehhez a hálózathoz bármely eszközről, és keresse meg a 192.168.1.1 címet. Az ESP8266 egy weboldalt szolgál ki űrlapokkal, ahol megadhatja a wifi SSID -jét és jelszavát, az előnyben részesített NTP -kiszolgálót és az időzóna eltolását az UTC -től. Miután ezeket az űrlapokat elküldte az ESP8266 -nak, az adatokat az EEPROM belső tárhelyére menti.

Ha nem nyomja meg a gombot, az óra rendesen elindul, beolvassa az EEPROM beállításait, csatlakozik a wifi -hez az NTP használatához, és elkezdi megjeleníteni az időt.

MEGJEGYZÉS: a setDisplay (int index) függvény a 0-11-es számjegyeket veszi fel, ahol a 0 az első számjegy (a fél nap), a 11 pedig az utolsó (1/4096 egy nap), és bekapcsolja a megfelelő LED-et a " ledek "tömb. Ezt a funkciót a kijelző beállításának megfelelően kell kitölteni. A megjegyzett példám megfelel annak, hogyan forrasztottam a sorokat cikk-cakk módon, nem pedig végpontok között, és kihagytam minden más LED-et.

3. lépés: Ház

Ház
Ház
Ház
Ház
Ház
Ház

Az óra elhelyezéséhez egy festett fa szöget használtam, ami véletlenül volt. Az egyik külső felületen 12 lyukat fúrtam a LED -ek helyzetének megfelelő rácsba. Ezután a LED-eket a szög belsejéhez ragasztottam úgy, hogy a popsicle botok emelt felületeit a sorok között a fához ragasztottam (az ábrán látható módon). A LED -ek fényének eloszlatásához üveggolyókat ragasztottam a lyukak tetejére. Ezt úgy értem el, hogy minden márvány alsó felét epoxigyantaba mártottam, majd a lyukakba helyeztem. A NodeMCU-t és a proto-kártyát a szög másik belső felületébe csavarják. Az oldalakat kis fa háromszögekkel fedték le, faragasztóval rögzítve. Az egyik oldalon van egy lyuk a NodeMCU mikro USB portjához, és a sarokban egy vágás a nyomógomb számára.

4. lépés: Kész

Kész!
Kész!
Kész!
Kész!

Elkészült az igazi bináris óránk! A beállításhoz tartsa lenyomva a gombot, miközben csatlakoztatja, hogy beállítási módba állítsa, majd írja be a WiFi hitelesítő adatokat a weboldalára. Beállítás után az óra bárhova csatlakoztatható, és automatikusan csatlakozik az internethez, és elkezdi megjeleníteni az időt bináris formában.

Szükség van egy kis gyakorlásra, hogy valódi bináris formátumban olvassa az időt, de ez egy szórakoztató gyakorlat, és egy idő után gyors módja annak, hogy egyetlen pillantással megszerezze az időt!

Ajánlott: