İçindekiler:

Yine Başka Bir Saat: 4 Adım
Yine Başka Bir Saat: 4 Adım

Video: Yine Başka Bir Saat: 4 Adım

Video: Yine Başka Bir Saat: 4 Adım
Video: Merhametine Dön (2021 Tek Edit) 2024, Kasım
Anonim
Bir Başka Saat
Bir Başka Saat

Daha önceki yüklemelerimden de anlaşılacağı üzere bazı eski tartım ekipmanlarından 7 Segment Display board elde ettim.

Önceki çabam, Gerçek Zamanlı Saat modülüne sahip bir Arduino kullanıyordu.

Bu Eğitilebilir Kitap, bir NTP sunucusuna bağlı bir ESP8266 D1 Mini kullanır!

Kod, ESP8266WiFi kitaplığındaki bir örneğe dayanmaktadır.

7 Segment ekran kablolaması ile ilgili nette onlarca örnek olduğu için detaya girmeyeceğim. Sahip olduğum 2 kart, MAX7219 kod çözücü sürücü çipini kullanıyor, bunlar 8 x 7 Segment Ekranı kontrol etmek için sadece 3 pin gerektiriyor.

Ayrıca tarihi göstermek istedim, bu yüzden 3 pin daha gerekliydi!

Günü görüntülemek için 7 çıktıya daha ihtiyacım vardı! Çıkış pinlerinin eksikliğini gidermek için Neo Pixel ekran, 1 pin, 7 çıkış seçtim!

Adım 1: Donanım

Donanım
Donanım
Donanım
Donanım
Donanım
Donanım

Gerekli parçalar

12 x 7 segmentli ekranlar (benim durumumda çok fazla kablo tasarrufu sağlayan birkaç eski tartı makinesi kartına sahip olduğum için çok şanslıydım.

1 x ESP8266 D1 Mini VEYA 7 veya daha fazla dijital çıkışa sahip herhangi bir ESP8266

2 x MAX7129 (Yine, tartı makinesi ekran kartlarına sahip olduğum için şanslıydım)

1 x Düz 8 NeoPixel ekran

2 x seviye değiştirici

1 x 5v güç kaynağı

2. Adım: GÜN Ekranı

GÜN Ekranı
GÜN Ekranı
GÜN Ekranı
GÜN Ekranı

Bunun için taban için eski bir kredi kartının bir kısmını, bir miktar kalın kart (benim durumumda 300gsm fotoğraf kağıdı) ve bir miktar çift taraflı montaj bandı kullandım.

Bir zanaat bıçağıyla kesilmiş yuvalara sahip sadece 2 şerit şeridi. Boşluk, NeoPixel kartındaki LED'ler arasındaki mesafedir.

Kartın ince şeritleri her gün için bir kanal oluşturmak için kullanılır.

Gün adları, bir Dymo etiketleme makinesi ile şeffaf bant üzerine basılmıştır.

3. Adım: Bağlanma ve Yazılım

ESP8266 ürün yelpazesi, a) Kir ucuzdur

b) Çok az harici bileşene ihtiyaç duyarlar

Ekranlar için 5v'ye ve ESP için 3v'ye ihtiyacım vardı, bu yüzden 5v güç kaynağına sahip birkaç seviye değiştirici kullandım.

MAX7219, 8 adede kadar ekranı kontrol etmek için yalnızca 3 pime ihtiyaç duyar, bunlar pim 1 (Din), 12 (Yük / CS) ve 13 (Saat)'dir.

Bunlar bir seviye değiştirici ile bağlanır.

Kod aşağıdaki gibidir:

// girişler: DIN pini, CLK pini, LOAD pini. çip sayısıLedControl mydisplay = LedControl(3, 2, 1, 1)

LedControl datedisp = LedControl(7, 6, 5, 1);

Çip sayısı 1'e ayarlandı çünkü 2 ekranı DOUT'u kullanmak ve basamaklamak yerine ayrı öğeler olarak görüyorum.

NeoPixel, dijital çıkış 4'e bağlı

#define PIN 4

#define NUMPIXELS 7 (8 LED'den 1'ini yok sayarak)

Hepsi GitHub'da bulunabilecek birkaç #includes var.

Yönlendirici SSID ve ŞİFRE girilmeli ve bir NTP Sunucusu seçilmelidir, (Google'da ücretsiz NTP Sunucuları aradım).

Adım 4: Açılışta

Güç verildiğinde, NeoPixel LED'ler dalgalanır, ardından yönlendiriciye bir bağlantı kurulana kadar 7 segmentli ekranlar alternatif 'c' ve '8' gösterir.

Tüm segmentlerde bir c8 kontağı görünüyorsa, bu bir NTP sunucu bağlantısı kurulmadığı anlamına gelir, bir sıfırlama bunu çözmelidir.

Bir bağlantı kurulduğunda, Saat ve Tarih görüntülenir, Gün mavi bir LED ile gösterilir.

Önerilen: