Daftar Isi:

WiFi Temperature Logger (dengan ESP8266): 11 Langkah (dengan Gambar)
WiFi Temperature Logger (dengan ESP8266): 11 Langkah (dengan Gambar)

Video: WiFi Temperature Logger (dengan ESP8266): 11 Langkah (dengan Gambar)

Video: WiFi Temperature Logger (dengan ESP8266): 11 Langkah (dengan Gambar)
Video: Blynk ESP8266 DHT11 Temperature Sensor 2024, Juli
Anonim
Image
Image
Bahan
Bahan

Halo, senang melihat Anda di sini. Saya berharap bahwa dalam instruksi ini Anda akan menemukan beberapa informasi yang berguna. Jangan ragu untuk mengirimi saya saran, pertanyaan, … Berikut adalah beberapa data dasar dan tinjauan singkat proyek. Untuk pengguna seluler: Video. Beri tahu saya pendapat Anda tentang proyek di bagian komentar, terima kasih. Saya baru saja membeli papan NodeMcu (berbasis esp8266) hanya untuk mencobanya jadi ini bukan proyek yang benar-benar canggih. Tapi itu berfungsi dan itu yang saya butuhkan, jadi tidak apa-apa. Fungsi utama data logger ini adalah untuk mengumpulkan suhu dan menyimpannya ke server. Ini memungkinkan pengguna memeriksa data dan grafik secara online bahkan ketika mereka tidak berada di lokasi logger yang sama (misalnya untuk stasiun cuaca). Fitur berguna lainnya adalah pembaruan OTA yang disertakan dalam kode yang memungkinkan pengguna memperbarui dan menyesuaikan perangkat lunak dengan mudah. Saya akan menganalisis dua sensor dan metode akuisisi terkait untuk menyeimbangkan semua pro dan kontra.

Spoiler: setelah sedikit pengujian saya menemukan bahwa sensor digital seperti DS18B20 adalah solusi terbaik karena menawarkan stabilitas dan akurasi yang lebih tinggi. Ini sudah tahan air dan dengan kabel.

Langkah 1: Bahan

Bahan
Bahan
Bahan
Bahan
Bahan
Bahan

Ini adalah proyek minimal dengan hanya beberapa komponen eksternal, untuk ini daftar BOM akan sangat singkat. Namun, mari kita lihat materi apa yang diminta:

  • NodeMcu V3 (atau prosesor ESP8266 yang kompatibel);
  • LED RGB (anoda umum);
  • Resistor untuk led (1x10Ω, 1x22Ω, 1x100Ω, 1x10kΩ)
  • DS18B20 (Termometer Terintegrasi Maxim);
  • LM35 (Termometer Instrumen Texas);
  • Baterai eksternal (opsional);
  • Kabel;
  • Konektor (untuk membuatnya lebih "maju");
  • Box (opsional, sekali lagi untuk membuatnya lebih "maju");
  • Pemegang yang dipimpin (opsional);

Catatan: Seperti yang saya katakan, Anda harus memilih salah satu dari dua metode. Jika Anda memilih termometer LM35, Anda memerlukan beberapa komponen lain:

  • Attiny45/85;
  • programmer AVR (atau Arduino sebagai ISP);
  • Resistor (1x1kΩ, 1x2k, 1x10kΩ, 1x18kΩ)
  • Konektor strip 2.54mm (opsional)
  • Dioda (2x1N914)
  • Perfboard atau PCB;

Langkah 2: Memilih Sensor

Memilih Sensor
Memilih Sensor

Memilih sensor bisa menjadi langkah yang sulit: saat ini ada banyak transduser (TI menawarkan 144 elemen berbeda) baik analog maupun digital dengan rentang suhu, akurasi, dan casing yang berbeda. Sensor Analog (46 bagian tersedia dari TI): Kelebihan:

  • Data logger dapat dengan mudah diubah dari suhu ke kuantitas lain (tegangan, arus, …);
  • Mungkin sedikit lebih murah;
  • Mudah digunakan karena tidak memerlukan perpustakaan khusus;

Kontra:

  • Memerlukan ADC (yang dapat mempengaruhi akurasi pengukuran) dan komponen eksternal lainnya. Karena esp8266 hanya memiliki satu ADC (dan tidak terlalu akurat), saya sarankan untuk menggunakan yang eksternal.
  • Membutuhkan kabel khusus dengan penolakan kebisingan karena tegangan yang diinduksi dapat mengubah hasilnya.

Setelah sedikit berpikir saya memutuskan untuk menggunakan LM35, sensor linier dengan faktor skala +10mV/°C dengan akurasi 0,5°C dan arus yang sangat rendah (sekitar 60uA) dengan tegangan operasi dari 4V hingga 30V. Untuk lebih jelasnya saya sarankan untuk melihat datasheetnya: LM35.

Sensor Digital (sangat disarankan) Kelebihan:

Hampir semua komponen eksternal diperlukan;

ADC terintegrasi

Kontra:

Perpustakaan permintaan atau perangkat lunak mengkodekan sinyal digital (I2C, SPI, Serial, One Wire, …);

Lebih mahal;

Saya memilih DS18B20 karena saya menemukan satu set 5 sensor tahan air di Amazon dan karena didokumentasikan secara luas di internet. Fitur utama adalah pengukuran 9-12bit, bus 1-Wire, tegangan suplai 3,0 hingga 5,5, akurasi 0,5°C. Sekali lagi, untuk lebih detail di sini adalah datasheet: DS18B20.

Langkah 3: LM35

LM35
LM35
LM35
LM35
LM35
LM35

Mari kita analisis bagaimana saya menerapkan ADC eksternal dan fitur lain untuk termometer LM35. Saya menemukan kabel dengan tiga kabel, satu dengan pelindung dan dua tanpa. Saya memutuskan untuk menambahkan kapasitor decoupling untuk menstabilkan tegangan suplai di dekat sensor. Untuk mengubah suhu analog ke digital, saya telah menggunakan mikroprosesor Attiny85 dalam paket dip8 (sekali lagi untuk informasi lebih lanjut lihat lembar data: attiny85). Yang paling penting bagi kami adalah ADC 10 bit (bukan yang terbaik tapi cukup presisi untuk saya). Untuk berkomunikasi dengan Esp8266 saya memutuskan untuk menggunakan komunikasi Serial mengingat bahwa esp8266 bekerja dengan 3.3V dan attiny85 pada 5V (karena perlu menyalakan sensor). Untuk mencapai itu, saya menggunakan pembagi tegangan sederhana (lihat skema). Untuk membaca suhu negatif kita perlu menambahkan beberapa komponen eksternal (resistor 2x1N914 dan 1x18k), karena saya tidak ingin menggunakan catu daya negatif. Berikut kodenya: Repositori TinyADC. Catatan: untuk mengkompilasi kode ini Anda harus menginstal attiny to ide (masukkan ini di opsi: https://drazzy.com/package_drazzy.com_index.json), jika Anda tidak tahu cara melakukannya, cari saja di Google. Atau langsung unggah file.hex.

Langkah 4: DS18B20

DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20

Saya membeli sensor-sensor itu dari Amazon (5 harganya sekitar € 10). Itu tiba dengan penutup stainless steel dan panjang kabel 1m. Sensor ini dapat mengembalikan data suhu 9 hingga 12 bit. Banyak sensor yang bisa dipasang di pin yang sama karena semuanya memiliki ID yang unik. Untuk mencolokkan DS18B20 ke esp8266 Anda bisa mengikuti skema (foto kedua). Karena saya telah memutuskan bahwa logger saya akan memiliki tiga probe, saya harus membedakan yang mana. Jadi saya berpikir untuk memberi mereka warna yang terkait melalui perangkat lunak ke alamat mereka. Saya telah menggunakan beberapa tabung termo-menyusut (foto ketiga).

Langkah 5: Kode ESP8266

Kode ESP8266
Kode ESP8266
Kode ESP8266
Kode ESP8266

Karena saya baru di dunia ini, saya memutuskan untuk menggunakan banyak perpustakaan. Seperti yang dikatakan dalam pendahuluan, fitur utama adalah:

  • Pembaruan OTA: Anda tidak perlu mencolokkan esp8266 ke komputer Anda setiap kali Anda perlu mengunggah kode (Anda harus melakukannya hanya pertama kali);
  • Pengelola nirkabel, jika jaringan nirkabel berubah, Anda tidak perlu mengunggah ulang sketsa. Anda cukup mengonfigurasi kembali parameter jaringan yang terhubung ke titik akses esp8266;
  • Transmisi data Thingspeak;
  • Baik LM35 dan DS18B20 didukung;
  • Antarmuka Pengguna Sederhana (LED RGB menunjukkan beberapa informasi yang berguna);

Mohon maaf karena perangkat lunak saya bukan yang terbaik dan tidak tertata dengan baik. Sebelum mengunggah ke perangkat, Anda perlu mengubah beberapa parameter agar sesuai dengan kode dengan pengaturan Anda. Di sini Anda dapat mengunduh perangkat lunak. Konfigurasi umum LM35 dan DS18B20Anda perlu mengubah definisi pin, token, nomor saluran, pengguna, dan kata sandi untuk pembaruan OTA. Baris dari 15 hingga 23.

#tentukan PINSMU yang merah #tentukan PINSMU yang hijau

#define blue YOURPINHERE const char* host = "pilih alamat host"; //tidak terlalu dibutuhkan anda dapat meninggalkan esp8266-webupdate const char* update_path = "/firmware"; //untuk mengubah alamat update ex: 192.168.1.5/firmware const char* update_username = "YOURUSERHERE"; const char* update_password = "KATA SANDI ANDA; myChannelNumber panjang yang tidak ditandatangani = CHANNELNUMBERHERE; const char * myWriteAPIKey = "WRITEAPIHERE";

Langkah 6: Kode ESP8266: Pengguna LM35

Anda perlu menghubungkan papan attiny ke esp8266, untuk memberi daya pada unit ADC menggunakan pin VU dan pin G. Anda harus memilih pin mana yang ingin Anda gunakan untuk komunikasi serial (agar serial perangkat keras tetap gratis untuk tujuan debug). Pin tx harus dipilih tetapi tidak benar-benar digunakan. (Baris 27). SoftwareSerial mySerial (RXPIN, TXPIN); Di atas Anda perlu menambahkan:#define LM35USER

Langkah 7: Kode ESP8266: Pengguna DS18B20

Sebagai operasi pertama, Anda perlu mengidentifikasi Alamat perangkat untuk setiap sensor. Kompilasi dan program kode ini ke esp dan cari hasilnya secara serial. Kode dapat ditemukan di sini (cari judul ini di halaman: «Baca Alamat Internal DS18B20 individual»). Hubungkan hanya satu sensor untuk mendapatkan alamat, hasilnya harus seperti ini (angka acak di sini! Seperti contoh):0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12Kemudian Anda perlu mengubah kode saya di bagian " Konfigurasi untuk DS18B20" (baris 31 hingga 36)":

#define ONE_WIRE_BUS ONEWIREPINHERE #define TEMPERATURE_PRECISION TEMPBITPRECISION //(dari 9 hingga 12) #define delayDallas READINTERVAL //(Dalam Milidetik, minimum adalah 15 detik atau 15000mS) DeviceAddress blueSensor = { 0x11, 0x22, 0x11, 0x22, 0x11, 0x22, 0x11, 0x22, 0x12}; //UBAH DENGAN ALAMAT ANDA DeviceAddress redSensor = { 0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12}; //UBAH DENGAN ALAMAT ANDA DeviceAddress greenSensor = {0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12 }; //UBAH DENGAN ALAMAT ANDA Di bagian atas Anda perlu menambahkan:#define DSUSER

Langkah 8: Trik Kecil ESP8266

Trik Kecil ESP8266
Trik Kecil ESP8266

Setelah sedikit pengujian saya menemukan bahwa jika Anda memasang esp8266 tanpa pemrograman, kode tidak akan berjalan sampai Anda menekan reset satu kali. Untuk mengatasi masalah ini, setelah sedikit riset, saya menemukan bahwa Anda harus menambahkan resistor pull-up dari 3.3V ke D3. Ini akan memberitahu prosesor untuk memuat kode dari memori flash. Dengan metode ini, D3 dapat langsung digunakan untuk input data untuk sensor DS18B20.

Langkah 9: Operasi Pertama Kali

Operasi Pertama Kali
Operasi Pertama Kali
Operasi Pertama Kali
Operasi Pertama Kali

Jika Anda telah mengunggah kode dengan benar tetapi tidak pernah menggunakan pustaka pengelola Wifi, inilah saatnya untuk mengonfigurasi koneksi wifi Anda. Tunggu sampai Anda melihat led RGB berkedip lebih cepat dari sebelumnya, lalu cari dengan ponsel atau PC Anda jaringan wifi yang disebut "AutoConnectAp" dan hubungkan. Setelah koneksi, buka browser web dan masukkan 192.168.4.1, Anda akan menemukan antarmuka GUI manajer wifi (lihat foto) dan tekan "Konfigurasi Wifi". Tunggu esp8266 untuk mencari jaringan wifi, dan pilih yang diinginkan. Masukkan kata sandi dan tekan "simpan". Esp8266 akan restart (jangan pedulikan RGB led kali ini karena akan menampilkan beberapa informasi acak) dan terhubung ke jaringan.

Langkah 10: Kesimpulan

Kesimpulan
Kesimpulan
Kesimpulan
Kesimpulan
Kesimpulan
Kesimpulan
Kesimpulan
Kesimpulan

Pada akhirnya, berikut adalah grafik yang diambil dari data logger yang sedang bekerja saat mencatat suhu freezer saya. Warna oranye adalah DS18B20 dan warna biru adalah LM35 dan sirkuitnya. Anda dapat melihat perbedaan terbesar dalam akurasi dari sensor digital ke analog (dengan "sirkuit ADC" saya yang buruk) yang memberikan beberapa data non-fisik. Kesimpulannya, jika Anda ingin membuat logger ini, saya sarankan menggunakan sensor suhu digital DS18B20 karena itu lebih mudah dibaca dan hampir "plug and play", lebih stabil dan akurat, berjalan pada 3.3V dan hanya membutuhkan satu pin untuk banyak sensor. Terima kasih atas perhatiannya, saya harap proyek ini baik untuk Anda dan Anda telah menemukan beberapa informasi yang berguna. Dan bagi yang ingin mewujudkannya, saya harap saya memberikan semua informasi yang dibutuhkan. Jika tidak jatuh bebas untuk menanyakan semuanya, saya akan dengan senang hati menjawab semua pertanyaan. Karena saya bukan penutur bahasa Inggris, jika ada yang salah atau tidak dapat dimengerti, beri tahu saya. Jika Anda menyukai proyek ini, beri suara untuk kontes dan/atau tinggalkan komentar. Ini akan mendorong saya untuk terus memperbarui dan menerbitkan konten baru. Terima kasih.

Direkomendasikan: