Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Stasiun Cuaca Internet Kecil

Komponen dan persediaan

Arduino Nano 33 IoT
× 1
Sensor cuaca BME
× 1
0,96 dalam tampilan OLED - 128x 64
× 1
Kotak Plastik 3,9" x 2,7"
× 1
Kabel USB mikro
× 1
Kabel jumper papan tempat memotong roti Pria ke Wanita
× 1
Pengisi Daya Dinding USB
× 1

Alat dan mesin yang diperlukan

Pistol lem panas (generik)

Aplikasi dan layanan online

Arduino IDE
Blynk

Tentang proyek ini

Ada banyak aplikasi di luar sana yang memungkinkan Anda menghubungkan ponsel cerdas Anda ke Internet of Things. Saya telah mencoba banyak dari mereka dan biasanya kecewa. Tidak demikian halnya dengan Blynk! Ini benar-benar fleksibel, memiliki antarmuka pengguna yang indah, bekerja dengan semua jenis platform IoT, dan berjalan di Android dan iPhone. Ini juga gratis untuk penghobi! Jadi ini adalah proyek IoT yang relatif sederhana yang memungkinkan saya untuk menjelajah menggunakan Blynk.

Perangkat Keras

Perangkat keras untuk proyek ini cukup sederhana. Kami menggunakan Arduino Nano 33 IoT yang menangani WiFi, papan sensor BME280 dengan suhu, kelembaban, dan tekanan udara semuanya dalam satu unit, dan layar OLED 1 inci. Ketiganya berjalan dengan baik pada 3,3 volt. Tampilannya jelas opsional - tujuannya adalah untuk menampilkan stasiun cuaca di ponsel Anda. Tapi itu membuatnya lebih mudah untuk menyiapkan dan menjalankan semuanya di layar OLED terlebih dahulu, sebelum berurusan dengan Blynk dan ponsel cerdas Anda.

Skema di bawah ini menunjukkan bagaimana perangkat keras saling berhubungan. Baik sensor maupun tampilan antarmuka dengan I2C. Secara teori, satu I2C dapat mendukung banyak perangkat, tetapi perpustakaan sensor dan tampilan memiliki beberapa konflik, jadi saya berakhir dengan dua port I2C yang berbeda. Sensor menggunakan port I2C default normal di analog pin 4 dan 5. Layar menggunakan port I2C sekunder yang diatur di digital pin 4 dan 5. (Dan ya, mereka terbalik - SDA adalah pin digital 5))

Perangkat keras tertutup dalam wadah plastik kecil dengan bagian depan yang jelas, sehingga tampilan dapat dilihat. Ini plastik, karena harus transparan ke RF untuk WiFi. Itu harus relatif tahan cuaca, tetapi sensor terkena cuaca luar dengan lubang 1/2" di bagian bawah. Sensor dipasang sehingga berada tepat di dalam lubang itu. Saya memasang semua yang ada di dalam kasing dengan panas lem, tetapi Anda mungkin ingin menggunakan epoksi sebagai gantinya jika Anda berencana untuk meletakkannya di luar di musim panas.

Daya disuplai melalui kabel USB. Dengan begitu, itu dapat diprogram atau ditenagai oleh satu kabel yang keluar dari kotak. Kabel itu bisa masuk ke komputer Anda saat memprogram atau ke catu daya USB plug-in saat digunakan sebagai stasiun cuaca.

Perangkat Lunak

Perangkat lunak yang berjalan di Arduino hanya sedikit lebih dari gabungan contoh perpustakaan untuk sensor, layar, dan Blynk. Library yang terlibat adalah Adafruit_BME280_Library untuk sensor, library ss_oled untuk tampilan, dan library Blynk untuk Blynk. Ketiganya dapat diunduh langsung dari pengelola perpustakaan Arduino. Anda mungkin ingin bereksperimen dengan masing-masing perpustakaan ini secara terpisah untuk mendapatkan pemahaman yang lebih baik tentang masing-masing perpustakaan.

Blynk memiliki banyak contoh cara mengkonfigurasi perangkat keras untuk berinteraksi dengannya:https://examples.blynk.cc/ Sayangnya, itu tidak mencantumkan Nano 33 IoT sebagai salah satu Arduino yang didukungnya. Namun Blynk memang mendukung WiFiNINA, yang digunakan oleh Nano 33 IoT dan beberapa prosesor Arduino lainnya. Jadi menambahkan dua ini termasuk memecahkan masalah itu:#include dan #include

Satu tambahan lain yang akan Anda lihat dalam kode saya adalah:#include Ini diperlukan untuk mengubah angka yang keluar dari sensor menjadi string yang sesuai untuk ditampilkan pada layar OLED. Satu hal kecil yang membuat saya sedih adalah bahwa Blynk dengan senang hati menampilkan data apakah dikirim sebagai string atau angka. Awalnya saya mengirim Blynk string yang sama dengan yang saya kirim ke OLED. Itu berfungsi dengan baik untuk menampilkan angka, tetapi gagal total ketika saya menambahkan grafik. Agar grafik berfungsi, Blynk jelas membutuhkan angka aktual.

Catatan - tekanan barometrik biasanya dilaporkan terkoreksi ke permukaan laut. Pada ketinggian yang lebih tinggi, tekanan barometrik jelas turun, jadi untuk mengoreksi nilai dari sensor ke pembacaan yang setara di permukaan laut, Anda harus menambahkan nilai ke nilai terukur kira-kira 1 inci Hg untuk setiap ketinggian 1000 kaki. Dalam kode saya sendiri terlampir, Anda akan melihat saya menambahkan 1,3 untuk mengimbangi ketinggian saya sendiri 1300 kaki di atas permukaan laut. Anda akan ingin mengubah nilai ini agar sesuai dengan ketinggian Anda sendiri. 1" Hg per 1000 kaki hanyalah perkiraan kasar. Jika Anda menginginkan koreksi yang tepat, ada tabel online yang akan memberikan koreksi yang tepat untuk ketinggian Anda.

Stasiun Cuaca tanpa Blynk

Pada titik ini, Anda dapat mengatur perangkat keras, dan menggunakan perangkat lunak yang saya lampirkan untuk menampilkan data cuaca pada layar OLED. Cukup beri komentar pada baris Blynk.begin() di Setup agar stasiun cuaca berjalan dengan sendirinya. (Jika Anda tidak mengomentari Blink.begin(), tanpa koneksi yang valid ke Blynk, sketsa akan berhenti di atau berhenti di titik itu.) Di bagian selanjutnya, kita akan membahas tentang Blynk, cara mengatur keduanya pada sketsa Arduino dan pada ponsel cerdas untuk menampilkan stasiun cuaca di ponsel.

Blynk

Blynk mudah dipasang di iPhone atau Android Anda dan dilengkapi dengan dokumentasi terperinci:http://docs.blynk.cc/ Tetapi ada begitu banyak informasi di sana dan begitu banyak opsi yang menurut saya agak membingungkan pada awalnya, jadi saya akan melakukannya berikan di sini versi saya sendiri tentang cara memulai dengan Blynk.

Saya menggunakan Blynk dengan iPhone, tetapi saya pikir pengalamannya cukup mirip dengan Android sehingga Anda dapat mengikuti instruksi saya dengan salah satunya. Setelah Anda memiliki aplikasi, Anda perlu membuat akun. Dari sana, di dalam aplikasi, Anda membuat proyek baru. Proyek Anda dilengkapi dengan kode otentikasi yang digunakan untuk menghubungkan perangkat keras Anda dengan proyek Anda. Pekerjaan pertama Anda adalah menghubungkan perangkat keras Anda melalui WiFi ke proyek Blynk Anda. Anda dapat melakukannya dan mengujinya menggunakan sketsa/program default Blynk yang disebut Blynk Blink di example.blynk.cc, yang memungkinkan Anda untuk menghidupkan dan mematikan LED onboard pada Nano 33 IoT Anda. Saran saya adalah Anda mencoba ini dan membuatnya berfungsi sebelum mencoba membuat stasiun cuaca bekerja dengan Blynk.

Kami telah berbicara sedikit tentang mengonfigurasi perangkat lunak kami agar Nano 33 IoT kami bekerja dengan Blynk. Jika Anda membuka contoh.blynk.cc, defaultnya adalah papan ESP8266. Temukan #include dan #include dan ganti dengan #include dan #include

Selain menambahkan dukungan WiFiNINA untuk Nano 33 IoT, seperti yang telah kita bicarakan, Anda perlu menambahkan kredensial WiFi dan kode otentikasi proyek Blynk Anda. Kami akan menjelaskan menyalakan dan mematikan LED dalam satu menit, tetapi pertama-tama, mari kita periksa koneksinya. Dengan sketsa Blynk Blink yang dikonfigurasi dan dijalankan dengan benar, buka Serial Monitor Arduino, dan Anda akan dapat melihat koneksi yang dibuat ke server cloud Blynk. Pada titik ini, kita dapat mengesampingkan perangkat keras kita dan bekerja dengan aplikasi Blynk di ponsel.

Saya akui saya menemukan aplikasi Blynk agak membingungkan. Ikon di kiri atas memungkinkan Anda untuk memilih antara proyek dan juga keluar dari akun Anda. Yang di kanan atas memungkinkan Anda masuk dan keluar dari mode Edit Proyek. Apa yang dilakukan orang di tengah tergantung di mana Anda berada.

Untuk mendapatkan kendali atas LED onboard kami, kami harus masuk ke mode Edit di aplikasi. Anda kemudian akan melihat layar kosong. Jika Anda menggesek ke kiri, itu akan bergerak ke samping untuk membuka kotak peralatan widget. Pilih tombol dengan mengkliknya dan sekarang akan berada di layar utama. Klik di sana dan itu akan terbuka untuk konfigurasi. Pindahkan dari mode push ke mode switch. Gunakan pin select untuk memilih LED onboard - pin digital 13 pada Nano 33 IoT kami. Sekarang klik OK, dan tekan ikon kanan atas untuk keluar dari mode Edit. Tombol Anda sekarang seharusnya mengontrol LED.

Stasiun Cuaca dengan Blynk

Kami sekarang siap untuk menghubungkan stasiun cuaca kami ke proyek Blynk kami. Buka perangkat lunak terlampir saya, batalkan komentar pada baris Blynk.begin() di Setup, tambahkan kode otentikasi proyek Anda dan kredensial WiFi, dan unggah ke Arduino.

Buka Blynk di ponsel Anda. Jika Anda telah mengikuti tutorial ini, tombol Anda masih ada, dan seharusnya masih dapat menghidupkan dan mematikan LED onboard. Buka mode edit, klik tombol untuk mengonfigurasinya, dan hapus dengan Hapus di bagian paling bawah. Sekarang pergi ke kotak alat dan pilih Nilai Berlabel. Itu ada di bawah daftar di bawah Tampilan. Kembali ke halaman tampilan, klik pada tampilan Labeled Value untuk mengkonfigurasinya. Klik pin, lalu pilih Pin virtual V3. Kami akan menjelaskan pin virtual di paragraf berikutnya. Sekarang untuk label, di mana dikatakan "e.g. Temp" ketik "Temp /pin.#/ deg.F". The.# memberitahu aplikasi untuk menampilkan satu tempat melewati titik desimal. Pilih ukuran teks yang besar, dan biarkan Refresh Interval pada Push dan Text Color pada Green. Sekarang klik OK. Nilai Berlabel Anda sekarang hampir siap untuk menampilkan suhu, tetapi terlalu sempit. Pilih perlahan - cukup lambat sehingga tidak masuk kembali ke mode konfigurasi. Garis luar label akan menyala. Sekarang dapat diregangkan untuk menampilkan seluruh baris. Itu juga bisa dipindahkan, meskipun kita tidak akan melakukannya di sini. Regangkan sekitar 3/4 dari jalan melintasi layar. Kemudian keluar dari mode Edit dan Anda akan melihat suhu yang ditampilkan di ponsel Anda.

Sebelum kita selesai mengonfigurasi Blynk, ada baiknya menjelaskan beberapa hal yang baru saja kita lihat dalam menyiapkan tampilan suhu. Blynk menggunakan ide yang agak unik yang disebut pin virtual. Widget nilai tampilan dapat diatur untuk membaca pin analog pada prosesor kami, atau diatur untuk membaca apakah pin digital tinggi atau rendah. Tapi lebih sering daripada tidak, kita ingin menampilkan isi dari sebuah variabel. Kami melakukannya dengan menetapkan variabel itu nomor pin virtual, dan sejak saat itu, aplikasi Blynk akan mereferensikan variabel itu dengan nomor pin virtualnya. Jadi di perangkat lunak saya, Anda akan melihat tempat di mana saya menetapkan suhu dalam Fahrenheit ke pin virtual V3.

Ide Blynk lain yang layak disebutkan dengan cepat adalah Refresh Interval yang kami tinggalkan dalam mode Push. Itu berarti sketsa Arduino mendorong data keluar, dalam kasus kami memperbarui suhu, kelembaban, dan tekanan udara sekali per menit. Tetapi Blynk juga mendukung metode Tarik, di mana aplikasi Blynk mengatur interval dan menginterogasi perangkat keras untuk data baru.

Jadi sekarang mari kita selesaikan menampilkan stasiun cuaca kita di Blynk. Anda akan memerlukan dua lagi tampilan Nilai Berlabel, satu untuk Kelembaban dalam % (pin Virtual V4) dan satu lagi untuk Tekanan dalam "in. HG" atau inci air raksa (pin Virtual V5). Agar terlihat seperti milik saya, Anda akan menginginkan kelembapan dalam warna emas dan tekanan dalam warna merah. Untuk kelembapan, saya menunjukkan satu tempat melewati titik desimal; untuk tekanan, saya menunjukkan dua tempat melewati titik desimal.

Jika sekarang Anda memiliki tiga tampilan Labeled Value yang menunjukkan suhu, kelembapan, dan tekanan udara, Anda dapat menambahkan grafik ketiganya. Ini dilakukan dengan penambahan widget SuperChart. Pertama, regangkan ke bawah sehingga memenuhi sisa layar. Kemudian klik untuk mengkonfigurasi. Saya mengaktifkan Tampilkan nilai sumbu x dan saya memilih resolusi siaran langsung, 1 jam, 6 jam, 1 hari, 1 minggu, 1 bulan. dan 3 bln. Kami membutuhkan tiga data steam - satu untuk masing-masing dari 3 variabel kami. Untuk mengonfigurasi setiap aliran data, klik ikon di sebelah kanannya. Kita perlu lagi memilih pin virtual untuk masing-masing. Untuk penskalaan sumbu y, pilih ketinggian. Kemudian untuk suhu, atur ketinggian ke 67 - 100. Untuk kelembapan, atur ketinggian ke 34 - 66. Untuk tekanan, atur ketinggian ke 0 - 33. Atur warna agar sesuai dengan nilai label. Aktifkan Tampilkan sumbu Y. Itu saja. Keluar dari mode Edit dan tampilan ponsel Anda akan terlihat seperti milik saya. Dibutuhkan sedikit waktu untuk memulai grafik. Untuk hasil yang cepat, lihat langsung atau resolusi 1 jam.

Satu lagi fitur Blynk yang mungkin ingin Anda ketahui adalah membagikan proyek Blynk Anda yang sudah selesai dengan smartphone lain, sehingga lebih dari satu ponsel dapat melihat stasiun cuaca. Untuk memulai berbagi, letakkan proyek Anda dalam mode Edit, dan klik ikon tengah atas untuk Pengaturan Proyek. Aktifkan Berbagi, lalu buat tautan. Ini akan memberi Anda kode QR yang dapat Anda kirimi email atau bagikan. Pengguna baru membutuhkan aplikasi Blynk tetapi bukan akun di Blynk. Aplikasi pengguna yang tidak terdaftar memiliki tautan untuk memuat kode QR dari proyek Blynk orang lain. Itu dia.

Ini adalah pengantar yang cukup terbatas untuk Blynk, tetapi seharusnya memberi Anda tempat yang baik untuk memulai. Saya sebutkan sebelumnya bahwa Blynk gratis - hampir saja. Baik widget dan berbagi menggunakan poin yang oleh Blynk disebut energi. Saya pikir Anda mendapatkan 2500 poin gratis untuk memulai. Itu lebih dari cukup untuk melakukan proyek ini secara gratis. Tetapi membagikan atau menambahkannya dapat menyebabkan Anda kehabisan energi Blynk. Saya menghabiskan $6 untuk mendapatkan tambahan 5000 poin. Anda mungkin perlu mengeluarkan beberapa dolar untuk bahan bakar Blynk jika Anda ingin melakukan proyek lain dengan Blynk.

Kode

  • Stasiun Cuaca Internet Kecil
Stasiun Cuaca Internet KecilArduino
Dengan WiFi dan Blynk ke Smartphone
/*Sketsa ini untuk Arduino Nano 33 IoTMenggunakan papan sensor BME280Menggunakan layar OLED 0,96 inci 128 x 64Menghubungkan melalui WiFi ke server cloud Blynk untuk menampilkan data cuaca di smartphone */#include #include #include  // BME280 library#include  // digunakan untuk mengubah angka cuaca menjadi string untuk ditampilkan di OLED# include  // OLED library// Dua penyertaan berikutnya diperlukan untuk membuat Nano 33 IoT bekerja dengan Blynk#include #include char auth[] ="YourBlynkProjectCode";char ssid[ ] ="YourWifiID";char pass[] ="YourWiFiPassword";Adafruit_BME280 bme; // gunakan antarmuka I2CAdafruit_Sensor *bme_temp =bme.getTemperatureSensor();Adafruit_Sensor *bme_pressure =bme.getPressureSensor();Adafruit_Sensor *bme_humidity =bme.getHumiditySensor();#define SDA_PIN 5#define SCL_PINdefine SCL_PIN -1#menentukan FLIP180 0#menentukan INVERT 0#menentukan USE_HW_I2C 0#menentukan MY_OLED OLED_128x64#menentukan OLED_WIDTH 128#menentukan OLED_HEIGHT 64SSOLED sol; // contoh timer OLEDBlynkTimer; // instance dari Blynk timervoid setup() { if (!bme.begin(0x76)) { // tunggu sampai sensor terdeteksi saat (1) delay(10); } bme_temp->printSensorDetails(); bme_pressure->printSensorDetails(); bme_humidity->printSensorDetails(); oledInit(&ssoled, MY_OLED, OLED_ADDR, FLIP180, INVERT, USE_HW_I2C, SDA_PIN, SCL_PIN, RESET_PIN, 400000L); oledFill(&ssoled, 0x0, 1); Blynk.begin(auth, ssid, pass); // beri komentar baris ini untuk mengoperasikan stasiun cuaca tanpa Blynk timer.setInterval(60000L, myupdate); // menjalankan myupdate sekali per menit myupdate(); // jalankan pembaruan awal tampilan dan data ke Blynk karena loop utama menunggu satu menit}void loop() { Blynk.run(); // Blynk lebih suka berjalan sendiri di loop utama. timer.run(); // Segala sesuatu yang lain ditangani melalui Blynk timer}// rutinitas ini dipanggil oleh timer Blynk untuk memperbarui tampilan OLED dan data push ke Blynkvoid myupdate(){ sensor_event_t temp_event, pressure_event, moisture_event; bme_temp->getEvent(&temp_event); bme_pressure->getEvent(&pressure_event); bme_humidity->getEvent(&humidity_event); float ctemp =temp_event.temperature; // dapatkan suhu dalam celcius float ftemp =32 + (9*ctemp)/5; // konversi suhu ke fahrenheit float hum =kelembaban_event.relative_humidity; // mendapatkan kelembaban relatif float press =pressure_event.pressure; // dapatkan tekanan dalam mm float mpress =1.3 + ppress/33.8939; // konversi ke inci Hg dan tambahkan 1,3 agar sesuai dengan tekanan // barometrik yang dilaporkan secara lokal. Anda mungkin ingin menghapus 1.3 dan/atau menambahkan penyesuaian Anda sendiri. char mytemp[8]; dtostrf(ftemp, 6, 2, mytemp); // mengubah suhu menjadi string char myhum[8]; dtostrf(hum, 6, 2, myhum); // mengubah kelembapan menjadi string char mypress[8]; dtostrf(mpress, 6, 2, mypress); // mengubah tekanan menjadi string // memperbarui tampilan OLED oledWriteString(&ssoled, 0,2,1,(char *)"Stasiun Cuaca", FONT_NORMAL, 0, 1); oledWriteString(&ssoled, 0,2,3,(char *)"Temp =", FONT_NORMAL, 0, 1); oledWriteString(&ssoled, 0,50,3,(char *)mytemp, FONT_NORMAL, 0, 1); oledWriteString(&ssoled, 0,105,3,(char *)"F", FONT_NORMAL, 0, 1); oledWriteString(&ssoled, 0,2,5,(char *)"Humid=", FONT_NORMAL, 0, 1); oledWriteString(&ssoled, 0,50,5,(char *)myhum, FONT_NORMAL, 0, 1); oledWriteString(&ssoled, 0,105,5,(char *)"%", FONT_NORMAL, 0, 1); oledWriteString(&ssoled, 0,2,7,(char *)"Tekan=", FONT_NORMAL, 0, 1); oledWriteString(&ssoled, 0,50,7,(char *)mypress, FONT_NORMAL, 0, 1); oledWriteString(&ssoled, 0,105,7,(char *)"dalam", FONT_NORMAL, 0, 1); // masukkan data cuaca baru ke Blynk Blynk.virtualWrite(V3, ftemp); Blynk.virtualWrite(V4, hum); Blynk.virtualWrite(V5, mpress); } 

Skema


Proses manufaktur

  1. Sirkuit Terintegrasi
  2. Stasiun cuaca berdasarkan Raspberry Pi
  3. Stasiun Cuaca Raspberry Pi 2
  4. Stasiun Cuaca Raspberry Pi
  5. Bergabunglah dengan IOT dengan Stasiun Cuaca Anda – CWOP
  6. Stasiun Cuaca V 2.0
  7. Model Rail Digital DCC Command Station Arduino dan Aplikasi Gratis
  8. 6-Shooter:Stasiun Pencampur Minuman Arduino
  9. MotionSense
  10. Datalogger Balon Cuaca Bertenaga Arduino