- Komponen yang Diperlukan:
- Sensor Suhu LM35:
- Menghubungkan LM35 dengan NodeMCU:
- Penjelasan Kod:
- Kod HTML untuk memaparkan Suhu di Halaman Web:
- Bekerja:
Dalam tutorial Memulai dengan NodeMCU sebelumnya, kami melihat Apa itu NodeMCU dan bagaimana kami dapat memprogramnya menggunakan Arduino IDE . Seperti yang anda tahu NodeMCU mempunyai cip Wi-Fi di dalamnya, ia juga boleh menyambung ke internet. Sangat berguna untuk membina Projek IoT. Kami sebelumnya menggunakan ThingSpeak dengan Arduino untuk membuat termometer IoT, tetapi di sini kami akan membuat laman web kami sendiri untuk memaparkan suhu.
Dalam tutorial ini kita akan meneroka lebih lanjut mengenai MCU yang menarik ini dan perlahan-lahan kita menyelami Internet dari dunia dengan menghubungkan NodeMCU dengan Internet. Di sini kita akan menggunakan modul ini untuk mendapatkan suhu bilik pada penyemak imbas web iaitu kita akan membuat pelayan web untuk memaparkan suhu menggunakan LM35 sebagai sensor suhu.
Komponen yang Diperlukan:
- NodeMCU - ESP12
- Sensor Suhu LM35
- Papan roti
- Penyambung lelaki-wanita
Sensor Suhu LM35:
LM35 adalah sensor suhu linear analog. Keluarannya sebanding dengan suhu (dalam darjah Celsius). Julat suhu operasi adalah dari -55 ° C hingga 150 ° C. Voltan keluaran berbeza 10mV sebagai tindak balas kepada setiap kenaikan atau penurunan suhu o C Ia dapat dikendalikan dari bekalan 5V serta 3.3 V dan arus siaga kurang dari 60uA.
Perhatikan bahawa LM35 tersedia dalam 3 variasi siri iaitu siri LM35A, LM35C dan LM35D. Perbezaan utama adalah dalam jarak pengukuran suhu mereka. Siri LM35D dirancang untuk mengukur 0 hingga 100 darjah Celsius, sedangkan sebagai siri LM35A dirancang untuk mengukur jarak yang lebih luas dari -55 hingga 155 darjah Celsius. Siri LM35C direka untuk mengukur dari -40 hingga 110 darjah Celsius.
Kami telah menggunakan LM35 dengan banyak pengawal mikro lain untuk mengukur suhu:
- Termometer Digital menggunakan LM35 dan 8051 Microcontroller
- Pengukuran Suhu menggunakan LM35 dan AVR Microcontroller
- Termometer Digital menggunakan Arduino dan LM35 Temperature Sensor
- Pengukuran Suhu Bilik dengan Raspberry Pi
Menghubungkan LM35 dengan NodeMCU:
Gambarajah litar untuk menghubungkan LM35 dengan NodeMCU diberikan di bawah:
LM35 adalah sensor analog jadi kita harus menukar output analog ini menjadi digital. Untuk ini kami menggunakan pin ADC NodeMCU yang ditakrifkan sebagai A0. Kami akan menghubungkan output LM35 ke A0.
Kami mempunyai 3.3 V sebagai voltan keluaran pada pin NodeMCU. Jadi, kami akan menggunakan 3.3V sebagai Vcc untuk LM35.
Penjelasan Kod:
Kod lengkap dengan Video Demonstrasi diberikan pada akhir artikel. Di sini kami menerangkan beberapa bahagian kod. Kami sudah menjelaskan untuk memuat naik kod ke MCU menggunakan Arduino IDE.
Pertama, kita harus memasukkan perpustakaan wifi ESP8266 untuk mengakses fungsi Wi-Fi..
#sertakan
Kemudian masukkan nama dan kata laluan Wi-Fi anda di medan ssid dan kata laluan . Juga memulakan pemboleh ubah dan memulakan pelayan di port 80 dengan baud rate 115200.
const char * ssid = "*********"; // Kata sandi anda ssid const * password = "***********"; // Kata Laluan anda mengapung temp_celsius = 0; terapung temp_fahrenheit = 0; Pelayan WiFiServer (80); persediaan tidak sah () { Serial.begin (115200);
Sambungan Wi-Fi dibuat dengan memanggil fungsi-fungsi ini.
Bersiri.println (); Bersiri.println (); Serial.print ("Menyambung ke"); Serial.println (ssid); WiFi.begin (ssid, kata laluan);
Sambungan boleh mengambil masa beberapa saat untuk dibuat sehingga terus menunjukkan '…' sehingga sambungan tidak akan terjalin. Kemudian sistem akan terus menunggu dan memeriksa pelanggan untuk menyambung…
sementara (WiFi.status ()! = WL_CONNECTED) { kelewatan (500); Cetakan bersiri ("."); } Serial.println (""); Serial.println ("WiFi disambungkan"); pelayan.begin (); Serial.println ("Pelayan dimulakan"); Serial.println (WiFi.localIP ()); }
Di bahagian gelung , baca nilai sensor dan ubah menjadi Celsius dan Fahrenheit dan tampilkan nilai-nilai ini pada monitor bersiri.
gelung void () { temp_celsius = (analogRead (A0) * 330.0) / 1023.0; // Untuk menukar nilai analog ke Celsius Kami mempunyai 3.3 V di papan kami dan kami tahu bahawa voltan keluaran LM35 berbeza 10 mV hingga setiap darjah Celsius naik / turun. Jadi, (A0 * 3300/10 ) / 1023 = celsius temp_fahrenheit = celsius * 1.8 + 32.0; Serial.print ("Suhu ="); Serial.print (temp_celsius); Serial.print ("Celsius,");
Kod HTML untuk memaparkan Suhu di Halaman Web:
Kami memaparkan suhu di laman web sehingga dapat diakses dari mana saja di dunia melalui internet. Kod HTML sangat mudah; kita hanya perlu menggunakan fungsi client.println untuk menggema setiap baris kod HTML, supaya penyemak imbas dapat melaksanakannya.
Bahagian ini menunjukkan kod HTML untuk membuat laman web yang memaparkan nilai suhu.
Pelanggan WiFiClient = server.available (); client.println ("HTTP / 1.1 200 OK"); client.println ("Jenis Kandungan: teks / html"); client.println ("Sambungan: tutup"); // sambungan akan ditutup setelah selesai pelanggan respons.println ("Refresh: 10"); // kemas kini halaman selepas 10 saat klien.println (); pelanggan.println (""); pelanggan.println (""); pelanggan.cetakan ("
Termometer Digital
"); client.print ("Suhu (* C) = "); client.println (temp_celsius); client.print ("
Suhu (F) = "); client.println (temp_fahrenheit); client.print ("
"); client.println (" "); kelewatan (5000); }Bekerja:
Setelah memuat naik kod menggunakan Arduino IDE, buka monitor bersiri dan tekan butang Reset pada NodeMCU.
Sekarang, anda dapat melihat papan disambungkan ke rangkaian Wi-Fi yang telah anda tentukan dalam kod anda dan juga anda mendapat IP. Salin IP ini dan tampal di mana-mana penyemak imbas web. Pastikan sistem di mana anda menjalankan penyemak imbas web harus disambungkan ke rangkaian yang sama.
Termometer digital anda sudah siap dan suhu akan disegarkan secara automatik dalam penyemak imbas web selepas setiap 10 saat.
Untuk menjadikan laman web ini dapat diakses dari internet, anda hanya perlu menetapkan Port Forwarding di router / modem anda. Lihat kod lengkap dan Video di bawah.
Periksa juga:
- Stesen Cuaca Raspberry Pi: Memantau Kelembapan, Suhu dan Tekanan melalui Internet
- Pemantauan Suhu dan Kelembapan Langsung melalui Internet menggunakan Arduino dan ThingSpeak