İçindekiler:

NodeMcu ile Wifi Üzerinden (Kuzey Işıkları Göstergesi) Herhangi Bir Web Sitesinden Veri Çekin ve Ortamda Görüntüleyin: 6 Adım
NodeMcu ile Wifi Üzerinden (Kuzey Işıkları Göstergesi) Herhangi Bir Web Sitesinden Veri Çekin ve Ortamda Görüntüleyin: 6 Adım

Video: NodeMcu ile Wifi Üzerinden (Kuzey Işıkları Göstergesi) Herhangi Bir Web Sitesinden Veri Çekin ve Ortamda Görüntüleyin: 6 Adım

Video: NodeMcu ile Wifi Üzerinden (Kuzey Işıkları Göstergesi) Herhangi Bir Web Sitesinden Veri Çekin ve Ortamda Görüntüleyin: 6 Adım
Video: Bilgisayar çöp oldu #vlog #keşfet #birgünüm #ironia #bilgisayar #arkadaş #tavsiye 2024, Temmuz
Anonim
NodeMcu ile Wifi (Kuzey Işıkları Göstergesi) Üzerinden Herhangi Bir Web Sitesinden Veri Çekin ve Ortamda Görüntüleyin
NodeMcu ile Wifi (Kuzey Işıkları Göstergesi) Üzerinden Herhangi Bir Web Sitesinden Veri Çekin ve Ortamda Görüntüleyin

Motivasyonum: IoT (nesnelerin interneti) projeleri yapmak için bir NodeMCU (ESP8266 modülünde yerleşik) kurma/kullanma konusunda ÇOK SAYIDA talimat gördüm. Bununla birlikte, bu öğreticilerin çok azı, çok acemi bir kişinin baştan sona izlemesi için tüm ayrıntılara/kodlara/diyagramlara sahipti ve hiçbiri tam olarak istediğim şeyi yapmadı.

Bu neyi kapsayacak?: Bu, aşağıdakiler dahil, bilmeniz gereken (ve benim anlamadığım) her şeyi kapsayacaktır:

  1. Malzemeler (özellikle kullandıklarım)
  2. Arduino, NodeMcu, ESP8266, fark nedir?
  3. NodeMcu'yu kullanmaya başlama
    1. Yazılımın ayarlanması (Arduino IDE)
    2. Bir LED'in yanıp sönmesi
    3. NodeMcu'ya güç sağlamak için seçenekler
    4. İnternete bağlanma
  4. Bir web sitesinden veri nasıl çekilir

    1. Web sitesinde istediğiniz bilgiye "işaret etmek"
    2. Thingspeak/ ThingHTTP/ API'ler (korkmayın, kodlama gerekmez)
    3. Bu verilere NodeMCU'dan erişme
  5. verileri görüntüleme

    1. Ne kullandım (7 segmentli bir ekran nasıl bağlanır)
    2. Bazı fikirler/daha fazla zamanla yapacağım şeyler
  6. Sanırım bir kutu nasıl yapılır

SORUMLULUK REDDİ: Bunu nasıl yapacağımı öğrenmek için bir sürü video izledim ve kodun neredeyse tamamı diğer kaynaklardan bir araya getirildi ve hepsini hatırlayamıyorum. Thingshttp ilhamının ana kaynağı, aslında tarif ettiğim şeyi yapan bu adamdı, ancak dokunmatik ekranla ilgili şeyleri ve kafa karıştırıcı olmayan şeyleri gözden geçirirken buldum. Bu öğretilebilirliği, belirli bir nesneden ziyade NodeMcu ve tür IoT projelerine bir giriş olarak görüyorum, ancak bu özel (Kuzey Işıkları) göstergesinin ilham kaynağı, 2008'den bu kadar öğretilebilirdi. "Zayıf" olarak tanımlanma şeklini sevdim. adamın ortam küresi", hisse senetleri, youtube görünümleri veya hava durumu gibi ortam bilgilerini telefonları veya diğer müdahaleci araçları kullanmadan gösterir.

Adım 1: Malzemeler

Malzemeler
Malzemeler
Malzemeler
Malzemeler

Bunlara İHTİYACINIZ olacak:

1. Bir NodeMcu panosu

2. Kodu panoya yüklemek ve isterseniz nihai ürüne güç sağlamak için bir mikro USB kablosu.

3. LED'ler, jumper kabloları (erkek-erkek, erkek-dişi) ve bir şeyleri bağlamak için bir devre tahtası… bu bir nevi verilir, ancak "çıkmak" istediğiniz her şey (verilere bağlı olarak görüntülemek veya yapmak) donanım gerektirecektir. Ortam küresini yeniden oluşturmak veya tam olarak yaptığım şeyi yapmak istiyorsanız, 7 segmentli bir ekran veya bazı LED'ler yeterince incelikli. Breadboard, 4 gerçek şeyi gerçekten bağlamadan önce "prototipleme" için gereklidir ve bunların nasıl çalıştığını/işlerin nasıl bağlandığını ilgili bölümde açıklayacağım. Yeni başlayan biriyseniz, içinde bir sürü küçük şey (kullandığım her şey dahil) ve ayrıca başka bir proje için bir arduino uno olduğu için bir arduino başlangıç kiti edinin.

İhtiyaç duyabileceğiniz şeyler:

4. Bir breadboard güç kaynağı modülü (NodeMcu'ya standart bir güç adaptörü ile güç vermek istiyorsanız… Bunu yapmazdım çünkü sadece bir mikro USB ile çalıştırabilirsiniz, bu çok daha uygun. Projenizi yapmak istiyorsanız tamamen kablosuz, o zaman elbette bir pil takımına ihtiyacınız olacak, ancak bunu güç bölümünde ele alacağım.

5. Küçük bir kutu için 1/4 çam (isterseniz)

6. Kutunuzu kaplayacak ve/veya LED'iniz veya ekranınız için bir difüzör görevi görecek bir kaplama

7. Süper (CA) ve/veya ahşap tutkalı 5. ve 6.

Adım 2: Düğüm MCU'su nedir?

Düğüm MCU'su nedir?
Düğüm MCU'su nedir?
Düğüm MCU'su nedir?
Düğüm MCU'su nedir?

Benim gibi elektroniğe gerçekten yeni başlayan biriyseniz, Arduino kartı ile NodeMcu kartı arasındaki farkın ne olduğunu merak ediyor olabilirsiniz ve belki ESP8266'yı da duymuşsunuzdur… bunlar arasındaki fark nedir?!?

Bu hiçbir şekilde teknik değil, ancak bilmeniz gereken şey bu.

Arduino, bir dizi pimden gelen girdileri okuma, bu girdileri kullanarak "bir şeyler yapma" ve ardından bir dizi pime çıktı verme yeteneğine sahiptir. Aslında küçük bir bilgisayardır. Arduino, çok sayıda farklı pano ve ek şeyler yapmak için panolara takılan çok sayıda "kalkan" yapar. Halihazırda sattıkları ve internete bağlanan ürünler çok pahalı ve onları takip eden pek bir topluluk yok. C ve C++ destekleyen "Arduino IDE" yazılımından kodlar yazılmakta ve bazı özel biçimlendirmeler serpiştirilerek kartlara yüklenmektedir. Programlamak için C veya C++ programlamayı bilmenize gerek yok çünkü böyle bir program var. çılgınca bir çevrimiçi kod bolluğu var, ancak programlamaya biraz aşinalık (özellikle while ve for döngüleri, değişken bildirim ve kapsam vb. gibi şeyler) anlamayı hızlandırmaya yardımcı olur. Arduino IDE ayrıca farklı kartlar için gerekli kitaplıkları indirmek için tek bir konum sağlar (daha sonra NodeMcu'yu kurarken).

ESP8266, temel olarak internet özellikli arduino kalkanlarını modası geçmiş hale getiren son derece ucuz bir WiFi modülüdür (yine de yerleşik wifi bulunan arduino kartlarını görmenize rağmen). ESP8266'yı çevreleyen DIY topluluğu o kadar büyüktür ki, internet özellikli cihazlar yapmak için neredeyse tek mantıklı seçimdir. Çoğu zaman, seri pinler (Rx ve Tx) aracılığıyla bir arduino kartı ile birlikte kullanılır, ancak sanırım bazı insanlar bunları "tek başına" kullanıyorlar, ancak mikroçip çok küçük ve arayüzlenmesi zor olduğu için (temelde 6 pimi var): 2 seri için (nesnelerle konuşurken), 2 güç için (toprak ve VCC) ve 2 GPIO (genel amaçlı giriş çıkışı), artı 3,3V ile çalışır ve böylece 5V onu yok eder) hızla yerini aldı…

ESP8266 üzerine inşa dışında, Arduino gibi açık kaynaklı bir geliştirme kartı olan NodeMcu. Aslında, eklediğim resimlerde daire içine alınmış NodeMcu kartına yerleşik ESP8266'yı görebilirsiniz. Bu kart, programlamak ve arayüz oluşturmak için mükemmel derecede kolay ve temelde bir arduino nano ile karşılaştırılabilir. Çok daha fazla pimi vardır ve başka bir karttan geçmek zorunda kalmadan doğrudan bilgisayarınızdan bir USB aracılığıyla programlanabilir. Ayrıca, kart hala teknik olarak 5V mantığı yerine 3.3V mantığı üzerinde çalışsa da, bu voltajı yönetmek için yerleşik yongalara sahiptir, bu nedenle USB veya VCC (voltaj girişi) pinleri ile tıpkı arduino'nuz gibi çalıştırılabilir.. Temel olarak, herhangi bir IoT için, NodeMcu kullanımı iyi, basit, tek bir karttır ve WiFi özelliklidir… ancak wifi olmayan projeler için de iyi bir seçimdir. Teknik olarak NodeMcu'nun "kullanıma hazır" dili LUA'dır, ancak Arduino IDE içinde 1 defalık bir kurulumdan sonra, onu diğer herhangi bir Arduino'da olduğu gibi programlayabileceksiniz.

3. Adım: NodeMcu'ya Başlarken

NodeMcu'yu ilk kez başlatmak için aşağıdaki videoyu kullandım ve onun tüm talimatlarını aynen uygularsanız, her şey yolunda gitmeli.

1. Yazılımın ayarlanması (Arduino IDE)

  • Arduino IDE'yi yukarıdaki bağlantıdan indirin ve bağış yapamıyorsanız "sadece indir" i seçin
  • Arduino IDE yazılımını açın
  • Dosya -> Tercihler, Ek Pano Yöneticisi URL'leri altında, aşağıdaki "https://arduino.esp8266.com/versions/2.5.0-beta2/package_esp8266com_index.json" bağlantısını yapıştırın
  • Araçlar -> Pano -> Pano Yöneticisi (üstte) altında, aşağıya doğru kaydırın veya ESP8266'yı arayın ve yükle'yi tıklayın.
  • Bunun görünmesi için Arduino IDE'yi yeniden başlatmanız gerekebilir, ancak şimdi Araçlar->Board'a tıklayın ve sahip olduğunuz kartı, yani NodeMcu 1.0 ESP12-E modülünü seçin.
  • Bu adımı yapmanız gerekmeyebilir, ancak usb'yi NodeMcu'nuzdan bilgisayarınıza bağlayın (ışıklar yanıp sönecektir) ve Denetim Masası->Aygıt Yöneticisi -> Bağlantı Noktaları -> seçeneğine gidin ve ardından etiketli COM bağlantı noktasını NOT yapın. "Silikon Laboratuvarları…" bu, NodeMcu'nun kullandığı COM bağlantı noktasıdır.
  • Arduino IDE'ye ve Araçlar-> Bağlantı Noktasına geri dönün ve bu bağlantı noktasının seçili olduğundan emin olun
  • Her şey iyi olmalı, ancak Araçlar altında, flaş boyutunun 4 olduğundan emin olun (SPIFFS için endişelenmeyin, seçilen her şey iyidir) ve yükleme hızının 115200 olduğundan emin olun… NodeMcu aslında baud hızı kullanır. Bilgileri seri monitöre geri iletmek için 9600 (bunun ne anlama geldiğini bilmiyorsanız endişelenmeyin, örnekte görünecektir), ancak kodda ve sonra monitörde ise 9600'ünüz var, bu iyi.

2. Bir LED'in yanıp sönmesi

Bu, programlamanın "Merhaba Dünyası" (yani baby $h1t) gibidir, ancak panoda her şeyin yolunda olduğunu bilmenizi sağlar ve Arduino IDE'ye aşina olmanıza yardımcı olur. Bu, kartın WiFi yeteneklerini GÖSTERMEZ (bunu bir sonraki örnekte yapıyoruz), sadece bağlı olduğundan ve çalışabildiğinden emin olur vb.

  • Arduino IDE'yi açın, NodeMcu'nuzun takılı olmasını sağlayın
  • Herhangi bir şey yapmadan önce, arduino'nuza yazabileceğiniz en temel kod için, bir kez çalışan bir setup() döngüsü ve sonsuza kadar sürekli çalışacak başka bir döngü() ile bir çerçeve olduğuna dikkat edin. Son kodumuz, yukarıda eklenen birkaç şey ve altta tanımlanan bir fonksiyon ile aynen bu şekilde yapılandırılacaktır.
  • Dosya->Örnekler-> (NodeMcu 1.0 bölümünün altında) ESP8266 ->Yanıp Sönme
  • Bu, pencerede bazı kodlar açacaktır. Bir yere kaydetmekten çekinmeyin.
  • Bu kodda, setup() döngüsü bir çıkış olarak karttaki yerleşik LED'in tanımını içerir ve döngü bu LED'e yüksek ve düşük çıkışlar verir. Karttaki yerleşik LED için (yalnızca! bu tipik bir durum değildir), varsayılan olarak açık olduğundan "DÜŞÜK" çıkış (0 volt) onu açacaktır ve "YÜKSEK" (3.3V in) bu durumda sanırım) kapalı
  • Her şey yukarıda belirtildiği gibi düzgün bir şekilde ayarlanmışsa, herhangi bir hata olmadığından emin olmak için "Doğrula"yı (sol üst köşedeki daire içindeki onay işareti) tıklayabilmeniz gerekir (sizin yapmadığınızdan beri bu hata olmayacaktır' Yazmayın, sizinki yazacak!) ve her şey yolunda olduğunda, hemen yanındaki "Yükle"
  • Yüklemeyi tıkladığınızda, alttaki siyah bölgede bir şeyler okunduğunu göreceksiniz ve noktalar/ % tamamlandı doldurma
  • Endişelenmeyin, hafızanın %33'ünü kaplayacağını söylüyor… bu temelde en basit kodun bile kapladığı "sabit" bir miktar, yazdıklarım sadece ek %1'lik bir alan kapladı.
  • Tahtadaki LED'in yanıp sönmeye başladığını göreceksiniz (ki bu zaten biraz yapıyor olabilir), bu nedenle betiğin gecikme bölümünde saniyenin binde biri (milisaniye) miktarını değiştirmekten çekinmeyin. Bu, ilk kez programlama yapıyorsanız, LED'in biraz farklı bir frekansta yanıp sönmesini izlemek muhtemelen gerçek bir heyecan yolculuğu olacaktır.

3. NodeMcu'ya güç sağlamak için seçenekler

İlk başta bunu neden anlamadığımdan emin değilim, ancak panoya yüklediğiniz kod orada kalacak ve güç sağlandığı sürece/sonsuza kadar çalışacaktır. Örneğin, 2. adımı tamamladıktan sonra, bilgisayarınızdan fişini çekip başka bir yere açarsanız tekrar yanıp sönmeye başlar. NodeMcu'ya güç vermenin en kolay yolu, içine bir mikro USB takmak ve ardından tıpkı duvardaki cep telefonunuz için kullandığınız gibi bir şarj bloğuna (5V 1A blok veya her neyse) takmaktır. Şeylere nasıl güç verileceği, DC jaklarının polaritesi, vb. Hakkında bilgi için diğer talimatıma bakmaktan çekinmeyin, ancak işin özü, her şeye güç vermek için yeterli olduğu sürece, istediğiniz amperajı kullanabilmenizdir (1A daha fazladır) örneğin bu kart ve kullandığınız herhangi bir LED için fazlasıyla), ancak her şeyin doğru çalışması için voltajın çok dar bir aralıkta olması gerekir. NodeMcu'da 3,3V ile 20V arasında herhangi bir voltaja sahip bir güç kaynağını güvenle kullanabilirsiniz, çünkü kart üzerinde bu voltajı düşüren bir regülatör var (bu güzel bir özellik). Amperaj ile, kart sadece ihtiyaç duyduğu şeyi çekeceğinden, geçiş tamamdır, ancak voltaj ile, voltajları altına girmeden, gereken # değerine yakın olarak kullanmak genellikle daha güvenlidir, bu nedenle daha az iş yapılması gerekir/güç boşa harcanır voltajı düşürme. Bir pil takımı kullanmak İSTİYORSANIZ veya bir DC güç jakı kullanmak istiyorsanız (belki de güzel bir uzun kabloya sahip olabilirsiniz), kullanılacak pimler VIN bitişiğindeki Toprak pimleridir.

4. İnternete bağlanma

Yukarıdaki youtube videosundaki kodu bir dosya olarak ekledim (videonun kaybolması durumunda gelecek nesillerin hatırına), ancak lütfen youtube bağlantısını gözden geçirin ve kod için ona bir görünüm verin. Aslında zaman ayırmaya değer, eğlenceli bir şekilde tahtanın tarihini açıklıyor.

"Wifi_connect" adlı arduino kod dosyasını açın ve SSID ve şifreyi kendinize göre değiştirin, ardından gidin

  • Döngülerin üzerinde, Arduino'ya ESP8266 için WiFi öğeleriyle dolu bir kitaplık eklemesini söyleyen bir #include satırı olduğuna dikkat edin. Bunlar temelde bir grup yardımcı program ve bir araya getirilmiş şeylerdir ve kitaplıkta bulunan önceden yazılmış öğeleri kullanarak belirli şeyleri nispeten basit bir şekilde yapmanıza izin verir. Örneğin, bir kalkan veya bir panoya ek satın aldıysanız, onunla daha kolay arayüz oluşturabilmeniz için muhtemelen onunla ilişkili kitaplıklara sahiptir.
  • Araçlar->Seri Monitör
  • Seri monitörün 9600'de okumaya ayarlandığından emin olun. Doğru hızda değilse, seri monitör bozuk bir karışıklık çıkarır, bu nedenle bu, seri monitörünüzün seri tanımlı ile aynı oranda olmadığının iyi bir göstergesidir. kodda
  • Doğrula ve çalıştır'ı tıklayın ve seri monitörü tamamlarken izleyin… bağlantının çalışıp çalışmadığı hakkında size bir sürü ayrıntı söyleyecek ve NodeMcu'daki ESP8266'nın WiFi'nize bağlanabildiğini gösterecek! HİÇBİR ŞEY YAPMIYOR, ama gidip bu kartı duvara bir yere takarsanız, 30 saniye bekleyebilir ve internet ile heyecan verici bir bağlantı kurduğundan oldukça emin olabilirsiniz.
  • Kendinizi test etmek için, yerleşik LED'in yanması için "bllink" kodunu ve "wifi_connect" kodunu birbirine karıştırmayı deneyin veya internete bağlandıktan sonra yanıp sönmeyi deneyin. Bu öğrenmenin harika bir yolu!

Yukarıdakilerin hepsini yaptıysanız, tebrikler! NodeMCU'ya kod yükleyebileceğinizi ve NodeMcu'nun WiFi'nize bağlanabileceğini gösterdiniz. Aslında WiFi'ye bağlanmak için biraz farklı bir yöntem kullanacağız, normal eski Wifi kitaplığı yerine MultiWifi kitaplığını kullanarak, çünkü kolayca bir WiFi listesi eklemenize ve sadece hangisine bağlanmaya çalışmanıza izin veriyorsa.

Adım 4: Bir Web Sitesinden Nasıl Veri Çekilir

Bir Web Sitesinden Veri Nasıl Çekilir
Bir Web Sitesinden Veri Nasıl Çekilir

Web sitelerindeki veriler çok ürkütücü bir şekilde saklanır. Bunu istediğiniz öğelere göre filtrelemek veya bunun için "ayrıştırmak" eşit derecede ürkütücüdür ve bunu önemli bir HTML bilgisi olmadan yapmaya çalışmak göz korkutucu olabilir… çok saf ve mutlu bir yer. İşlevsel olarak bunun anlamı, web sitesinin tamamını görüntüleyen bir URL'den SADECE istediğiniz tek veri parçasını görüntüleyen bir URL'ye geçmektir.

1. Web sitesinde istediğiniz bilgiyi "işaret etmek"

İlgilendiğiniz web sitesine gidin, örneğin burada

www.timeanddate.com/worldclock/canada/edmonton

ardından istediğiniz verilere gidin, sağ tıklayın ve "incele" yi seçin. Tarayıcınızda HTML görüntüleyiciyi açacak ve verilerinizin geldiği ağacın son dalını size gösterecektir. Bunun için kullanımı en kolay tarayıcının chrome olduğunu görüyorum, ancak görünüşe göre firefox'un daha iyi hale getiren bazı uzantıları var… ama bunun sadece klasik bir firefox kişisi gibi olduğunu hissediyorum?

Verilerin yaşadığı yer burasıdır. Bazen referans aldığı bir kimliği vardır, bazen de doğrudan yazılır. Peki bunu nasıl çıkaracağız?

2. Thingspeak/ThingHTTP/ API'ler (korkmayın, kodlama gerekmez)

API'lerin ne olduğu ve bunları nasıl yaptığınız hakkında konuşmayacağım bile, ancak bunları aranızdaki (istekleriniz) ve talep ettiğiniz şeylerin gerçek bağlantı veya iletimi olarak hayal edebilirsiniz. Klasik benzetme bir restoranda garsondur. Bunu herhangi bir kodlama olmadan gerçekleştirmek için "ThingSpeak" adlı ücretsiz bir hizmeti ve özellikle de "ThingHTTP" uygulamasını kullanacaksınız. Sadece bir hesap oluşturun ve ardından uygulamalara gidin ve en altta,thinghttp ve bir tane oluşturun.

Yapmanız gereken tek şey, web sitesinin URL'sini, örneğin yukarıdaki tarih ve saat web sitesini kopyalayıp yapıştırmak ve ardından son "Dize Ayrıştırma" alanına gitmek. Bu, istediğiniz verilere giden yoldur.

Sanırım bu yol birkaç şekilde verilebilir, ancak bildiğim en basit ve tek yol, yukarıda açıklandığı gibi o veri parçasına sağ tıklamak, onu incelemek ve sonra o veriye karşılık gelen vurgulanmış satıra sağ tıklamak. HTML görüntüleyici ve Kopyala-> x yoluna gidiyor. Bu, ekteki resimde gösterilmiştir.

İşiniz bittiğinde, sizin için oluşturulan URL'ye gitmeyi deneyin ve en azından üzerinde çalışılabilecek bir şekilde istediğiniz verileri içerip içermediğine bakın. Örneğin benimki, sıcaklığı santigrat derece yerine "XX F" olarak söylüyor, ancak sondaki birimler ve F kod içinde kolayca değiştirilebilir. AYRIŞTIRILAMAYACAĞI HATASINI ALMAK SON DERECE YAYGINDIR. Bu durumda, xpath içindeki bazı başlıkları silmeyi deneyin, verileri başka bir yerde bulup bulamayacağınıza bakın veya ayrıştırma dizenizin "bozuk" yönlerini tanımlayabilecekleri bir foruma danışın. Bu yöntem, istenen verileri web sitesine yüklemeyen bir web sitesinde kesinlikle ÇALIŞMAYACAKTIR, bunun yerine (kendisi) yüklenmesi biraz zaman alan bazı harici kaynaklardan çeker. Ancak, bazı şeyler için iyi çalışması gerekir. youtube şeyleri, hava durumu vb.

3. Bu verilere NodeMCU'dan erişim

Zaten çok yazdım, bu yüzden çok sayıda yorum içeren ve şu anda Edmonton AB, Kanada için aurora borealis olasılığını okumak üzere ayarlanmış ekteki koda bakın (Yalnızca!). Yapmanız gereken ilk ince ayar, URL'yi (aslında URL'nin yalnızca 16 haneli api anahtar kısmı) kendi şeyiniz http olarak değiştirmektir.

İnce ayar yapmanız gereken ikinci şey, gerçek "değerin" getirildiği ve bir dize (metin) olan "yourvalue" değişkeni olarak depolandığı döngü() içindedir. Oradan istediğiniz herhangi bir şekilde kullanılabilir. Yüzde sembolünü kaldırdım, %'nin 2 basamağını 2 değişkene böldüm (örneğin %14'ü 1, 4'e) ve bunların her birini tamsayı olarak sakladım, ancak burada birkaç hızlı google araması veya yorumu ile şunları yapabilirsiniz: Thingshttp tarafından oluşturulan dizeden tam olarak istediğiniz sayıları çıkarmak için. Sayıların büyük mü küçük mü olduğuna veya bir şeyleri açıp kapamaya ya da görüntülemeye yetecek kadar bölünebilir mi olduğuna karar vermek gibi şeyler yapabilmek için sayılara ihtiyacınız olacak. Bu noktadan itibaren kodun geri kalanı, altta bulunan yediseg() adlı işlev de dahil olmak üzere 2 sayıyı görüntülemek için kullanılır.

Kod veya istediğiniz türden şeyleri nasıl çıkarabileceğiniz veya gösterebileceğiniz veya bu sayıları nasıl kullanabileceğiniz, örneğin bir rgb LED'in spektrumunu bölmek ve farklı değerleri farklı renklere eşlemek gibi konularda soru sormaktan çekinmeyin.

Adım 5: Verileri Görüntüleme

Verileri Görüntüleme
Verileri Görüntüleme

1. Ne kullandım (7 segmentli bir ekran nasıl bağlanır)

Ekli şemayı aldım/bu diğer talimat tarafından açıklanan kablolamayı takip ettim.

Kablolama oldukça basittir, ancak daha önce bir devre tahtası kullanmadıysanız, olanlar kafa karıştırıcı olabilir. Esasen bir devre tahtası, bağlantıları net ve geçici hale getirmek için tasarlanmıştır.

Aşağıdaki açıklamaların tümü ekteki şemaya göre olacaktır: Bir devre tahtası yatay olarak her biri 2 ayrı segmente sahip 2 tekrarlanan yarıya bölünebilir: devre tahtasının uzunluğunu uzatan yatay - ve + satırlar (güç için kullanılır) ve dikey sütunlar, numaralandırılmış ve bağlantıları işaretlemek için kullanılan sütun başına 5 noktadan oluşur. Sonra küçük bir boşluk var ve sonra aynı özellikler o hayali ayrım çizgisinin diğer tarafında ikiye katlandı. Yatay + sıradaki tüm noktalar birbirine, yatay - sıradaki tüm noktalar birbirine bağlanır. Bu, gücü devre tahtasının bir ucuna bağlamanıza ve ardından, çıkışlar için uzun bir güç çubuğu gibi, gücü kesmek için + boyunca herhangi bir noktaya bir şeyler takabilmenizi sağlar. Aynı şey, şeyleri topraklamak için kullanılan - satırı için de geçerlidir. Numaralandırılmış sütunlar için, numaralandırılmış bir sütundaki her nokta diğer 4 noktaya bağlanır. Bir sütundaki beş noktanın, hayali yarı yol çizgisinin karşısındaki beş noktayla BAĞLANTILI OLMADIĞINI unutmayın. Breadboard uzunlamasına kesilebilir ve hiçbir elektrik bağlantısı kesilmez.

NodeMcu, güç veya giriş/çıkışlara tekabül eden her bir pimin kendisine ait bir numaralı sütuna sahip olduğu, devre tahtasının iki yarısını mükemmel bir şekilde birleştirir, böylece kabloları kalan erişilebilir noktaya takabilir ve devre tahtasında başka bir yere bağlayabilirsiniz. Aynısı şemada gösterilen 7 segmentli ekran için de geçerlidir. Örneğin, şemada panodan 7 segmentli ekrana kadar zeminin yolunu izleyin.

  1. NodeMcu'dan gelen topraklama pimi sütun 2'ye takılı
  2. 2. sütundan -ve yatay güç sırasına giden tel (konvansiyonel toprakla belirlenir)
  3. toprak satırından (tüm satır bağlı olduğundan sütun numarası önemsizdir) bir direnç aracılığıyla sütun 22'ye
  4. sütun 22'ye de takılı olan 7 segmentli ekrandaki "toprak" pimine

Diyagramdaki direncin amacı, temel olarak, ekranı karartmak için işlevsel olarak çalışan LED'lere giden fazla güç çıkışının bir kısmını "emmektir". Bir "8" yerine bir "1" yandığında, daha az LED yandığından 1'in çok daha parlak olduğunu göreceksiniz. LED'i ne kadar az parlak çalıştırırsanız, o kadar uzun süre dayanır, bu nedenle direnç gereklidir. 7 segmentli ekranların çoğu diyagramı aslında her bir segmentle seri olarak bir direnç olduğunu gösterir, ancak bu iyi çalışıyor gibi görünüyor. 1K ohm direnç kullandım.

Bunlar kodda eşlendiğinden, ekranda hangi pinlerin hangi pinlere karşılık geldiğinin çok iyi farkında olun.

2. Bazı fikirler/daha fazla zamanla yapacağım şeyler

Esasen durduğum yer burası, ancak verilerinizin değerine göre çıktı almak için başka birçok şey seçebilirdiniz, örneğin:

  • değere bağlı olarak rengi değiştiren veya örneğin yeşilden kırmızıya bir gradyanı kaplayan bir rgb LED
  • tam bir LED ekran
  • bir şeyi belirtmek için açılıp kapanan doğru/yanlış üzerinde/altında mantıksal bir açık/kapalı LED
  • Günün belirli bir saatinde dönen bir motor, örneğin bir sulama sistemindeki vana veya köpeğiniz için bir ödül vermek gibi… Eminim bunu yapmanın, zamanı wifi üzerinden yorumlamaktan daha etkili yolları vardır ama bu bir seçenek!

Bir sonraki adım (şaşırtıcı derecede daha fazla öğretici var), KENDİ sunucunuza veri göndermek (bu,thingspeak aracılığıyla da yapılabilir) ve ardından bu verileri (otomatik bir bahçe veya akıllı ev eşyaları gibi) kullanmaktır.

Adım 6: Bir Kutu Oluşturma

Kutu Oluşturma
Kutu Oluşturma
Kutu Oluşturma
Kutu Oluşturma
Kutu Oluşturma
Kutu Oluşturma
Kutu Oluşturma
Kutu Oluşturma

Breadboard üzerinden yapılan tüm bağlantılar, kabloları doğrudan kart ile çıkış (LED gibi) arasına lehimleyerek veya çok daha küçük bir devre tahtası veya PCB kullanarak, sığabilecek bir ölçekte bağlantılar yapmak için kalıcı hale getirilebilir. senin projen. Bağladığım sette gelen küçük bir devre tahtası kullanmayı seçtim ve sadece bir telin ucuna bir direnç lehimlemem gerekiyordu… çok sağlam değil ama işlevsel!

4 adet 1/4" x 3.5" çamı 3,5" (yanlar) ve bir tanesi 4" (üst) olarak kestim ve tüm yüzleri kare olarak elde ettiğinizden emin olarak onları birleştirip birbirine yapıştırdım. mümkün olduğu kadar, böylece her yüz mümkün olduğunca aynı hizadaydı. Ön veya arka parçaları yapıştırmadan önce, ekranın ve kartın sırasıyla görülebilecek/takılacak kadar dışarı çıkması için alanları çentikledim. Aldığım küçük breadboard'un arkasında yapışkan bant vardı, böylece yan duvarlardan birine monte edilebilirdi ve 7 segmentli ekran, parçayı önce ambalaj bandının üzerine yatırarak ve ekran bu bandın üzerine yerleştirerek yerinde tutulabilirdi. ve ardından tüm boşlukların üzerine / içine kabartma tozu serpin. Ardından, kabartma tozu ile temas ettiğinde ekranı yerinde tutmak için anında sertleşen ve ön parçanın ön tarafına yaslanan CA (süper) yapıştırıcıyı boşluklara döktüm. Paketleme bandı, ekran ile karşı karşıya olduğu yüzey arasına herhangi bir yapıştırıcının sızmasını ve kuruduktan sonra onu gizlemesini önlemek içindi.

Tüm kenarlara çam kaplama yapıştırdım (bence ahşap tutkalından daha iyi çalışan CA tutkalı kullanarak) ve her bir parça uygulandığında kenarları zımparaladım, tek tip görünmesi/uç bağlantılarını gizlemesi/ için bir difüzör görevi görmesi bu videodaki gibi göster.

Önerilen: