- Gerekli Bileşenler:
- LM35 Sıcaklık Sensörü:
- LM35'i NodeMCU ile Bağlama:
- Kod Açıklaması:
- Web Sayfasında Sıcaklığı görüntülemek için HTML Kodu:
- Çalışma:
Önceki NodeMCU öğreticisine başlarken, NodeMCU nedir ve bunu Arduino IDE kullanarak nasıl programlayabileceğimizi gördük . Bildiğiniz gibi NodeMCU'nun içinde Wi-Fi çipi vardır, bu yüzden internete de bağlanabilir. IoT Projeleri oluşturmak çok kullanışlıdır. Daha önce IoT termometresi yapmak için Arduino ile ThingSpeak'i kullandık, ancak burada sıcaklığı görüntülemek için kendi web sayfamızı oluşturacağız.
Bu eğitimde, bu ilginç MCU hakkında daha fazlasını keşfedeceğiz ve NodeMCU'yu İnternet'e bağlayarak, nesnelerin interneti dünyasına yavaşça dalacağız. Burada bu modülü web tarayıcısında oda sıcaklığını almak için kullanacağız, yani sıcaklık sensörü olarak LM35 kullanarak sıcaklığı görüntülemek için bir web sunucusu yapacağız.
Gerekli Bileşenler:
- NodeMCU - ESP12
- LM35 Sıcaklık Sensörü
- Breadboard
- Erkek-dişi konektörler
LM35 Sıcaklık Sensörü:
LM35, analog bir doğrusal sıcaklık sensörüdür. Çıkışı sıcaklıkla orantılıdır (derece Santigrat olarak). Çalışma sıcaklığı aralığı -55 ° C ila 150 ° C'dir. Çıkış voltajı, sıcaklıktaki her o C artış veya düşüşüne yanıt olarak 10mV değişir. 5V ve 3.3 V beslemeyle çalıştırılabilir ve bekleme akımı 60uA'dan azdır.
LM35'in LM35A, LM35C ve LM35D serisi olmak üzere 3 seri varyasyonunda mevcut olduğunu unutmayın. Temel fark, sıcaklık ölçüm aralıklarıdır. LM35D serisi, 0 ila 100 Santigrat derece ölçmek için tasarlanmıştır; LM35A serisi daha geniş bir -55 ila 155 derece Santigrat aralığını ölçmek için tasarlanmıştır. LM35C serisi, -40 ila 110 derece Santigrat arasında ölçüm yapacak şekilde tasarlanmıştır.
LM35'i sıcaklığı ölçmek için diğer birçok mikro denetleyiciyle zaten kullandık:
- LM35 ve 8051 Mikrodenetleyiciyi kullanan Dijital Termometre
- LM35 ve AVR Mikrodenetleyici kullanarak Sıcaklık Ölçümü
- Arduino ve LM35 Sıcaklık Sensörünü kullanan Dijital Termometre
- Raspberry Pi ile Oda Sıcaklığı Ölçümü
LM35'i NodeMCU ile Bağlama:
LM35'i NodeMCU ile bağlamak için devre şeması aşağıda verilmiştir:
LM35 bir analog sensördür, bu yüzden bu analog çıkışı dijitale dönüştürmeliyiz. Bunun için NodeMCU'nun A0 olarak tanımlanan ADC pinini kullanıyoruz. LM35'in çıkışını A0'a bağlayacağız.
NodeMCU'nun pinlerinde çıkış voltajı olarak 3,3 V var. Bu yüzden LM35 için Vcc olarak 3.3V kullanacağız.
Kod Açıklaması:
Demo Videosu ile birlikte eksiksiz kod yazının sonunda verilmiştir. Burada kodun birkaç bölümünü açıklıyoruz. Arduino IDE'yi kullanarak MCU'ya kod yüklemeyi zaten açıkladık.
Öncelikle, Wi-Fi işlevlerine erişmek için ESP8266wifi kitaplığını eklemeliyiz.
#Dahil etmek
Ardından ssid ve şifre alanına Wi-Fi adınızı ve şifrenizi girin . Ayrıca değişkenleri başlattı ve sunucuyu bağlantı noktası 80'de 115200 baud hızı ile başlattı.
const char * ssid = "*********"; // ssid const char * password = "***********"; // Parolanız float temp_celsius = 0; float temp_fahrenheit = 0; WiFiServer sunucusu (80); geçersiz kurulum () { Serial.begin (115200);
Bu işlevler aranarak Wi-Fi bağlantısı kurulur.
Serial.println (); Serial.println (); Serial.print ("Bağlanılıyor"); Serial.println (ssid); WiFi.begin (ssid, şifre);
Bağlantının kurulması birkaç saniye sürebilir, bu nedenle bağlantı kurulmayana kadar '…' göstermeye devam edin. Ardından sistem beklemeye ve bir istemcinin bağlanmasını kontrol etmeye devam edecek…
while (WiFi.status ()! = WL_CONNECTED) { gecikme (500); Seri.baskı ("."); } Serial.println (""); Serial.println ("WiFi bağlı"); server.begin (); Serial.println ("Sunucu başlatıldı"); Serial.println (WiFi.localIP ()); }
In döngü bölümünde, sensör değerlerini okumak ve Celsius ve Fahrenheit dönüştürmek ve seri monitörde bu değerleri görüntüler.
geçersiz döngü () { temp_celsius = (analogRead (A0) * 330.0) / 1023.0; // Analog değerleri Santigrat'a dönüştürmek için Kartımızda 3,3 V var ve LM35'in çıkış geriliminin her Santigrat derece yükseliş / düşüşe 10 mV kadar değiştiğini biliyoruz. Yani, (A0 * 3300/10 ) / 1023 = santigrat temp_fahrenheit = santigrat * 1.8 + 32.0; Seri.print ("Sıcaklık ="); Serial.print (temp_celsius); Serial.print ("Celsius,");
Web Sayfasında Sıcaklığı görüntülemek için HTML Kodu:
İnternet üzerinden dünyanın her yerinden erişilebilmesi için sıcaklığı bir web sayfasında görüntülüyoruz. HTML kodu çok basittir; HTML kodunun her satırını yankılamak için client.println işlevini kullanmalıyız, böylece tarayıcı onu çalıştırabilir.
Bu bölüm, sıcaklık değerini gösteren bir web sayfası oluşturmak için HTML kodunu gösterir.
WiFiClient istemci = server.available (); client.println ("HTTP / 1.1 200 Tamam"); client.println ("İçerik Türü: metin / html"); client.println ("Bağlantı: kapat"); // yanıt client.println ("Yenileme: 10") tamamlandıktan sonra bağlantı kapatılacaktır ; // 10 saniye sonra sayfayı güncelle client.println (); client.println (""); client.println (""); client.print ("
Dijital termometre
"); client.print ("Sıcaklık (* C) = "); client.println (temp_celsius); client.print ("
Sıcaklık (F) = "); client.println (temp_fahrenheit); client.print ("
"); client.println (" "); gecikme (5000); }Çalışma:
Kodu Arduino IDE kullanarak yükledikten sonra, seri monitörü açın ve NodeMCU üzerindeki Reset butonuna basın.
Artık kartın kodunuzda tanımladığınız Wi-Fi ağına bağlı olduğunu ve ayrıca IP'nizin olduğunu görebilirsiniz. Bu IP'yi kopyalayın ve herhangi bir web tarayıcısına yapıştırın. Web tarayıcısını çalıştırdığınız sisteminizin aynı ağa bağlı olduğundan emin olun.
Dijital termometreniz hazırdır ve sıcaklık her 10 saniyede bir web tarayıcısında otomatik olarak yenilenecektir.
Bu web sayfasını internetten erişilebilir yapmak için, yönlendiricinizde / modeminizde Port Yönlendirmeyi ayarlamanız yeterlidir. Aşağıdaki tam kodu ve Videoyu kontrol edin.
Ayrıca şunları da kontrol edin:
- Raspberry Pi Hava İstasyonu: İnternet Üzerinden Nem, Sıcaklık ve Basıncı İzleme
- Arduino ve ThingSpeak kullanarak İnternet üzerinden Canlı Sıcaklık ve Nem İzleme