Isi kandungan:

Stesen Cuaca IoT yang lain: 8 Langkah
Stesen Cuaca IoT yang lain: 8 Langkah

Video: Stesen Cuaca IoT yang lain: 8 Langkah

Video: Stesen Cuaca IoT yang lain: 8 Langkah
Video: Penyebab Mobil Cepat Panas || Cara Mengatasi Mobil Overheat || Cara Memperbaiki Mobil Overheat 2024, Julai
Anonim
Stesen Cuaca IoT yang lain
Stesen Cuaca IoT yang lain
Stesen Cuaca IoT yang lain
Stesen Cuaca IoT yang lain
Stesen Cuaca IoT yang lain
Stesen Cuaca IoT yang lain
Stesen Cuaca IoT yang lain
Stesen Cuaca IoT yang lain

Berikut adalah hadiah ulang tahun untuk Ayah saya; diilhamkan oleh Instructable lain yang saya lihat dan pada mulanya bertujuan untuk dibuktikan kepadanya sebagai kit membina diri. Namun, ketika mula mengerjakan projek ini dengannya, saya dengan cepat menyedari bahawa tutorial awal yang memberi inspirasi kepada hadiah itu sudah usang dan banyak tutorial dalam talian lain mempunyai jurang yang signifikan dalam penjelasan mereka. Oleh itu, saya memutuskan untuk menerbitkan satu lagi Stesen Cuaca IoT yang semoga mudah diikuti dengan borang awal hingga akhir.

Selanjutnya instruksional ini menunjukkan kepada anda cara menggunakan Blynk, Google Spreadsheet atau kedua-duanya untuk memantau dan merakam bacaan sensor. Lebih-lebih lagi, entri Helaian Google ditulis terus ke helaian (tanpa perlu melalui perkhidmatan pihak ketiga).

Mengenai Skrin Stevenson, terdapat banyak tersedia dalam talian yang boleh dicetak 3D cth. https://www.thingiverse.com/thing:1718334. Saya akan membina yang satu ini untuk Instructable ini.

Skrin Stevenson adalah "tempat perlindungan instrumen adalah tempat perlindungan atau kandang kepada instrumen meteorologi terhadap pemendakan dan penyinaran haba langsung dari sumber luar, sambil tetap membiarkan udara beredar bebas di sekitarnya." (Wikipedia).

Bahagian

  • Wemos LolIn - NodeMCU v3 (USD 1.43)
  • BME280 (Sensor suhu, tekanan & kelembapan) (USD 2.40)
  • Panel Suria 6V 1000mA (USD 9.96)
  • Modul Pengecas Papan Bateri Lithium 5V 1A Micro USB 18650 + Fungsi Ganda Perlindungan TP4056 (USD 0.99)
  • Bateri boleh dicas semula 4x 1.2V NiMH
  • Pemegang Bateri (4x AA, bersebelahan & hujung ke hujung)
  • Palam penyambung Mikro USB Lelaki
  • Ikatan Kabel
  • Kacang Sayap 3x
  • Tiang atau tongkat sapu
  • Epoxy dan / atau super-lem (pada pandangan belakang, silikon mungkin berfungsi lebih baik)

Perisian

  • Aplikasi Blynk
  • Helaian Google (jika anda ingin mempunyai akses ke data sejarah)
  • EasyEDA (untuk melukis skema)
  • Arduino IDE

Alat

  • Besi pematerian
  • Pateri
  • Tiub Pengecutan Panas
  • Pencetak 3D
  • Pistol gam

Langkah 1: Percetakan 3D - Skrin Stevenson

Percetakan 3D - Skrin Stevenson
Percetakan 3D - Skrin Stevenson
Percetakan 3D - Skrin Stevenson
Percetakan 3D - Skrin Stevenson
Percetakan 3D - Skrin Stevenson
Percetakan 3D - Skrin Stevenson

Seperti yang telah disebutkan, muat turun fail dari https://www.thingiverse.com/thing:1718334 dan cetak bit yang diperlukan. Arahan pemasangan juga terdapat di pautan di atas. Saya melakukan beberapa pengubahsuaian (lihat nota di bawah).

Bahagian yang dicetak adalah:

  • Top_Cover_for_m3_tapping.stl
  • Tengah_Ring.stl (x5)
  • Middle_Ring_bottom.stl (x1, STL dilampirkan di atas)
  • Solid_Plate.stl (x1)
  • Solid_Plate_Base.stl (x1)
  • Tiang_Jumlah_1dalam_Round.stl
  • Sensor_Grid.stl
  • Elektronik_Mount.stl
  • My_Solar_Cell_Mount.stl (x2, STL dilampirkan di atas)

Perintah pemasangan adalah:

  • Benang lubang
  • Skru bar M3 ke soket berulir
  • Penutup atas
  • Plat_Padu
  • Tengah_Rings
  • Luncur di Sensor_Grid
  • Elektronik_Jumlah
  • Padat_Plate_Bawah
  • Tiang_Jumlah
  • My_Solar_Cell_Mounts adalah epoksi ke bahagian atas Top_Cover

Saya menggerudi lubang pada plat Solid untuk membenarkan kabel pengecasan dari Panel Suria menyambung ke pengecas dan kemudian satu untuk membenarkan kabel berjalan dari pengawal ke sensor pada Sensor_Grid.

Setelah selesai, sensor diprogramkan untuk mengambil bacaan berikut setiap 60 minit:

  • Suhu
  • Kelembapan
  • Tekanan

Catatan

  • Saya menyesuaikan pemasangan sel suria agar lebih sesuai untuk memegang sel solar saya.
  • Saya memasang elektronik di antara Pole_Mount dan Solid_Plate. Ini nampaknya tidak memberikan perlindungan yang baik untuk elektronik. Oleh itu, saya mengubah suai pada Solid_Plate supaya ia mempunyai skirt yang kemudian akan menutup jurang dan dengan itu memberikan perlindungan yang lebih baik untuk elektronik. Beberapa gambar di atas diambil sebelum saya membuat perubahan ini.
  • Epoksi saya turun tanpa memegang panel solar yang kemudian saya pasangkan kembali dengan gam super. Saya fikir saya akan menggunakan silikon.

Langkah 2: Litar

Litar
Litar
Litar
Litar

Sambungkan litar seperti yang ditunjukkan dalam skema, pasang LoLin dan BME280 pada mesh dicetak 3D seperti yang ditunjukkan dalam foto.

BME280 -> LiLon

  • VCC -> 3.3V
  • GND -> GND
  • SCL -> D1
  • SDA -> D2

LiLon -> LiLon

D0 -> RST (ini diperlukan untuk membangunkan pengawal dari tidur nyenyak tetapi hanya perlu disambungkan setelah kod tersebut dimuat naik ke pengawal)

CATATAN

Saya menghadapi cabaran untuk mendapatkan bateri LiLon yang sesuai. Saya juga tidak berjaya kerana menggunakan VIN. Oleh itu, saya berkuasa seperti berikut:

  • Keluaran dari TP4056 disambungkan ke penyambung USB Lelaki yang kemudian dipasang ke soket USB papan untuk menghidupkannya.
  • B- dan B + pada TP4056 disambungkan ke pemegang bateri AA yang memegang bateri NiMH.

Langkah 3: IoT - Blynk

IoT - Blynk
IoT - Blynk
IoT - Blynk
IoT - Blynk
IoT - Blynk
IoT - Blynk
IoT - Blynk
IoT - Blynk

"Blynk adalah platform IoT perkakasan-agnostik dengan aplikasi mudah alih yang disesuaikan, awan peribadi, mesin peraturan, dan papan pemuka analisis pengurusan peranti". Pada dasarnya ia membolehkan anda mengurus dan memantau sensor jarak jauh dengan selamat dari mana saja di dunia melalui Internet. Walaupun perkhidmatan komersial, setiap akaun dilengkapi dengan 2000 kredit percuma. Kredit membolehkan anda mengaitkan alat pengukur, paparan, pemberitahuan dan lain-lain dengan sensor atau sensor anda. Walaupun harga langganan berada di luar anggaran belanjawan penggemar, kredit percuma cukup untuk projek mudah seperti ini.

Untuk mula menggunakan perkhidmatan, anda perlu memuat turun Aplikasi Blynk terlebih dahulu ke telefon / peranti anda, buat dan akaun (atau log masuk dengan akaun yang ada) dan kemudian buat projek baru seperti berikut:

  • Pilih perkakasan anda
  • Beri nama projek anda (dalam kes ini saya menggunakan "Weather Station".
  • Klik "Buat"
  • Anda kemudian mendapatkan Kod Auth yang dihantar melalui e-mel kepada anda.

Anda tidak perlu menambahkan widget yang diperlukan. Dengan kredit percuma 2000 saya, saya menambah perkara berikut:

  • 3 Tolok
  • 1 Carta Super

Alat pengukur dan carta disusun sesuai foto yang dilampirkan, masing-masing diberi pin maya sendiri yang akan digunakan terakhir dalam kod.

Setelah selesai dengan tetapan, butang main di kanan atas dapat ditekan untuk mula mengumpulkan tarikh.

Untuk maklumat lebih lanjut, lihat

docs.blynk.cc/#getting-started.

Langkah 4: Kod - Menyiapkan Arduino IDE

Perpustakaan berikut perlu ditambahkan ke Arduino IDE untuk menyelesaikan projek ini:

  • https://github.com/adafruit/Adafruit_BME280_Library (memerlukan sensor suhu, tekanan dan kelembapan)
  • https://github.com/adafruit/Adafruit_Sensor
  • https://github.com/esp8266/Arduino (ini memberi anda akses ke papan ESP8266)
  • https://github.com/blynkkk/blynk-library/releases/tag/v0.6.1 (perpustakaan Blynk)
  • https://github.com/electronicsguy/ESP8266/tree/master/HTTPSRedirect (HTTPSRedicect diperlukan untuk menyambung ke Helaian Google)

Untuk arahan mengenai pemasangan perpustakaan untuk Arduino IDE, lawati

Tetapan perkakasan saya seperti berikut:

  • Papan: NodeMCU 1.0 (Modul ESP-12E)
  • Kelajuan Muat Naik: 115200

Semasa menggunakan kod yang dilampirkan dalam langkah-langkah berikut, selalu merujuk pada komen dalam kod berkenaan dengan menambahkan yang berikut:

  • Wifi SID
  • Kata Laluan Wifi
  • Kunci kebenaran Blynk
  • ID Skrip Google
  • Kunci perkongsian Helaian Google

Langkah 5: Kod - Blynk

Saya bertahun-tahun berjuang agar sensor BME280 saya berfungsi sehingga saya menemui contoh yang mengandungi baris berikut.

status = bme.begin (0x76); // Alamat sensor I2C yang saya gunakan ialah 0x76

Nampaknya saya perlu menetapkan alamat sensor. Setelah saya melakukan ini semuanya berfungsi dengan baik.

Blynk mempunyai antara muka pengguna mudah alih yang bagus tetapi ia mempunyai had berikut:

  • Hanya 2000 kredit percuma, projek yang memerlukan lebih daripada itu memerlukan langganan bulanan yang mahal (melainkan jika anda menjadi tuan rumah dan mengekalkan pelayan Blynk anda sendiri).
  • Kecuali anda menghoskan pelayan Blynk anda sendiri, anda tidak boleh mengeksport data sejarah.

Atas sebab-sebab di atas saya melihat bagaimana saya dapat mengintegrasikan proses pengumpulan data saya ke dalam Helaian Google. Ini dibahas di bahagian seterusnya.

Langkah 6: Kod - Helaian Google

Kod - Helaian Google
Kod - Helaian Google
Kod - Helaian Google
Kod - Helaian Google
Kod - Helaian Google
Kod - Helaian Google

Untuk merakam pembacaan anda sehingga anda dapat menganalisis data sejarah di kemudian hari, anda perlu menulisnya ke pangkalan data. Perpustakaan HTTPSRedirect memungkinkan kami melakukan ini dengan menulis data kami ke Helaian Google.

Batasan utama dengan pendekatan ini adalah seperti berikut:

  • Tidak ada antara muka pengguna mudah alih yang bagus
  • Helaian Google boleh mempunyai maksimum 400 000 sel. Untuk projek ini, ini bukan masalah besar kerana akan memakan masa lebih dari 11 tahun sebelum had ini tercapai.

Helaian Google disediakan seperti berikut.

Buat Helaian Google dengan dua helaian.

Lembaran 1: Data

Lembaran data memerlukan 4 lajur iaitu Tarikh / Masa, Suhu, Kelembapan, Tekanan (lajur A hingga D). Format lajur dengan tepat mis. Lajur A menjadi "Waktu Tarikh" supaya tarikh dan masa ditunjukkan dalam sel.

Lembaran 2: Papan Pemuka

Buat lembaran Dashboard seperti foto yang dilampirkan, masukkan formula seperti yang tercantum di bawah:

  • B2: = counta (Data! B: B) -1
  • B3: = B1 + NILAI WAKTU (KANDUNGAN ("00:", Teks (G7, "0")))
  • B6: = pertanyaan (Data! A2: D, "Pilih pesanan B mengikut had turun 1")
  • C6: = pertanyaan (Data! A2: D, "Pilih pesanan C mengikut had turun 1")
  • D6: = pertanyaan (Data! A2: D, "Pilih pesanan D mengikut had turun 1")
  • B8: = pertanyaan (Data! A2: D, "Pilih pesanan dengan had B turun 1")
  • C8: = pertanyaan (Data! A2: D, "Pilih pesanan mengikut had penurunan C 1")
  • D8: = pertanyaan (Data! A2: D, "Pilih pesanan dengan had D turun 1")
  • B9: = pertanyaan (Data! A2: D, "Pilih pesanan B mengikut had B turun 1")
  • C9: = pertanyaan (Data! A2: D, "Pilih pesanan C mengikut had penurunan C 1")
  • D9: = pertanyaan (Data! A2: D, "Pilih pesanan D mengikut had D turun 1")
  • B11: = pertanyaan (Data! A2: D, "Pilih A di mana B tidak tertib batal dengan had B asc 1")
  • C11: = pertanyaan (Data! A2: D, "Pilih A di mana C tidak tertib kosong dengan had C asc 1")
  • D11: = pertanyaan (Data! A2: D, "Pilih A di mana D tidak tertib null oleh D asc had 1")
  • B12: = pertanyaan (Data! A2: D, "Pilih B di mana B tidak tertib batal oleh B naik had 1")
  • C12: = pertanyaan (Data! A2: D, "Pilih C di mana C tidak tertib null dengan had C asc 1")
  • D12: = pertanyaan (Data! A2: D, "Pilih D di mana D tidak tertib null oleh D asc had 1")
  • G3: = 4 + B2 * 4 + 29 + 17
  • G4: = (G2-G3) / G2
  • G6: = G2 / 4 G8: = G7 * G6
  • G9: = (G8 / 60) / 24
  • G10: = G9 / 365
  • G11: = (((((G2-G3) / 4) * G7) / 60) / 24/365)

Helaian Google boleh mempunyai maksimum 400, 000 sel. Ini digunakan, bersama dengan fakta bahawa setiap bacaan menggunakan 4 sel, untuk mengira berapa banyak ruang yang tersisa dan kapan ia akan habis.

Mungkin ada kemungkinan untuk memperbaiki formula ini. Saya melakukan dua perkara di sini iaitu belajar mengenai formula pertanyaan dan kemudian juga menulis beberapa formula sedemikian rupa untuk membantu saya mengingat logik di belakangnya.

Tangkapan skrin "Editor Carta" menunjukkan penyediaan asas untuk grafik Suhu. Grafik lain yang dibuat menggunakan susunan yang sama. Satu-satunya perbezaan antara grafik adalah nilai paksi menegak minimum (terdapat di bawah tab sesuaikan). Tab customize juga mempunyai tetapan lain seperti nama akses, tajuk grafik, dll.

Kita sekarang memerlukan Skrip Google yang akan membolehkan kita menulis data dengan memanggil URL.

Membuat skrip

Dalam URL Helaian Google, catat kunci antara "d /" dan "/ edit". Ini adalah -Your-Google-Sheet-Sharing-Key- anda dan akan diperlukan dalam kod di bawah.

Seterusnya pergi ke Alat> Editor Skrip dan buat Skrip Aplikasi Google, tempelkan kod dalam fail GS yang dilampirkan. Kemas kini var ss = SpreadsheetApp.openByUrl ("https://docs.google.com/spreadsheets/d/-Your-Google-Sheet-Sharing-Key–/edit"); untuk menggambarkan kunci perkongsian anda.

Sekarang terbitkan skrip dengan pergi ke Publish> Deploy as Web App.

Salin URL aplikasi web Semasa dan simpan di suatu tempat kerana anda memerlukannya untuk mengekstrak GScriptID (-Your-Google-Script-ID-). GScriptID adalah rentetan antara "s /" dan "/ exec?". Pastikan bahawa "Sesiapa sahaja, walaupun tanpa nama" mempunyai akses ke aplikasi. Semasa proses ini, anda akan diminta untuk memberikan beberapa kebenaran. Penting untuk anda memberikannya.

Catatan: Setiap kali anda mengubah kod anda, anda harus membuat versi Projek "Baru" dan menerbitkannya jika tidak, anda masih akan menggunakan kod lama yang sama.

Anda kini boleh menguji skrip dengan melayari https://script.google.com/macros/s/-Your-Google-Script-ID–/exec?Temperature=10&Humidity=11&Pressure=12. Setiap kali anda memuat semula pautan ini, entri baru harus ditambahkan ke Lembaran Google.

Perkara di atas diambil dari tutorial berikut: https://embedded-lab.com/blog/post-data-google-sheets-using-esp8266/. Tutorial ini bagaimanapun sudah usang dan oleh itu kod Arduino yang berkaitan di bahagian seterusnya telah diubah untuk mengakomodasi perpustakaan HTTPSRedirect terkini.

Kod Arduino

Lihat kod yang dilampirkan.

Langkah 7: Kod - Blynk & Helaian Google

Untuk mendapatkan yang terbaik dari kedua dunia, seseorang dapat menggabungkan kod untuk Blynk dan Helaian Google.

Lihat kod yang dilampirkan.

Langkah 8: Komen Akhir

Komen Akhir
Komen Akhir
Komen Akhir
Komen Akhir

Tiada satu pun perkara di atas adalah idea saya melainkan ini adalah projek yang dibina berdasarkan idea dan karya orang lain. Saya seronok menariknya ke satu tempat. menggunakan pelbagai teknologi dan alat untuk projek yang menyeronokkan dan praktikal. Saya sangat senang belajar bagaimana menyimpan bacaan saya dalam Helaian Google. Untuk ini saya ingin mengucapkan terima kasih kepada ElectronicsGuy (Sujay Phadke).

Kemas kini

Setelah menyelesaikan projek ini, saya perlu menukar tetapan tanpa wayar saya. Saya sekarang menggunakan komputer yang berbeza. Setelah memuat naik perubahan, projek itu berhenti berfungsi. Setelah beberapa penyelesaian masalah saya membuat kesimpulan bahawa fungsi deepsleep gagal. Saya membawa projek itu pulang dan memuat naiknya di sana (menggunakan kod yang sama) dan ia berjaya. Oleh itu, saya telah membuat kesimpulan bahawa sesuatu mesti berubah di perpustakaan yang saya tambah. Oleh itu, saya telah melampirkan perpustakaan yang ada di komputer rumah saya pada bahagian ini; sekiranya ada orang lain yang menemui masalah ini.

Disyorkan: