İçindekiler:
Video: NTP Sync ile Gerçek İkili Saat: 4 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:16
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
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
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
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
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:
Arduino ile Gerçek Zamanlı Saat: 3 Adım
Arduino İle Gerçek Zamanlı Saat: Bu projemizde Arduino ve RTC modülü yardımıyla bir saat yapacağız. Arduino'nun gerçek zamanı gösteremeyeceğini bildiğimiz için, LCD'de doğru zamanı görüntülemek için RTC modülünü kullanacağız. Tüm adımı dikkatlice okuyun, size yardımcı olacaktır
DS1307 ve DS3231 Gerçek Zamanlı Saat Modüllerini Arduino İle Kullanmak: 3 Adım
Arduino ile DS1307 ve DS3231 Gerçek Zamanlı Saat Modüllerini Kullanma: Çeşitli kaynaklardan DS1307 ve DS3231 gerçek zamanlı saat modüllerinin Arduino ile nasıl kullanılacağına dair istekler almaya devam ediyoruz - bu yüzden bu, bunların nasıl kullanılacağına dair iki bölümlük bir eğitimin ilki. Bu Arduino dersi için bize iki gerçek zamanlı saat modülümüz var
DS1307 Gerçek Zamanlı Saat (RTC) Modülü ve 0.96: 5 Adım Kullanan Arduino Tabanlı Saat
DS1307 Gerçek Zamanlı Saat (RTC) Modülü & 0.96 Kullanan Arduino Tabanlı Saat: Merhaba arkadaşlar bu dersimizde DS1307 gerçek zamanlı saat modülü & OLED ekranlar.Bu yüzden zamanı DS1307 saat modülünden okuyacağız. Ve OLED ekranına yazdırın
Arduino IDE Kullanarak M5stick C İle Saat Yapımı - M5stack M5stick-C ile RTC Gerçek Zamanlı Saat: 4 Adım
Arduino IDE Kullanarak M5stick C İle Saat Yapımı | M5stack M5stick-C ile RTC Gerçek Zamanlı Saat: Merhaba arkadaşlar bu talimatta Arduino IDE kullanarak m5stick-C m5stack geliştirme kartı ile saat yapmayı öğreneceğiz. Ekranda ayın haftası
Bilgisayarınız için Gerçek Çan Çarpan Saat ve Yangın Söndürücü Çarpan Saat Yapın.: 3 Adım (Resimlerle)
PC'niz için Gerçek Bir Çan Çarpan Saat ve Bir Yangın Söndürücü Çarpan Saat İnşa Edin: Pirinç bir zil, küçük bir röle birkaç şey daha ve gerçek bir zil masaüstünüzde saatleri çalabilir. Bu proje Windows ve Mac'te çalışsa da Ayrıca OS X, çöpte bulduğum bir PC'ye Ubuntu Linux kurmaya karar verdim ve bunun üzerinde çalıştım: Hiç