İçindekiler:

NTP Sync ile Gerçek İkili Saat: 4 Adım
NTP Sync ile Gerçek İkili Saat: 4 Adım

Video: NTP Sync ile Gerçek İkili Saat: 4 Adım

Video: NTP Sync ile Gerçek İkili Saat: 4 Adım
Video: AKILLI SAAT Ten Brawl Stars Oynamak #shorts 2024, Kasım
Anonim
NTP Sync ile Gerçek İkili Saat
NTP Sync ile Gerçek İkili Saat
NTP Sync ile Gerçek İkili Saat
NTP Sync ile Gerçek İkili Saat

Gerçek bir ikili saat, saati saat/dakika/saniyeye karşılık gelen ikili kodlanmış ondalık basamaklar olarak görüntüleyen geleneksel bir "ikili saat"in aksine, günün saatini tam bir günün ikili kesirlerinin toplamı olarak görüntüler. Geleneksel "ikili saatler" gerçekten ikili kodlanmış-ondalık-kodlanmış-sexagesimal kullanıyor. Ne dağınıklık! Gerçek ikili saatler işleri son derece basitleştirir.

Gerçek bir ikili saatte, ilk hane size yarım gün, ikinci hane çeyrek gün, üçüncü hane günün sekizde biri, vb. söyler. Çok hızlı bir şekilde herhangi bir çözünürlükte okunabilir (elbette pratik yaparak).). İlk hane, AM'ye karşı PM'yi etkin bir şekilde kodlar, ikinci hane, AM/PM erken mi yoksa AM/PM geç mi olduğunu kodlar, vb.

Gerçek ikili saatimi tasarlarken on iki basamaklı çözünürlük kullandım, böylece gün 2^12=4096 parçaya bölündü (her artış yaklaşık 20 saniyedir). Tüm rakamları bir satırda tutmak yerine, 12 basamak 4 basamaklı 3 satıra ayrıldı. Gerçek ikili rakamlar değişmese de, bu, saatin 3 ikili kodlanmış onaltılık basamak olarak okunmasına izin verir, ilk satır günün 16'sını (1.5 saat), ikinci satır günün 256'sını (~5 dakika) gösterir ve günün 4096'sını gösteren üçüncü satır (~20 saniye).

Saat, bir ESP8266 kullanılarak NTP (Ağ Zaman Protokolü) ile senkronize edilir. ESP8266, başlangıçta saat üzerindeki bir düğmeye basıldığında onu ayarlar moduna gönderecek şekilde yapılandırılmıştır. Ayarlar modunda saat, kendi wifi ayarlarınızı, NTP sunucunuzu ve saat diliminizi girmek için kullanılabilecek bir web sayfası sunan bir WiFi ağı oluşturacaktır. Bu bilgi, ESP8266'nın EEPROM'unda saklanır ve saat modunda internete bağlanabilmesi ve saati alabilmesi için saat başladığında okunur.

Gereçler:

  • DüğümMCU ESP8266
  • WS2812B LED şerit
  • Butona basınız
  • 470 Ohm direnç
  • 10K Ohm direnç
  • 470 uF kapasitör
  • dondurma çubukları
  • Mermerler
  • Kasa için ahşap (veya başka bir malzeme tabakası)

Adım 1: Devre

Devre
Devre
Devre
Devre
Devre
Devre
Devre
Devre

Bir ekrana sahip olmak için bu projede 3 sıra halinde yerleştirilmiş bir RGB led şerit kullanılmaktadır. WS2812B ledlerin şeritlerinden 3 şerit 8 led kesip birbirine lehimledim. (Kırılgandırlar ve küçük pedleri lehimlemek zor olabilir. Lehimlenmiş uçları herhangi bir bükülmeden yalıtmak için elektrik bandıyla sardım.) Sıra başına sadece 4 led'e ihtiyacım olmasına rağmen 8'li şeritler kestim. sadece diğer tüm ledleri kullanarak ışıklar arasında daha fazla boşluk olabilir. Bu şeritler daha sonra buzlu şeker çubuklarından yapılmış düz bir tabana yapıştırıldı. Her sıra arasında, çift katmanlı bir buzlu şeker çubuğu profili sağlar, böylece ön yüz saatin kasasının içine yapışabilir (fotoğrafa bakın).

Led şerit, NodeMCU'nun VU ve GND'sinden güç alır. VU, (neredeyse) doğrudan USB'den gelen güçtür, bu nedenle ESP8266 3.3V'da çalışsa bile WS2812B LED'lerine 5V sağlar. Ledleri korumak için WS2812B şeridinin gücüne 470 uF'lik bir kapasitör yerleştirdim. Led şerit için veriler, 470 Ohm direnç aracılığıyla NodeMCU'nun D3 pinine bağlanır. ESP8266 ile WS2812B ledlerinin nasıl kontrol edileceği hakkında daha fazla bilgi için bu talimata bakın. Devre, NodeMCU için bazı erkek-dişi başlıklarla proto-kart üzerine lehimlendi.

NodeMCU'nun D6'sına bir basma düğmesi de eklenmiştir. Bu düğmeye, saat başlarken, ayarlar moduna (wifi ayarları, NTP sunucusu ve saat dilimi tercihlerinin değiştirilebildiği) göndermek için basılabilir. Buton bir uçta 10K Ohm direnç üzerinden D6'ya ve ayrıca GND'ye, diğer uçta ise güce bağlıdır. Düğmeye basılmadığında, D6 düşük okur; basıldığında, D6 yüksek okur.

2. Adım: Yazılım

Yazılım
Yazılım

ESP8266'nın yazılımı Arduino kodu kullanılarak yazılmıştır. LED'ler FastLED kitaplığı kullanılarak işlenir ve NTP senkronizasyonu NTPClient kitaplığı tarafından yapılır. Zaman, her saat başı NTP tarafından senkronize edilir.

Kurulum fonksiyonunun başlangıcında program, D6'ya bağlı butona basılıp basılmadığını kontrol eder. Öyleyse, ESP8266 bir wifi ağı oluşturur (kodda SSID ve parola değiştirilebilir, varsayılan SSID "TrueBinary" ve parola "thepoweroftwo"dur). Bu ağa herhangi bir cihazdan bağlanın ve 192.168.1.1'e gidin. ESP8266, wifi SSID'nizi ve şifrenizi, tercih edilen NTP sunucusunu ve UTC'den saat dilimi farkını girebileceğiniz formlar içeren bir web sayfası sunacaktır. Bu formlar ESP8266'ya gönderildikten sonra, bilgileri dahili EEPROM deposuna kaydedecektir.

Düğmeye basılmazsa saat normal şekilde başlar, EEPROM'dan ayarları okur, NTP'yi kullanmak için wifi'ye bağlanır ve saati görüntülemeye başlar.

NOT: setDisplay(int index) işlevi, 0-11 arasındaki basamak sayısını alır, burada 0 ilk basamaktır (yarım gün) ve 11 sondur (günün 1/4096'sı) ve " ledler" dizisi. Bu işlev, ekranı nasıl yapılandırdığınıza göre doldurulmalıdır. Yorumladığım örneğim, satırları uçtan uca yerine zikzak tarzında nasıl lehimlediğime ve diğer tüm LED'leri atladığıma karşılık geliyor.

Adım 3: Konut

Konut
Konut
Konut
Konut
Konut
Konut

Saati yerleştirmek için, sahip olduğum boyalı ahşap açısını kullandım. Bir dış yüzde, LED'lerin konumlarına karşılık gelen bir ızgarada 12 delik açtım. Daha sonra buzlu şeker çubuklarının yükseltilmiş yüzlerini sıralar arasında tahtaya yapıştırarak (gösterildiği gibi) LED'leri açının içine yapıştırdım. LED'lerden gelen ışığı dağıtmak için deliklerin üzerine cam bilyeler yapıştırdım. Bunu, her bir mermerin alt yarısını epoksi reçinesine daldırarak ve ardından deliklere yerleştirerek başardım. NodeMCU ve proto-board, açının diğer iç yüzüne vidalandı. Kenarlar, ahşap tutkalı ile tutturulmuş küçük ahşap üçgenler kullanılarak kaplandı. Yanlardan birinde NodeMCU'nun mikro USB bağlantı noktası için bir delik ve buton için köşede bir kesim vardır.

Adım 4: Bitti

Tamamlandı!
Tamamlandı!
Tamamlandı!
Tamamlandı!

Gerçek ikili saatimiz bitti! Ayarlamak için, ayarlar moduna geçirmek için fişe takılıyken düğmeyi basılı tutun ve ardından web sayfasında WiFi kimlik bilgilerini girin. Kurulduktan sonra saat herhangi bir yere takılabilir ve otomatik olarak internete bağlanacak ve saati ikili olarak görüntülemeye başlayacaktır.

Zamanı gerçek ikili formatta okumak biraz pratik gerektirir, ancak eğlenceli bir alıştırmadır ve bir süre sonra sadece bir bakışta zamanı almanın hızlı bir yolu haline gelir!

Önerilen: