Water Meter Reading: ESP8266 + Android

Banyak sekarang memiliki meter air. Dan sebagian besar dihadapkan dengan masalah mengambil bacaan dari meter ini dan pengiriman tepat waktu. Saya tidak terkecuali. Adalah mudah untuk mengambil kesaksian dari saya, tetapi di sini saya terus-menerus lupa untuk mengambilnya dan mengingatnya pada saat yang paling tidak tepat. Diputuskan untuk mengotomatiskan proses mengambil bacaan sehingga Anda dapat melihatnya kapan saja. Siapa yang peduli bagaimana cara mendapatkan gambar di sebelah kiri di ponsel saya, tolong, di bawah kucing.

Pendahuluan


Ide implementasi muncul setelah saya membaca artikel ini . Selama perbaikan, saya segera mengatur penghitung denyut nadi. Versi pertama perangkat berdasarkan ESP-03 dibuat. Kode ditulis dalam LUA. Data juga dikirim ke thingspeak.com .

Versi pertama


Setelah 2 bulan penggunaan, kerugian berikut diidentifikasi:

  1. Tidak ada indikasi operasi yang ringan, karena modul tergantung beberapa kali, itu penting
  2. Kompleksitas pengaturan, karena pengaturan ada dalam kode
  3. Untuk daya, diperlukan kabel dengan konektor miniUSB. Saya hanya punya ini dari Sony Playstation
  4. Tidak nyaman melihat hasil di thingspeak.com
  5. Kompleksitas relatif dari implementasi.

Oleh karena itu, diputuskan untuk membuat versi kedua, yang akan memenuhi persyaratan berikut:

  1. Konektor daya MicroUSB
  2. Lakukan konfigurasi dengan menghubungkan ke perangkat melalui WiFi
  3. Indikasi kerja
  4. Kenyamanan melihat informasi
  5. Kemudahan pengulangan
  6. Penampilan estetis
  7. Biaya rendah

Biaya


Papan sirkuit cukup sederhana. Ini didasarkan pada ESP-03 yang sama. Situs esp8266.ru membantu saya dengan fitur utama koneksi .



DINGIN, PANAS - Soket RJ9
LED1 - berfungsi untuk menunjukkan operasi papan (mode pengaturan - terus-menerus menyala, sering berkedip-kedip, operasi normal - berkedip sesekali)
LED2 - menunjukkan catu daya
R3, R4 - 330 Ohm
R1, R2, R5, R6 , R7 - 6.8kOhm
C1 - 33mkF kapasitor tantalum;
C2 - 0.1mkF kapasitor keramik;
LM1117 - untuk mengubah 5V menjadi 3.3V;
J1 - jumper untuk mem-flash ESP-03
BTN - untuk memilih mode operasi papan

Konektor miniUSB telah ditambahkan untuk memasang modul dan skrip rekaman. Untuk daya, konektor microUSB lain ditambahkan secara terpisah tanpa menghubungkan pin RX dan TX (tidak ditampilkan pada diagram). Ini disebabkan oleh fakta bahwa jika Anda memberi daya pada modul melalui konektor miniUSB, di mana RX dan TX terhubung, modul untuk beberapa alasan membeku. Saya mencoba menarik RX dan TX, tetapi tidak ada yang membantu. Karena itu, saya memutuskan untuk membiarkannya seperti itu, selain itu saya punya banyak kabel dengan microUSB.

Dimensi komponen membuatnya mudah untuk membuat papan menggunakan metode LUT, yang dilakukan untuk debugging skrip. Kemudian, saya memesan pembuatan papan dari Cina . Ukuran papan disesuaikan agar sesuai dengan case yang ada.

Foto sebelum instalasi:

gambar


Foto setelah:



Firmware


Saya mengumpulkan firmware menggunakan konstruktor online . Memungkinkan untuk membuat firmware NodeMCU hanya dengan modul yang diperlukan, yang memungkinkan Anda meningkatkan jumlah memori bebas. Saya tidak mengalami masalah dengan kekurangan memori, dan sebagai hasilnya, sekitar 30% dari ruang kosong dihabiskan untuk skrip dan file tambahan. Saya mengunggah firmware menggunakan nodemcu-flasher . Saya menggunakan ESPlorer untuk menulis dan mengisi skrip .

Pengoperasian penghitung pulsa mirip dengan menekan tombol. Ketika nilai-nilai tertentu dilewatkan, kontak ditutup dan dibuka. Penghitung saya menutup kontak di nomor 7, dan dibuka di nomor 2. Saya menggantung penghitung di GPIO12, port GPIO13 dan ground dengan pull-up pada catu daya (resistor internal digunakan). Jadi, ketika port mengubah nilainya menjadi 0, maka kita dapat mengasumsikan bahwa 10 l air dihabiskan.

Perangkat dapat beroperasi dalam 2 mode: mode pengaturan dan mode membaca. Untuk beralih ke mode pengaturan saat daya diterapkan, tahan tombol BTN. Ini membutuhkan waktu 2 detik. Dalam mode ini, ESP mulai bekerja sebagai titik akses dan merupakan server web sederhana. Jaringan ESP yang dapat diakses muncul - ???????, di mana alih-alih karakter? akan menjadi id esp. Untuk mengonfigurasi, Anda harus terhubung ke jaringan ini dan di browser buka 1.1.1.1. Halaman berikut muncul:



Jika tombol tidak dijepit saat power-up, maka mode membaca dimulai. Dalam mode ini, status port GPIO12 dan GPIO13 diperiksa setiap detik. Jika 0 muncul di suatu tempat, maka nilai yang sesuai meningkat. Awalnya, saya melakukan pemeriksaan berbasis interupsi, tetapi metode ini ternyata tidak dapat diandalkan (ESP digantung secara berkala). Setiap menit ada upaya untuk mengirim data ke server (jika ada perubahan). Untuk setiap penghitung, 2 nilai ditransmisikan: pembacaan penghitung saat ini dan jumlah perubahan sejak transfer data terakhir.

Aplikasi Android


Seperti yang saya katakan, pada thingspeak.com saya merasa tidak nyaman melihat bacaan. Saya memutuskan untuk menulis aplikasi Android. Hasilnya adalah aplikasi yang memungkinkan Anda untuk:

  • Buat grafik konsumsi berdasarkan jam, hari, bulan
  • Akses data offline
  • Tambahkan widget metrik

Thingspeak.com memiliki API yang memungkinkan Anda mengumpulkan data. Menggunakan API ini, aplikasi pada setiap peluncuran atau sebelum memperbarui widget meminta data terbaru dan menyimpannya ke database lokal. Pekerjaan lebih lanjut sudah berlangsung dengannya. Menambahkan 2 jenis widget ke aplikasi: sebagai penghitung dan sebagai grafik konsumsi. Ternyata cukup nyaman.

Tangkapan layar aplikasi


Saya berpikir untuk menerapkan pembacaan meter otomatis, tetapi saya tidak menemukan API yang sudah jadi. Itu mungkin untuk menganalisis aplikasi resmi, tetapi itu tidak dapat diandalkan. Untuk Moskow ada EMP . Saya mendaftar di sana dan mendapatkan akses ke API mereka, tetapi itu hanya memungkinkan Anda untuk melihat bacaan apa yang diberikan, yang tidak menarik bagi saya.

Kesimpulan


Biaya perangkat, tidak termasuk kasing, berjumlah sekitar 450 rubel. Beberapa komponen dibeli di toko terkenal. Jika Anda mengambil semuanya dari Cina, maka biaya dapat dikurangi menjadi sekitar 370 rubel. Versi ini selama 4 bulan tidak pernah digantung atau gagal. Perangkat yang dihasilkan mudah untuk diulang dan dimodifikasi. Dengan bantuannya, saya mengetahui bahwa mangkuk toilet itu perlahan tapi pasti mengalir air.

Tautan yang bermanfaat:

Source: https://habr.com/ru/post/id395459/


All Articles