İçindekiler:

Tweerstationneke A.k.a. Hollanda Hava İstasyonu: 4 Adım
Tweerstationneke A.k.a. Hollanda Hava İstasyonu: 4 Adım

Video: Tweerstationneke A.k.a. Hollanda Hava İstasyonu: 4 Adım

Video: Tweerstationneke A.k.a. Hollanda Hava İstasyonu: 4 Adım
Video: Голубая стрела (1958) фильм 2024, Temmuz
Anonim
Tweerstationneke A.k.a. Hollanda Hava İstasyonu
Tweerstationneke A.k.a. Hollanda Hava İstasyonu

Babam her zaman en son haberler ve en son hava durumu bilgileriyle ilgilenir. Böylece, 76 yaşındayken bana mükemmel bir doğum günü hediyesi verdi: Hiçbir saçmalığı olmayan, her zaman açık olan küçük bir hava durumu istasyonu, bütün gün sessizce bir köşede oturuyor ve en son tahminlerin bir özetini veriyor.

İki Hollandalı web sitesi etrafında tasarlanmıştır. Muhtemelen bunu bu konunun komik yerel başlığında görebilirsiniz! Biri her 10 dakikada bir şehir başına yerel hava tahminini json formatında verir. Diğeri, önümüzdeki iki saat için yağmur tahminini her zaman bilmeniz gereken düz metin biçiminde verir. Eminim Hollanda'da yaşamıyorsanız, bu konuyu başka bir hizmete kolayca uyarlayabilirsiniz.

Gereçler

  • Bir ESP8266 kartı; Wemos D1 mini kullanmanızı öneririz
  • 128*160 noktalı 1.8 inç TFT ekran; 16 bit renk
  • Birkaç kablo
  • Olduğu gibi veya kendi programınızı oluşturmak için başlamak için program
  • Hepsini bir araya getirmek için güzel bir kutu. Standart bir tane kullanın veya ekli tasarımla kendinizinkini yazdırın

Adım 1: Prototipi Yapın

Prototipi Yap
Prototipi Yap

Ekranı ve denetleyiciyi bağlama

Küçük bir düz kablo kullanın ve kartı ve TFT ekranı birlikte lehimleyin. Parça iyonlarını doğru şekilde bağlamak için listeyi kullanın

TFT EKRAN ------------------ WEMOS

LED ---------------------------------- D8 SCK ---------------- --------------- D5SDA ------------------------------- D7A0 -- -------------------------------- D3SIFIRLAMA ----------------- ----------- D2CS ---------------------------------- D4GND --- ---------------------------- GNDVCC --------------------- ---------- 3V3

Alternatif olarak LED'i pin D8 yerine 3v3'e koyabilirsiniz. Cihazın gece 23:00 civarında uyku moduna geçmesi ve tekrar 07:00 civarında uyanması için pin D8'i kullandım. Etkili bu, saati kontrol etmek için başlığı okuduğundan, bu saatten sonra hava bültenini ilk okuduğu an olacaktır. Bu cihazda gerçek zamanlı saat yoktur.

Bunların hepsi işe yararsa, usb kablonuzu Wemos'a takın ve yazılımı yükleyin. Her şey işe yararsa, kutuyu oluşturmaya başlayabilirsiniz.

Adım 2: Program Tasarımı

Program tasarımı
Program tasarımı

Bu hava durumu cihazı hakkındaki fikirlerim

  • Başka bir wifi ortamına kolayca uyarlanabilir
  • Hava tahminini ve yağmur tahminini görüntüleyin
  • Düğme yok
  • Ses yok, basit qui, tüy yok

Bunu akılda tutarak, bilinen bir Wifi ağını bulamadığında WifiManager koduyla başlayan bir program oluşturdum. Kendi ağını oluşturur ve ekranda adını gösterir. Bu size Wifi parametrelerini kendi ev ağınıza ayarlama şansı verir.

Bu kurulumdan sonra, her 20 saniyede bir hava tahminini ve yağmur yağmasını sırayla gösterir. Herhangi bir nedenle bir sonraki tahmini okumak mümkün değilse, ekranın sağ tarafında küçük bir hata numarası görüntülenecektir; ve önceki resim gösterilecektir. Bir sonraki çalıştırmada bilgiyi almak için yeni bir girişimde bulunulur.

Hava durumu bilgisi siteden json tarzı bir mesajla alınır. İçindeki bilgiler dönüştürülür ve global değişkenlere kaydedilir. Bu şekilde, bilginin alınmasını onu görüntülemekten ayırabiliriz. Hava durumunu 10 dakikada bir daha hızlı almak için hiçbir neden yoktur.

Yağmur yağışını almak daha da basittir. 0..255 değeri olarak beklenen yağmur miktarı ile düz metin biçiminde sunulur; dikey çubuk; her satırda bir zaman. Bu, sonraki 2 saat boyunca her 5 dakikada bir. Rainvalue, küçük değerlerin farkı daha büyük değerler olarak göstermek için daha fazla alan sağladığı akıllı bir şekilde sunulur. Kullanılan formül aşağıdaki gibidir:

mmsaat = yuvarlak(pow(10, (yağmur değeri - 109) / 32) * 10) / 10;

Noktanın arkasında 1 ondalık sayı olduğundan emin olmak için "çarpı 10, 10'a böl"ün hile olduğunu unutmayın. Önümüzdeki 2 saat içinde beklenen maksimum yağış miktarına bağlı olarak grafik için kullanılan 3 ölçek vardır;

  1. Maksimum 5 mm/saat bekleniyor
  2. Maksimum 20 mm/saat bekleniyor
  3. Maks, tahmindeki en yüksek değerden alınır

Burada Hollanda'da tüm zamanların en yüksek değeri yaklaşık 80 mm/saattir; yani bu ölçek mükemmel yapacak. Diğer ülkeler için bunu değiştirmek akıllıca olabilir.

Adım 3: Program Kodu

Program kodu
Program kodu

Düzenleyici ayarları

Bu hava durumu cihazının yazılımı Arduino programlama ortamında oluşturulmuştur. Size kolaylık sağlamak için burada ekli bulacaksınız. Olduğu gibi kullanın; veya ihtiyaçlarınıza göre değiştirin. TFT ekranında görüntülenebilen tüm metinler programın üstünde TANIMLANIR; yani isterseniz kolayca kendi dilinize değiştirebilirsiniz. Wemos D1 mini'yi kullandım, ancak benzer panolar da işe yarayacak.

Arduino ortamında aşağıdaki ayarları kullandım;

  • Yönetim Kurulu: LOLIN(WEMOS) D1 RA & Mini
  • Yükleme Hızı: 115200
  • CPU frekansı: 80 MHz
  • Flaş Boyutu: 4M (SPIFFS Yok) V2 Alt Bellek Devre Dışı

Döngüyü() daha kolay ve daha okunabilir hale getirmek için yazılım zamanlayıcıları kullanılır. Bilgilerin görüntülenmesi, bilgilerin indirilmesinden ayrılmıştır. Bu sayede tüm programı değiştirmeye gerek kalmadan diğer ekran boyutlarını vs. kullanabiliriz.

.ino dosyasını kullanın ve arduino düzenleyicisine yükleyin. Tahtanızı editörde kurun. Gerekli C-stili PROGMEM dizilerinin programa dahil edilmesini sağlayan başlık dosyasını ekleyin.

hafıza kartı

Mevcut 1,8 inç ekranların çoğunun ekranın arkasında bir SD kart yuvası olduğunu unutmayın. Bu, büyük resimleri kartta saklamanıza yardımcı olan hoş bir özelliktir. Mikro denetleyicilerin çoğunda kartta çok fazla bellek yoktur, bu da yardımcı olur.

SD kartın ekranla çalışmasını sağlamak için çok zaman harcamama rağmen, uygulanabilir bir durum elde edemedim. Ekranı kullanabilirim; SD karttan bir dosyayı başarıyla aldım, ancak bundan sonra artık TFT ekranına ulaşamadım. Kütüphaneleri değiştirmek, kütüphanelerin sırasını değiştirmek ve diğer olasılıkları ekarte etmek için programı en küçük bedene "soyunmak" bana yardımcı olmadı.

Hayal kırıklığıma eklemek için; İnternette benzer şeyler yapan ve olumlu sonuç veren tonlarca örnek var, hmmm. TFT ekranımda bir donanım sorunu olabilir mi? Yoksa aklıma gelmeyen bir şey mi? Bir sonraki deneme için herhangi bir öneriye açığız. Sonunda birkaç akşam geçirdikten sonra; O yoldan ayrılmaya karar verdim. Resimler sadece 50x50 piksel olduğundan (her biri 16 bit renkte 5000 bayt ile sonuçlanır) ESP bunu PROGMEM'de kolaylıkla saklayabilir. Yani kullandığım hile buydu.

Bu seçim bir başka zorluğu da beraberinde getirdi. Sahip olduğum BMP resmini okunabilir bir formata nasıl alabilirim. Biraz araştırmadan sonra, bu bulmacayı daha önce çözen Henning Karlsen'in sitesini keşfettim.-p.webp

4. Adım: Kutuyu Oluşturun

Kutuyu Oluştur
Kutuyu Oluştur
Kutuyu Oluştur
Kutuyu Oluştur
Kutuyu Oluştur
Kutuyu Oluştur

Bu ihtiyacım olan ilk kutu değil. Çok sayıda standart kutu tedarikçilerden temin edilebilir. Küçük bir testere, bıçak, matkap vb. kullanarak kutudaki ekran için bir delik oluşturmak kolaydır. Ama hiçbir zaman tam olarak güzel bir dikdörtgen yapmayı başaramadım. Muhtemelen yeterli beceri ve/veya sabır yok;-)

Çözüm: Şanslıydım. Teknik şeylerle uğraşmaya gelince süpermen gibi bir kolejim var. Buna 3D tasarım ve baskı da dahildir. Bu yüzden boş zamanının çoğunu TFT ekranı ve mikro denetleyiciyi ölçmek ve etrafında bir kutu oluşturmak için ayırmaya karar verdi. Her şey çok güzel uyuyor, resimlere bir bakın. Hatta ekran için ek parçalar, USB konektörü için bir delik ve mikro denetleyiciyi sabitlemek için bir yer içerir.

Bu süper iş için teşekkürler Arjan!!! Daha da iyisi, herkesin işine erişmesini sağlamak için çok nazikti, bu yüzden dosyalarını bağlantıdan indirir ve kendi 3D yazıcınız için kullanırsanız, aynı kutuyu içerikle oluşturabilirsiniz.

Önerilen: