Daftar Isi:
- Langkah 1: Pergi Berbelanja
- Langkah 2: Pengaturan dan Latar Belakang
- Langkah 3: Bagian Arduino - ESP12
- Langkah 4: Menguji ESP Sebagai Klien Protokol Waktu Jaringan (NTP)
- Langkah 5: Menguji Sensor DHT22
- Langkah 6: Menyatukannya…
- Langkah 7: Sisi Server
Video: Sensor Suhu Jaringan Rumah: 7 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:55
Apa yang perlu Anda ketahui untuk membuat proyek ini:
Anda perlu tahu tentang:- Beberapa keterampilan elektronik (menyolder)
- Linux
-Arduino IDE
(Anda perlu memperbarui papan tambahan di IDE:
- memperbarui/memprogram papan ESP melalui Arduino IDE.
(ada beberapa tutorial bagus yang tersedia di web)
Ini dapat dilakukan dengan menggunakan Arduino Uno atau menggunakan FTDI (usb to serial adapter).
Saya menggunakan Uno saya karena saya tidak memiliki port serial di PC saya juga tidak memiliki FTDI
Langkah 1: Pergi Berbelanja
Apa yang Anda perlukan untuk mewujudkannya?
Untuk Sensor Suhu dan Kelembaban Digital:
- Entah papan tempat memotong roti atau alternatif seperti PCB prototipe, solder, besi solder …
- Beberapa kawat
- dua jumper
- resistor 10k Ohm
- sebuah ESP12F (model lain mungkin bekerja juga…)
- DHT22 (sedikit lebih mahal dari DHT11 tapi lebih akurat)
- 3 baterai isi ulang AA dan dudukan baterai
- kotak plastik kecil untuk meletakkan proyek Anda
- Pada tahap selanjutnya saya berencana untuk menambahkan HT7333 dengan dua kapasitor 10uF antara baterai dan ESP
untuk menstabilkan tegangan input (VCC) ke 3.3V yang direkomendasikan tetapi juga untuk melindungi ESP dari tegangan lebih.
Untuk bagian Jaringan:
- Jaringan WiFi rumah Anda
Untuk bagian Server:
- Semua sistem berbasis Linux (selalu aktif!)
Saya menggunakan Raspberry Pi (yang juga saya gunakan sebagai server untuk kamera IP Outdoor saya.)
- kompiler gcc untuk mengkompilasi kode server Anda
- paket rrdtool untuk menyimpan data dan menghasilkan grafik
- apache (atau server web lain)
PC atau laptop favorit Anda dengan Arduino IDE di dalamnya.
Langkah 2: Pengaturan dan Latar Belakang
Dalam versi WiFi yang terhubung ini - belum lagi IOT - sensor suhu dan kelembaban saya menggunakan ESP12F, DHT22, dan dudukan baterai 3 AA dengan baterai yang dapat diisi ulang.
Setiap 20 menit ESP mengambil pengukuran dari DHT22 dan mengirimkannya ke server (Raspberry Pi) melalui UDP di jaringan WiFi rumah saya. Setelah pengukuran dikirim, ESP masuk ke deepsleep. Ini berarti bahwa hanya Jam Waktu Nyata dari modul yang tetap menyala, menghasilkan penghematan daya yang luar biasa. Selama sekitar 5 detik, modul membutuhkan sekitar 100mA, kemudian selama 20 menit deepsleep hanya 150uA.
Saya tidak ingin menggunakan layanan berbasis Internet karena saya memiliki Raspberry Pi saya yang selalu aktif dan dengan cara ini saya merasa senang menulis bagian server juga.
Di server (Raspberry Pi menjalankan Raspbian) saya telah menulis pendengar UDP sederhana (server) yang menyimpan nilai ke dalam RRD sederhana. (Database Round Robin menggunakan RRDtool oleh Tobias Oetiker.)
Keuntungan dari RRDtool adalah Anda membuat database Anda sekali dan ukurannya tetap sama. Anda juga tidak perlu memiliki server database (seperti mySQLd) yang berjalan di latar belakang. RRDtool memberi Anda alat untuk membuat Database dan menghasilkan grafik.
Server saya membuat grafik secara berkala dan menampilkan semuanya dalam halaman http yang sangat sederhana. Saya dapat berkonsultasi dengan bacaan saya dengan browser sederhana dengan menghubungkan ke server web Apache2 di Raspberry Pi!
Akhirnya, saya tidak memiliki FTDI (USB to Serial) jadi saya menggunakan Arduino UNO. Anda perlu menghubungkan TX dan RX dan GND dari ESP dan UNO. (Saya tahu, insting Anda mungkin meminta Anda untuk melewati RX dan TX… mencobanya juga, tidak berhasil.)
Saya tidak melakukan konversi level (UNO: High=5V tetapi ESP pada dasarnya adalah perangkat 3.3V… Ada beberapa FTDI yang bagus di pasaran di mana Anda bahkan dapat memilih level High Anda menjadi 5 atau 3.3V.
Sirkuit saya ditenagai oleh 3 baterai isi ulang AA - jadi sebenarnya 3 X 1.2V. Dalam fase selanjutnya saya bermaksud untuk menempatkan HT7333 antara baterai dan sirkuit untuk keselamatan; baterai yang baru diisi dapat memiliki lebih dari 1.2V dan ESP harus ditenagai dengan min. 3V dan maks. 3.6V. Juga jika saya memutuskan - di saat kelemahan - untuk memasukkan baterai Alkaline (3 X 1.5V = 4.5V) ESP saya tidak akan gosong!
Saya juga mempertimbangkan untuk menggunakan panel surya 10cm x 10cm, tetapi itu tidak sepadan dengan kerumitannya. Dengan melakukan 3 pengukuran per jam (pada dasarnya 3x 5 detik @ 100mA maks. dan sisanya @100uA), saya berharap dapat memberi daya pada sirkuit saya selama 1 tahun dengan baterai isi ulang yang sama.
Langkah 3: Bagian Arduino - ESP12
Saya melakukan proyek ini dalam langkah yang berbeda.
Ada beberapa tautan yang membantu Anda mengimpor ESP12 (alias. ESP8266) ke dalam Arduino IDE. (Saya harus menggunakan versi 2.3.0 daripada yang terbaru karena bug yang mungkin telah diselesaikan sementara itu…)
Saya mulai dengan menghubungkan ESP, melalui Arduino UNO saya (hanya digunakan sebagai jembatan antara PC saya melalui USB ke Serial) ke antarmuka serial ESP. Ada Instructables terpisah yang menjelaskan hal ini.
Dalam proyek saya yang sudah selesai, saya meninggalkan kabel untuk terhubung ke Serial jika saya perlu memecahkan masalah
Maka Anda perlu menyambungkan ESP12 Anda sebagai berikut:
pin ESP…
GND UNO GND
RX UNO RX
TX UNO TX
EN VCC
GPIO15 GND
Awalnya saya mencoba menyalakan ESP saya dari 3.3V di UNO tetapi saya dengan cepat pindah untuk menyalakan ESP saya dengan Power Supply bangku tetapi Anda juga dapat menggunakan baterai Anda.
GPIO0 Saya menghubungkan yang ini dengan jumper ke GND untuk mengaktifkan flashing (= pemrograman) ESP.
Tes pertama: biarkan jumper terbuka dan mulai monitor serial di Arduino IDE (pada 115200 baud!).
Power cycle ESP, Anda akan melihat beberapa karakter sampah dan kemudian pesan seperti:
Ai-Thinker Technology Co. Ltd. siap
Dalam mode ini, ESP bertindak sedikit seperti modem kuno. Anda perlu menggunakan perintah AT.
Coba perintah berikut:
AT+RST
dan dua perintah berikut
AT+CWMODE=3
oke
AT+CWLAP
Ini akan memberi Anda daftar semua jaringan WiFi di area tersebut.
Jika ini berhasil, Anda siap untuk langkah selanjutnya.
Langkah 4: Menguji ESP Sebagai Klien Protokol Waktu Jaringan (NTP)
Di Arduino IDE, di bawah File, Contoh, ESP8266WiFi, muat NTPClient.
Tweak kecil diperlukan untuk membuatnya bekerja; Anda perlu memasukkan SSID dan kata sandi jaringan WiFi Anda.
Sekarang tempatkan jumper, korslet GPIO0 ke GND.
Putar daya ESP dan unggah sketsa ke ESP.
Setelah kompilasi, unggahan ke ESP akan dimulai. LED biru pada ESP akan berkedip cepat saat kode sedang diunduh.
Saya perhatikan bahwa saya harus bermain-main sedikit dengan memulai ulang IDE, memulai ulang ESP sebelum unggahan berhasil.
Sebelum Anda mulai mengkompilasi/mengunggah sketsa, pastikan untuk menutup konsol serial (=monitor serial) karena ini akan mencegah Anda melakukan pengunggahan.
Setelah unggahan berhasil, Anda dapat membuka kembali monitor serial untuk melihat ESP secara efektif mendapatkan waktu dari Internet.
Hebat, Anda telah memprogram ESP Anda, terhubung ke WiFi Anda dan mendapatkan waktu dari Internet.
Langkah selanjutnya kita akan menguji DHT22.
Langkah 5: Menguji Sensor DHT22
Sekarang beberapa kabel tambahan diperlukan.
Pin DHT… Hubungkan pin 1 (di sebelah kiri) sensor ke VCC (3.3V)
Hubungkan pin 2 ESP GPIO5 (DHTPIN dalam sketsa)
Hubungkan pin 4 (di sebelah kanan) sensor ke GROUND
Hubungkan resistor 10K dari pin 2 (data) ke pin 1 (daya) sensor.
Mirip dengan tes NTP, cari sketsa DHTtester, dan atur dengan cara berikut:
#define DHTPIN 5 // kami memilih GPIO5 untuk terhubung ke sensor#define DHTTYPE DHT22 // karena kami menggunakan DHT22 tetapi kode/pustaka ini juga cocok untuk DHT11
Sekali lagi, tutup monitor serial, nyalakan ESP dan kompilasi dan flash ESP.
Jika semuanya berjalan dengan baik, Anda akan melihat pengukuran muncul di monitor serial.
Anda dapat bermain-main sedikit dengan sensor. Jika Anda menghirupnya, Anda akan melihat kelembapan naik.
Jika Anda memiliki lampu meja (non LED), Anda dapat menyinari sensor untuk memanaskannya sedikit.
Besar! Dua bagian besar dari sensor sekarang bekerja.
Pada langkah selanjutnya saya akan mengomentari kode terakhir.
Langkah 6: Menyatukannya…
Sekali lagi beberapa kabel tambahan… ini untuk memungkinkan DeepSleep.
Ingat, DeepSleep adalah fungsi luar biasa untuk perangkat IoT.
Namun jika sensor Anda diprogram untuk DeepSleep, mungkin sulit untuk memprogram ulang ESP sehingga kami akan membuat koneksi jumper lain antara
GPIO16-RST.
Ya HARUS GPIO16, karena itulah GPIO yang diprogram untuk membangunkan perangkat ketika Real Time Clock mati setelah DeepSleep!
Saat Anda menguji, Anda dapat memutuskan untuk melakukan DeepSleep 15 detik.
Ketika saya sedang debugging, saya akan memindahkan jumper ke GPIO0 sehingga saya bisa mem-flash program saya.
Setelah pengunduhan selesai, saya akan memindahkan jumper ke GPIO16 agar DeepSleep berfungsi.
Kode untuk ESP disebut TnHclient.c
Anda harus mengubah SSID, Kata Sandi, dan alamat IP server Anda.
Ada baris kode tambahan yang dapat Anda gunakan untuk memecahkan masalah atau menguji penyiapan Anda.
Langkah 7: Sisi Server
Ini adalah kesalahpahaman umum bahwa UDP tidak dapat diandalkan dan TCP…
Itu sama konyolnya dengan mengatakan palu lebih berguna daripada obeng. Mereka hanyalah alat yang sangat berguna yang berbeda dan keduanya memiliki kegunaannya sendiri.
Omong-omong, tanpa UDP Internet tidak akan berfungsi… DNS didasarkan pada UDP.
Jadi, saya memilih UDP karena sangat ringan, mudah dan cepat.
Saya cenderung berpikir bahwa WiFi saya sangat andal sehingga klien akan mengirim paling banyak 3 paket UDP jika pengakuan "OK!" tidak diterima.
Kode-C untuk TnHserver ada di file TnHServer.c.
Ada beberapa komentar dalam kode yang menjelaskannya.
Kami akan membutuhkan beberapa alat tambahan di server: rrdtool, apache dan mungkin tcpdump.
Untuk menginstal rrdtool di Raspbian Anda cukup menginstal paket seperti ini: apt-get install rrdtool
Jika Anda perlu men-debug lalu lintas jaringan, tcpdump berguna apt-get install tcpdump
Saya membutuhkan server web untuk dapat menggunakan browser untuk melihat grafik: apt-get install Apache2
Saya menggunakan alat ini: https://rrdwizard.appspot.com/index.php untuk mendapatkan perintah untuk membuat Round Robin Database. Anda hanya perlu menjalankan ini sekali (jika Anda melakukannya dengan benar pertama kali).
rrdtool create TnHdatabase.rrd --start now-10s
--langkah '1200'
'DS:Suhu:GAUGE:1200:-20.5:45.5'
'DS: Kelembaban: GAUGE: 1200:0:100.0'
'RRA:RATA-RATA:0.5:1:720'
'RRA: RATA-RATA: 0,5:3:960'
'RRA: RATA-RATA: 0,5:18:1600'
Akhirnya, saya menggunakan entri crontab untuk me-restart TnHserver saya setiap hari pada tengah malam. Saya menjalankan TnHserver sebagai pengguna biasa (mis. BUKAN root) sebagai tindakan pencegahan keamanan.
0 0 * * * /usr/bin/pkill TnHserver; /home/user/bin/TnHserver >/dev/null 2>&1
Anda dapat memeriksa apakah server TnH berjalan dengan melakukan
$ ps -elf | grep TnHserver
dan Anda dapat memverifikasi itu mendengarkan paket pada port 7777 dengan melakukan
$ netstat -anu
Koneksi Internet aktif (server dan didirikan)
Proto Recv-Q Send-Q Alamat Lokal Alamat Asing Negara
udp 0 0 0.0.0.0:7777 0.0.0.0:*
Akhirnya CreateTnH_Graphs.sh.txt adalah contoh skrip untuk menghasilkan grafik. (Saya membuat skrip sebagai root, Anda mungkin tidak ingin melakukan ini.)
Dengan menggunakan halaman web yang sangat sederhana, Anda dapat melihat grafik dari browser apa pun di jaringan rumah Anda.
Direkomendasikan:
Jaringan Sensor Suhu: 6 Langkah
Jaringan Sensor Suhu: Suhu dan kelembaban adalah data penting di lab, dapur, jalur produksi, kantor, robot pembunuh, dan bahkan rumah Anda. Jika Anda perlu memantau beberapa lokasi atau ruangan atau ruang, Anda memerlukan sesuatu yang andal, ringkas, akurat, dan
Arduino untuk Jaringan Asisten Rumah Berkabel: 5 Langkah
Arduino untuk Jaringan Asisten Rumah Berkabel: Komponen Wifi seperti berbagai Sonoff, Tasmota, dan ESP8266 sangat mudah dikonfigurasi dan digunakan, tetapi sering kali tidak semudah kelihatannya. Di lingkungan industri/bisnis, otomatisasi nirkabel tidak begitu umum. Komponen wireless kurang andal
Jaringan Rumah OpenWrt: 9 Langkah (dengan Gambar)
OpenWrt Home Network: OpenWrt adalah distribusi Linux open source yang biasanya dipasang oleh pengguna ke router Wi-Fi rumah mereka. Keamanan: Firmware router berbasis OpenWrt seringkali lebih aman daripada firmware router rumahan karena menerima keamanan reguler memperbarui
Pengontrol Jaringan Sensor Suhu Fault-Tolerant: 8 Langkah
Pengontrol Jaringan Sensor Suhu Fault-Tolerant: Instruksi ini menunjukkan kepada Anda cara mengubah papan Arduino Uno menjadi pengontrol tujuan tunggal untuk satu set sensor suhu DS18B20 yang mampu mengisolasi sensor yang rusak secara otomatis. Pengontrol dapat mengelola hingga 8 sensor dengan Arduino Uno. (A
SENSOR SUHU DENGAN LCD DAN LED (Membuat Sensor Suhu Dengan LCD dan LED): 6 Langkah (Dengan Gambar)
SENSOR SUHU DENGAN LCD DAN LED (Membuat Sensor Suhu Dengan LCD dan LED): hai, saya Devi Rivaldi mahasiswa UNIVERSITAS NUSA PUTRA dari Indonesia, di sini saya akan berbagi cara membuat sensor suhu menggunakan Arduino dengan Output ke LCD dan LED. Ini adalah pembaca suhu dengan desain saya sendiri, dengan sensor ini dan