Isi kandungan:

Sensor Tahap Pengumpul Air Bertenaga Bateri: 7 Langkah (dengan Gambar)
Sensor Tahap Pengumpul Air Bertenaga Bateri: 7 Langkah (dengan Gambar)

Video: Sensor Tahap Pengumpul Air Bertenaga Bateri: 7 Langkah (dengan Gambar)

Video: Sensor Tahap Pengumpul Air Bertenaga Bateri: 7 Langkah (dengan Gambar)
Video: Proses pasang Ring Jantung atau Cincin Jantung #cardio #cardiology #ringjantung 2024, November
Anonim
Sensor Tahap Pengumpul Air Bertenaga Bateri
Sensor Tahap Pengumpul Air Bertenaga Bateri
Sensor Tahap Pengumpul Air Bertenaga Bateri
Sensor Tahap Pengumpul Air Bertenaga Bateri

Rumah kami mempunyai tangki air yang diberi makan dari hujan yang turun di atap, dan digunakan untuk tandas, mesin basuh dan menyiram tanaman di kebun. Selama tiga tahun terakhir, musim panas sangat kering, jadi kami memerhatikan paras air di tangki. Sejauh ini, kami menggunakan tongkat kayu, yang kami masukkan ke dalam tangki dan menandakan tingkatnya. Tetapi pasti mustahil untuk memperbaiki perkara ini!

Di sinilah projek ini masuk. Ideanya adalah untuk memasang sensor jarak ultrasonik di bahagian atas tangki. Sensor ini berfungsi sebagai sonar yang memancarkan gelombang suara, yang kemudian dipantulkan oleh permukaan air. Dari masa yang diperlukan untuk gelombang kembali dan kelajuan suara, anda boleh mengira jarak ke permukaan air dan menentukan tangki penuh.

Oleh kerana saya tidak mempunyai sambungan elektrik dekat dengan tangki, alat ini berfungsi dengan sempurna pada bateri. Ini bermakna saya harus sedar tentang penggunaan kuasa semua bahagian. Untuk menghantar kembali data, saya memutuskan untuk menggunakan Wifi bawaan mikrocip ESP8266. Walaupun Wifi cukup haus kuasa, ia mempunyai kelebihan berbanding jenis sambungan radio yang lain: anda boleh terus menyambung ke penghala wayarles rumah anda tanpa perlu membuat peranti lain yang berfungsi sebagai geganti.

Untuk menjimatkan kuasa saya akan meletakkan ESP8266 dalam tidur nyenyak sepanjang masa dan melakukan pengukuran setiap jam. Untuk tujuan saya mengikuti tahap air ini lebih daripada mencukupi. Data akan dihantar ke ThingSpeak dan kemudian dapat dibaca di telefon pintar melalui aplikasi.

Satu lagi perincian! Kelajuan suara, penting untuk pengukuran jarak, bergantung pada suhu dan tahap kelembapan yang lebih rendah. Untuk pengukuran luar yang tepat sepanjang musim, kami akan menggunakan sensor BME280, yang mengukur suhu, kelembapan dan tekanan. Sebagai bonus ini dibuat dari sensor paras air kami dan juga stesen cuaca mini.

Bahagian:

  • 1x ESP8266 ESP-12F.
  • 1x plat penyesuai ESP-12F.
  • 1x FT232RL FTDI: Penyesuai USB ke Serial.
  • 1x HC-SR04-P: modul pengukuran jarak ultrasonik. Perhatikan bahawa P itu penting, kerana ini adalah versi yang mempunyai voltan operasi minimum 3V yang rendah.
  • 1x BME280 3.3V versi: sensor suhu, tekanan dan kelembapan.
  • 1x IRL2203N: transistor MOSFET saluran n.
  • 1x MCP1700-3302E versi 3.3V: pengatur voltan.
  • Bateri AA yang boleh dicas semula 3x, mis. 2600mAh.
  • 1x pemegang bateri untuk 3 bateri.
  • 1x papan roti.
  • Perintang: 1x 470K, 1x 100K, 4x 10K.
  • Kapasitor: 2x seramik 1uF.
  • Suis togol 3x.
  • Wayar papan roti berbentuk-U.
  • Wayar pelompat.
  • Bekas sup plastik 1l.
  • Cincin pelekat untuk bekas.

Saya menyediakan kod di GitHub.

Langkah 1: Mengenal Sensor Jarak Ultrasonik

Mengenal Sensor Jarak Ultrasonik
Mengenal Sensor Jarak Ultrasonik
Mengenal Sensor Jarak Ultrasonik
Mengenal Sensor Jarak Ultrasonik

Kami akan mengukur jarak ke permukaan air dengan sensor ultrasonik, HC-SR04-P. Sama seperti kelawar, sensor ini menggunakan sonar: ia mengirimkan denyut suara dengan frekuensi yang terlalu tinggi untuk telinga manusia, oleh itu ultrasonik, dan menunggu ia memukul objek, memantulkan dan kembali. Jarak kemudian dapat dihitung dari waktu yang diperlukan untuk menerima gema dan kelajuan suara.

Secara konkrit, jika pin Trig ditarik tinggi sekurang-kurangnya 10 μs, sensor akan menghantar pecahan 8 denyutan dengan frekuensi 40 Hz. Jawapannya kemudian diperolehi pada pin Echo dalam bentuk nadi dengan durasi sama dengan masa antara menghantar dan menerima denyut ultrasonik. Kemudian kita harus membahagi dengan 2, kerana denyut ultrasonik berulang-ulang dan kita memerlukan masa perjalanan sehala, dan kalikan dengan kelajuan suara, iaitu sekitar 340 m / s.

Tetapi tunggu sebentar! Sebenarnya, kelajuan suara bergantung pada suhu dan tahap kelembapan yang lebih rendah. Adakah saya memilih atau adakah ini relevan? Dengan menggunakan alat pengiraan, kita dapati pada musim sejuk (mengambil -5 ° C) kita dapat memiliki 328.5 m / s, dan pada musim panas (mengambil 25 ° C) 347.1 m / s. Oleh itu, anggaplah masa perjalanan sehala 3 ms. Pada musim sejuk, ini bermaksud 98.55 cm dan pada musim panas 104.13 cm. Itu perbezaannya! Oleh itu, untuk mendapatkan ketepatan yang mencukupi sepanjang musim dan bahkan siang dan malam, kita harus menambahkan termometer pada persediaan kita. Saya memutuskan untuk memasukkan BME280, yang mengukur suhu, kelembapan dan tekanan. Dalam kod yang saya gunakan dalam fungsi speedOfSound formula yang mengira kelajuan suara dari ketiga-tiga parameter, walaupun suhu adalah faktor yang paling penting. Kelembapan masih mempunyai kesan yang lebih kecil, tetapi kesan tekanan dapat diabaikan. Kita boleh menggunakan formula yang lebih sederhana dengan hanya mengambil kira suhu yang saya laksanakan dalam speedOfSoundSimple.

Terdapat satu perkara penting lagi pada HC-SR04. Terdapat dua versi yang tersedia: versi standard beroperasi pada 5V, sementara HC-SR04-P dapat beroperasi pada jarak voltan dari 3V hingga 5V. Oleh kerana 3 bateri AA yang boleh dicas semula memberikan sekitar 3x1.25V = 3.75V, penting untuk mendapatkan versi P. Sebilangan penjual mungkin menghantar yang salah. Oleh itu, lihat gambar jika anda membelinya. Kedua-dua versi kelihatan berbeza di bahagian belakang dan depan seperti yang dijelaskan di halaman ini. Di bahagian belakang pada versi P, ketiga-tiga cip itu mendatar manakala pada versi standard satu menegak. Di bahagian depan versi standard mempunyai komponen perak tambahan.

Di litar elektronik kita akan menggunakan transistor sebagai suis untuk mematikan kuasa ke sensor ultrasonik ketika persediaan kita tidur nyenyak untuk menjimatkan bateri. Jika tidak, ia akan memakan lebih kurang 2mA. BME280 sebaliknya hanya memakan sekitar 5 μ ketika tidak aktif, jadi tidak perlu mematikannya dengan transistor.

Langkah 2: Pilihan Lembaga ESP8266

Pilihan Lembaga ESP8266
Pilihan Lembaga ESP8266

Untuk mengoperasikan sensor selama mungkin pada bateri, kita harus menjimatkan penggunaan tenaga. Walaupun Wifi ESP8266 menyediakan cara yang sangat mudah untuk menghubungkan sensor kami ke awan, ia juga cukup haus tenaga. Dalam operasi, ESP8266 menggunakan sekitar 80mA. Jadi dengan bateri 2600 mAh, kami hanya dapat menjalankan peranti kami paling lama 32 jam sebelum kosong. Dalam praktiknya, ia akan menjadi kurang kerana kita tidak akan dapat menggunakan kapasiti 2600 mAh sepenuhnya sebelum voltan turun ke tahap yang terlalu rendah.

Nasib baik ESP8266 juga mempunyai mod tidur nyenyak, di mana hampir semuanya dimatikan. Oleh itu, rencananya adalah untuk meletakkan ESP8266 dalam tidur yang nyenyak dan selalu membangunkannya untuk membuat pengukuran dan menghantar data melalui Wifi ke ThingSpeak. Menurut halaman ini, waktu tidur dalam waktu maksimum adalah sekitar 71 minit, tetapi sejak inti ESP8266 Arduino 2.4.1, ia telah meningkat menjadi sekitar 3.5 jam. Dalam kod saya, saya tinggal selama satu jam.

Saya mula-mula mencuba papan pengembangan NodeMCU yang selesa, tetapi menyedihkan, dalam tidur nyenyak masih memakan sekitar 9 mA, yang memberi kita paling lama 12 hari tidur nyenyak tanpa mempertimbangkan selang waktu bangun. Pelakunya yang penting adalah pengatur voltan AMS1117, yang menggunakan kuasa walaupun anda cuba memintasnya dengan menyambungkan bateri terus ke pin 3.3V. Halaman ini menerangkan cara mengeluarkan pengatur voltan dan USB UART. Namun, saya tidak pernah berjaya melakukannya tanpa memusnahkan papan saya. Lebih-lebih lagi, setelah mengeluarkan UART USB, anda tidak dapat menyambung ke ESP8266 lagi untuk mengetahui apa yang salah.

Sebilangan besar papan pengembangan ESP8266 nampaknya menggunakan pengatur voltan AMS1117 yang boros. Satu pengecualian adalah WEMOS D1 mini (gambar di sebelah kiri) yang disertakan dengan ME6211 yang lebih menjimatkan. Memang, saya dapati bahawa WEMOS D1 mini menggunakan sekitar 150 μA dalam tidur nyenyak, yang lebih serupa dengannya. Sebahagian besarnya mungkin disebabkan oleh USB UART. Dengan papan ini, anda mesti menyusun kepala untuk pin anda.

Walau bagaimanapun, kita boleh melakukannya dengan lebih baik menggunakan papan tanpa tulang seperti ESP-12F (gambar di sebelah kanan), yang tidak mempunyai USB UART atau pengatur voltan. Dengan memberi makan pin 3.3V, saya mendapati penggunaan tidur nyenyak hanya 22 μA!

Tetapi untuk menjadikan ESP-12F berfungsi sebagai persediaan untuk pematerian dan sedikit lebih banyak pengaturcaraannya! Lebih jauh kecuali bateri secara langsung memberikan voltan yang betul, antara 3V dan 3.6V, kita perlu menyediakan pengatur voltan kita sendiri. Dalam praktiknya, sukar untuk mencari sistem bateri yang memberikan voltan dalam julat ini sepanjang kitaran pengosongan penuh. Ingat, kita juga perlu menghidupkan sensor HC-SR04-P, yang secara teorinya dapat berfungsi dengan voltan serendah 3V, tetapi berfungsi lebih tepat jika voltan lebih tinggi. Lebih-lebih lagi dalam rajah saya, HC-SR04-P dihidupkan oleh transistor, yang menyebabkan penurunan voltan tambahan kecil. Kami akan menggunakan pengatur voltan MCP1700-3302E. Voltan input maksimum adalah 6V jadi kami memasangnya dengan sehingga 4 bateri AA. Saya memutuskan untuk menggunakan 3 bateri AA.

Langkah 3: Buat Saluran ThingSpeak

Kami akan menggunakan ThingSpeak, perkhidmatan cloud IoT, untuk menyimpan data kami. Pergi ke https://thingspeak.com/ dan buat akaun. Setelah anda log masuk, klik butang Saluran Baru untuk membuat saluran. Dalam Saluran Tetapan isikan nama dan keterangan yang anda mahu. Seterusnya kami beri nama bidang saluran dan aktifkan dengan mengklik kotak pilihan di sebelah kanan. Sekiranya anda menggunakan kod saya tidak berubah medan adalah seperti berikut:

  • Medan 1: paras air (cm)
  • Medan 2: tahap bateri (V)
  • Medan 3: suhu (° C)
  • Medan 4: kelembapan (%)
  • Medan 5: tekanan (Pa)

Untuk rujukan di masa depan, tuliskan ID Saluran, Kunci API Baca dan Kunci API Tulis, yang boleh didapati di kunci API menu.

Anda boleh membaca data ThingSpeak pada telefon pintar anda menggunakan aplikasi. Pada telefon android saya, saya menggunakan widget Monitor IoT ThingSpeak. Anda mesti mengkonfigurasinya dengan ID Saluran dan Kunci API Baca.

Langkah 4: Cara Mengatur ESP-12F

Cara Mengatur ESP-12F
Cara Mengatur ESP-12F
Cara Mengatur ESP-12F
Cara Mengatur ESP-12F

Kami memerlukan papan tanpa tulang untuk menjimatkan penggunaan bateri, tetapi kekurangannya adalah bahawa agak sukar untuk diprogramkan daripada papan pengembangan dengan USB UART terbina dalam.

Kami akan menggunakan Arduino IDE. Terdapat Instruksional lain yang menerangkan bagaimana menggunakannya jadi saya akan memberi penerangan ringkas di sini. Langkah-langkah untuk membuatnya siap untuk ESP8266 adalah:

  • Muat turun Arduino IDE.
  • Pasang sokongan untuk papan ESP8266. Dalam menu Fail - Keutamaan - Tetapan tambahkan URL https://arduino.esp8266.com/stable/package_esp8266com_index.json ke URL Pengurus Papan Tambahan. Selanjutnya dalam menu Tools - Board - Boards Manager pasang esp8266 oleh esp8266 komuniti.
  • Pilih sebagai Papan: Modul ESP8266 Generik.

Untuk mengendalikan ESP-12F saya menggunakan plat penyesuai, biasanya terdapat di kedai dalam talian. Saya menyisipkan cip ke pinggan dan kemudian menyisipkan tajuk ke piring. Barulah saya dapati bahawa plat penyesuai terlalu lebar untuk papan roti standard! Ia tidak memberikan pin percuma di sebelah untuk membuat sambungan anda.

Penyelesaian yang saya cari adalah menggunakan wayar berbentuk U dan menghubungkannya seperti dalam gambar di sebelah kanan sebelum meletakkan ESP8266 dengan plat penyesuai di papan roti. Oleh itu, GND dan VCC disambungkan ke rel papan roti dan pin yang tersisa disediakan lebih jauh di bawah papan roti. Kelemahannya ialah papan roti anda akan penuh dengan wayar setelah anda menyelesaikan litar lengkap. Penyelesaian lain ialah memasangkan dua papan roti bersama seperti yang ditunjukkan dalam video ini.

Seterusnya, untuk memprogram ESP-12F melalui port USB komputer anda, kami memerlukan penyesuai USB ke siri. Saya menggunakan pengaturcara FT232RL FTDI. Pengaturcara mempunyai pelompat untuk memilih antara 3.3V atau 5V. Ia harus diletakkan pada 3.3V untuk ESP8266. Jangan lupa kerana 5V mungkin menggoreng cip anda! Pemasangan pemacu harus automatik, tetapi jika pengaturcaraan tidak berfungsi, anda boleh mencuba memasangnya secara manual dari halaman ini.

ESP8266 mempunyai mod pengaturcaraan untuk memuat naik firmware baru ke denyar, dan mod denyar untuk menjalankan firmware semasa dari memori denyar. Untuk memilih antara mod ini, beberapa pin mesti mengambil nilai tertentu pada masa boot:

  • Pengaturcaraan: GPIO0: rendah, CH-PD: tinggi, GPIO2: tinggi, GPIO15: rendah
  • Kilat: GPIO0: tinggi, CH-PD: tinggi, GPIO2: tinggi, GPIO15: rendah

Plat penyesuai sudah mengurus menarik CH-PD dan menarik GPIO15 dengan perintang 10K.

Oleh itu, dalam litar elektronik kita masih perlu melakukan peningkatan GPIO2. Kami juga menyediakan sakelar untuk meletakkan ESP8266 dalam pengaturcaraan atau dalam mod flash dan sakelar untuk menetapkannya semula, yang dilakukan dengan menghubungkan RST ke tanah. Selanjutnya pastikan anda menyambungkan pin TX FT232RL ke pin RXD ESP8266 dan sebaliknya.

Urutan pengaturcaraan adalah seperti berikut:

  • Tetapkan GPIO2 ke rendah dengan menutup suis pengaturcaraan.
  • Tetapkan semula ESP8266 dengan menutup dan kemudian membuka semula suis tetapan semula. ESP8266 kini dimuat dalam mod pengaturcaraan.
  • Atur kembali GPIO2 ke tinggi dengan membuka suis pengaturcaraan.
  • Muat naik firmware baru dari Arduino IDE.
  • Tetapkan semula ESP8266 dengan menutup dan membuka semula suis tetapan semula. ESP8266 kini boot dalam mod flash dan menjalankan firmware baru.

Sekarang anda boleh menguji sama ada pengaturcaraan itu berfungsi dengan memuat naik lakaran Blink yang terkenal.

Sekiranya semua ini berfungsi sekurang-kurangnya pin GND, VCC, GPIO2, RST, TXD dan RXD disolder dan disambungkan dengan betul. Leganya! Tetapi sebelum meneruskan, saya akan mengesyorkan untuk menguji pin lain dengan multimeter anda. Saya mempunyai masalah dengan salah satu pin. Anda boleh menggunakan lakaran ini, yang menetapkan semua pin menjadi tinggi satu demi satu selama 5 saat, dan setelah itu meletakkan ESP8266 dalam tidur nyenyak selama 20 saat. Untuk membolehkan ESP8266 bangun selepas tidur nyenyak, anda perlu menyambungkan RST ke GPIO16, yang memberikan isyarat bangun.

Langkah 5: Memuat naik Lakaran

Saya telah menyediakan kod di GitHub, hanya satu fail: Level-Sensor-Deepsleep.ino. Muat turun sahaja dan buka di Arduino IDE. Atau anda boleh memilih Fail - Baru dan hanya salin / tampal kodnya.

Terdapat beberapa maklumat yang perlu anda isi di awal fail: nama dan kata laluan WLAN yang akan digunakan, butiran IP statik dan ID Saluran dan Kunci API Tulis Saluran ThingSpeak.

Mengikuti tip di blog ini, bukannya DHCP di mana penghala memberikan IP secara dinamis, kami menggunakan IP statik, di mana kami menetapkan sendiri alamat IP ESP8266. Ini ternyata jauh lebih pantas, jadi kita menjimatkan masa aktif dan seterusnya tenaga bateri. Oleh itu, kita harus memberikan alamat IP statik yang tersedia serta IP penghala (gateway), subnet mask dan pelayan DNS. Sekiranya anda tidak pasti tentang apa yang harus diisi, baca tentang cara menyiapkan IP statik dalam manual penghala anda. Pada komputer Windows yang disambungkan melalui Wifi ke penghala anda, mulailah shell (Windows button-r, cmd) dan masukkan ipconfig / all. Anda akan mendapat sebahagian besar maklumat yang anda perlukan di bahagian Wi-Fi.

Meneliti kod anda melihat bahawa tidak seperti kod Arduino yang lain, kebanyakan tindakan berlaku dalam fungsi persediaan dan bukannya fungsi gelung. Ini kerana ESP8266 tidur nyenyak setelah selesai fungsi penyediaan (kecuali jika kita memulakan dalam mod OTA). Setelah bangun, ia seperti restart baru dan ia berjalan semula.

Berikut adalah ciri utama kod:

  • Selepas bangun, kod menetapkan switchPin (GPIO15 lalai) ke tinggi. Ini menghidupkan transistor, yang seterusnya menghidupkan sensor HC-SR04-P. Sebelum tidur nyenyak, pin akan kembali ke posisi rendah, mematikan transistor dan HC-SR04-P, memastikan ia tidak menggunakan tenaga bateri yang lebih berharga.
  • Sekiranya modPIN (GPIO14 lalai) rendah kod masuk dalam mod OTA dan bukannya mod pengukuran. Dengan OTA (kemas kini melalui udara) kita dapat mengemas kini firmware melalui Wifi dan bukannya port bersiri. Dalam kes ini, ini cukup mudah kerana kita tidak perlu menyambung siri ke penyesuai USB lagi untuk kemas kini lebih lanjut. Hanya tetapkan GPIO14 ke rendah (dengan suis OTA di litar elektronik), tetapkan semula ESP8266 (dengan suis tetapan semula) dan ia seharusnya tersedia di Arduino IDE untuk dimuat naik.
  • Pada PIN analog (A0), kami mengukur voltan bateri. Ini membolehkan kami mematikan peranti kami, alias tidur nyenyak kekal, jika voltan terlalu rendah, di bawah voltan min, untuk melindungi bateri daripada terlalu banyak. Pengukuran analog tidak begitu tepat, kami melakukan ukuran numMeasuresBattery (lalai 10) dan mengambil purata untuk meningkatkan ketepatan.
  • Pengukuran jarak sensor HC-SR04-P dilakukan dalam fungsi jarak. Untuk meningkatkan ketepatan pengukuran diulang numMeasuresDistance (lalai 3) kali.
  • Terdapat fungsi untuk mengira speedOfSound dari pengukuran suhu, kelembapan dan tekanan oleh sensor BME280. Alamat I2C lalai dari BME280 adalah 0x76, tetapi jika tidak berfungsi, anda mungkin perlu mengubahnya menjadi 0x77: bool bme280Started = bme280.begin (0x77);
  • Kami akan menggunakan BME280 dalam mod paksa, yang bermaksud memerlukan satu pengukuran dan kembali tidur untuk menjimatkan tenaga.
  • Sekiranya anda menetapkan kapasiti (l), jarak penuh (cm) dan luas (m2), kod akan mengira jumlah tangki air yang tersisa dari pengukuran jarak: baki dua kali gandaVolume = kapasiti + 10.0 * (jarak-jarak penuh) * luas; dan muat naik ini ke ThingSpeak. Sekiranya anda menyimpan nilai lalai, ia akan memuatkan jarak ke permukaan air dalam cm.

Langkah 6: Membina Litar Elektronik

Membina Litar Elektronik
Membina Litar Elektronik

Di atas adalah gambarajah litar elektronik. Ia cukup besar untuk satu papan roti, terutamanya dengan plat penyesuai yang terlalu besar dan silap mata dengan wayar berbentuk U. Pada suatu ketika saya pasti berharap saya telah menggunakan alternatif untuk menghubungkan dua papan roti, tetapi pada akhirnya saya berjaya.

Berikut adalah ciri penting litar:

  • Terdapat dua voltan yang berperanan: voltan masukan dari bateri (sekitar 3.75V) dan 3.3V yang memberi makan ESP8266 dan BME280. Saya meletakkan 3.3V di rel kiri papan pemecah dan 3.75V di rel kanan. Pengatur voltan menukar 3.75V menjadi 3.3V. Mengikuti arahan dalam lembar data saya menambahkan 1 μF kapasitor ke input dan output pengatur voltan untuk meningkatkan kestabilan.
  • GPIO15 ESP8266 disambungkan ke pintu transistor. Ini membolehkan ESP8266 menghidupkan transistor dan dengan demikian sensor ultrasonik ketika aktif dan mematikannya ketika tidur nyenyak.
  • GPIO14 disambungkan ke suis, suis OTA. Menutup suis memberi isyarat kepada ESP8266 yang ingin kita mulakan dalam mod OTA seterusnya, iaitu setelah kita menekan (tutup dan buka) suis RESET, dan memuat naik lakaran baru di udara.
  • Pin RST dan GPIO2 disambungkan seperti dalam rajah pengaturcaraan. Pin RST kini juga disambungkan ke GPIO16 untuk membolehkan ESP8266 bangun dari tidur nyenyak.
  • Pin TRIG dan ECHO sensor ultrasonik disambungkan ke GPIO12 dan GPIO13, sementara pin SCL dan SDA dari BME280 disambungkan ke GPIO5 dan GPIO4.
  • Akhirnya, pin analog ADC adalah melalui pembahagi voltan yang disambungkan ke voltan input. Ini memungkinkan untuk mengukur voltan input untuk memeriksa pengisian bateri. Pin ADC dapat mengukur voltan antara 0V dan 1V. Untuk pembahagi voltan, kami memilih perintang 100K dan 470K. Ini bermaksud voltan pada pin ADC diberikan oleh: V_ADC = 100K / (100K + 470K) V_in. Mengambil V_ADC = 1V ini bermakna kita dapat mengukur voltan input hingga V_in = 570/100 V_ADC = 5.7V. Adapun penggunaan tenaga juga terdapat beberapa arus bocor melalui pembahagi voltan. Dengan V_in = 3.75V dari bateri kita dapati I_leak = 3.75V / 570K = 6.6 μA.

Walaupun litar berjalan dari bateri, mungkin untuk menyambungkan USB ke penyesuai bersiri. Pastikan untuk mencabut VCC penyesuai dan sambungkan GND, RX dan TX seperti dalam rajah pengaturcaraan. Ini memungkinkan untuk membuka Serial Monitor di Arduino IDE untuk membaca mesej debugging dan memastikan semuanya berfungsi seperti yang diharapkan.

Untuk litar lengkap, saya mengukur penggunaan semasa 50 μA dalam tidur nyenyak ketika menggunakan bateri. Ini termasuk ESP8266, BME280, sensor ultrasonik (dimatikan oleh transistor) dan kebocoran melalui pembahagi voltan dan mungkin kebocoran lain. Jadi itu tidak terlalu buruk!

Saya mendapati bahawa jumlah masa aktif adalah sekitar 7 saat, yang mana 4,25 saat untuk menyambung ke Wifi dan 1,25 saat untuk menghantar data ke ThingSpeak. Oleh itu, dengan arus aktif 80mA, saya dapati 160 μAh sejam untuk waktu aktif. Menambah 50 μAh per jam untuk keadaan tidur nyenyak yang kita miliki secara total 210 μAh per jam. Ini bermaksud bahawa bateri 2600 mAh secara teorinya berlangsung selama 12400 jam = 515 hari. Ini adalah maksimum mutlak jika kita dapat menggunakan kapasiti penuh bateri (yang tidak berlaku) dan tidak ada kebocoran yang saya tidak dapati dengan pengukuran semasa saya. Oleh itu, saya masih belum melihat apakah ini benar-benar berlaku.

Langkah 7: Menamatkan Sensor

Menamatkan Sensor
Menamatkan Sensor
Menamatkan Sensor
Menamatkan Sensor
Menamatkan Sensor
Menamatkan Sensor

Saya memasukkan sensor ke dalam bekas plastik 1 liter, yang dulu berisi sup. Di bahagian bawah saya membuat dua lubang agar sesuai dengan "mata" sensor HC-SR04-P. Selain dari lubang, bekas mestilah kalis air. Kemudian dipasang ke dinding tangki air dengan cincin bulat yang biasanya digunakan untuk paip saliran air hujan.

Selamat mencuba projek ini!

Disyorkan: