Tangkap & Visualisasikan Data Lingkungan dengan Arduino MKR WiFi 1010 di IoT Cloud
Komponen dan Perlengkapan
Arduino MKR WiFi 1010
×
1
Arduino MKR ENV Shield
×
1
Aplikasi dan Layanan Online
Arduino IoT Cloud
Tentang Proyek Ini
Cerita
Dengan membuat proyek ini, Anda akan mempelajari cara membaca data dari berbagai sensor yang tersedia pada ENV Shield, dan Anda juga mempelajari cara memvisualisasikan data pada widget yang tersedia di Arduino Cloud.
Yang Anda Butuhkan
Proyek ini memerlukan Arduino MKR WiFi 1010, MKR ENV Shield, paket baterai (atau cara lain untuk menyediakan daya pada papan) dan akun di Arduino IoT Cloud:
Inti dari proyek ini adalah Arduino MKR WiFi 1010. Papan ini menangani komputasi dan komunikasi berkat mikrokontroler SAMD21 dan modul NINA-W10 papan, yang mampu WiFi dan BLE;
Paket baterai terhubung ke MKR WiFi 1010 dan digunakan untuk menyediakan daya pada perangkat ketika sumber daya alternatif tidak tersedia;
MKR ENV Shield adalah pelindung Arduino MKR yang menampilkan sensor lingkungan untuk mengukur suhu, kelembaban, tekanan, cahaya, dan UV.
Kredensial akses diperlukan untuk terhubung ke jaringan WiFi.
Konfigurasi perangkat keras relatif sederhana: hanya memerlukan MKR WiFi 1010, pelindung MKR ENV, dan paket baterai.
Ratakan MKR WiFi 1010 dan pelindung ENV dengan memastikan konektor pin yang terlabel cocok
Paket baterai harus dihubungkan ke konektor yang ditetapkan pada MKR WiFi 1010:
Struktur Kode
Ada dua bagian utama dari kode yang diperlukan oleh proyek ini: kerangka template yang dihasilkan oleh Arduino IoT Cloud API untuk menampilkan data yang diterima dari papan MKR WiFi dan pustaka Arduino MKRENV yang memungkinkan kami membaca nilai yang diukur oleh semua sensor miliknya:
Thing Arduino IoT Cloud kami akan dikonfigurasi untuk menyimpan enam properti yang akan mewakili semua pengukuran yang diperoleh oleh MKR WiFi 1010 dan dikirim melalui koneksi aman.
Sketsa Arduino pertama kali dihasilkan secara otomatis oleh IoT Cloud dan menangani koneksi ke Internet serta transfer data antara Thing kami dan papan, kami kemudian akan menambahkan pustaka Arduino MKRENV untuk mengelola sensor pelindung ENV.
Sketsa
Bagian kode pertama digunakan untuk menyertakan pustaka yang diperlukan oleh aplikasi kami.
thingProperties.h mencakup semua fungsionalitas koneksi WiFi dan manajemen koneksi cloud; satu-satunya informasi yang diperlukan dari pengguna adalah kredensial yang diperlukan untuk membangun koneksi dengan jaringan WiFi (SSID dan PASSWORD).
Arduino IoT Cloud mengautentikasi perangkat yang terhubung menggunakan kunci yang disimpan di dalam chip kripto papan selama Pengaturan Perangkat (di bawah Bagian Perangkat - TAMBAHKAN PERANGKAT), menjamin transmisi data melalui saluran aman.
Pustaka Arduino_MKRENV mencakup semua yang diperlukan untuk membaca nilai yang diukur oleh setiap sensor pada pelindung MKR ENV.
Biasanya, bagian setup memungkinkan kami untuk menginisialisasi semua objek yang digunakan oleh sketsa, termasuk Arduino IoT Cloud dan propertinya. ArduinoCloud.begin() memastikan papan kami siap untuk terhubung dan bertukar data dengan Dasbor:
void setup() { // Inisialisasi Serial dan tunggu port untuk terbuka: Serial.begin(9600); // Penundaan ini memberikan kesempatan untuk menunggu Serial Monitor tanpa pemblokiran jika tidak ditemukan delay(1500); // Didefinisikan dalam thingProperties.h initProperties(); // Terhubung ke Arduino IoT Cloud ArduinoCloud.begin(ArduinoIoTPreferredConnection); /* Fungsi berikut memungkinkan Anda untuk mendapatkan informasi lebih lanjut terkait status jaringan dan koneksi IoT Cloud serta kesalahan semakin tinggi nomor semakin rinci informasi yang Anda dapatkan. Default adalah 0 (hanya kesalahan). Maksimum adalah 4 */ setDebugMessageLevel(2); ArduinoCloud.printDebugInfo(); if (!ENV.begin()) { Serial.println("Gagal untuk menginisialisasi pelindung MKR ENV!"); while(1); } }
Bagian kode terakhir adalah loop tempat kami kueri setiap sensor pada pelindung MKR ENV Shield. Setelah setiap pembacaan sketsa memperbarui variabel properti dan berkat ArduinoCloud.update() data disinkronkan dengan cloud:
void loop() { ArduinoCloud.update(); // Kode Anda di sini humidity = int(ENV.readHumidity()); lux = int(ENV.readIlluminance()); pressure = int(ENV.readPressure()); temperature = int(ENV.readTemperature()); uva = int(ENV.readUVA()); uvb = int(ENV.readUVB()); uvi = int(ENV.readUVIndex()); delay(1000); }
Cara Menyiapkan dan Menggunakan
Hubungkan semua bagian bersama-sama, lalu hubungkan MKR WiFi 1010 Anda ke komputer dan masuk ke akun Arduino Cloud Anda.
Anda perlu mengikuti prosedur yang dijelaskan dalam Arduino Cloud Getting Started dan membuat properti seperti yang ditentukan dalam tabel berikut, ingat bahwa setiap nama peka huruf besar-kecil:
Setiap kali Anda menambahkan widget baru Anda diharuskan mengisi formulir seperti di bawah ini.
Jika Anda mengisi setiap properti dengan benar, Anda akan mendapatkan sesuatu seperti ini:
Semua properti telah dibuat, klik tombol edit code. Anda akan dialihkan ke Arduino Create Web Editor tempat Anda akan mengganti sketsa utama di tab pertama dengan kode berikut:
/* Sketsa yang dihasilkan oleh Arduino IoT Cloud Thing "env_shield" https://create.arduino.cc/cloud/things/829941ed-efdd-4572-91c0-e93a732192ec Deskripsi Properti Arduino IoT Cloud Variabel berikut secara otomatis dihasilkan dan diperbarui ketika perubahan dibuat pada properti Thing int humidity; int lux; int pressure; int temperature; int uva; int uvb; int uvi; Properti yang ditandai sebagai READ/WRITE di Cloud Thing juga akan memiliki fungsi yang dipanggil ketika nilainya diubah dari Dasbor. Fungsi ini dihasilkan dengan Thing dan ditambahkan di akhir sketsa ini. */ #include "thingProperties.h" #include <Arduino_MKRENV.h> void setup() { // Inisialisasi serial dan tunggu port untuk terbuka: Serial.begin(9600); // Penundaan ini memberikan kesempatan untuk menunggu Serial Monitor tanpa pemblokiran jika tidak ditemukan delay(1500); // Didefinisikan dalam thingProperties.h initProperties(); // Terhubung ke Arduino IoT Cloud ArduinoCloud.begin(ArduinoIoTPreferredConnection); /* Fungsi berikut memungkinkan Anda untuk mendapatkan informasi lebih lanjut terkait status jaringan dan koneksi IoT Cloud serta kesalahan semakin tinggi nomor semakin rinci informasi yang Anda dapatkan. Default adalah 0 (hanya kesalahan). Maksimum adalah 4 */ setDebugMessageLevel(4); ArduinoCloud.printDebugInfo(); if (!ENV.begin()) { Serial.println("Gagal untuk menginisialisasi pelindung MKR ENV!"); while(1); } } void loop() { ArduinoCloud.update(); // Kode Anda di sini humidity = int(ENV.readHumidity()); lux = int(ENV.readIlluminance()); pressure = int(ENV.readPressure()); temperature = int(ENV.readTemperature()); uva = int(ENV.readUVA()); uvb = int(ENV.readUVB()); uvi = int(ENV.readUVIndex()); delay(1000); } void onHumidityChange() { // Lakukan sesuatu } void onLuxChange() { // Lakukan sesuatu } void onPressureChange() { // Lakukan sesuatu } void onTemperatureChange() { // Lakukan sesuatu } void onUvaChange() { // Lakukan sesuatu } void onUvbChange() { // Lakukan sesuatu } void onUviChange() { // Lakukan sesuatu }
Unggah sketsa ke papan, dan setelah koneksi terbentuk MKR WiFi akan mulai mensinkronkan nilai yang diperoleh dari pelindung MKR ENV dengan propertinya di Cloud, yang akan ditampilkan di dasbor dari Thing yang dibuat.
Sketsa pada Arduino Create tersedia di bawah di bagian kode.
Kami harap Anda akan menikmati menciptakan sensor rumah/taman sederhana menggunakan Arduino IoT Cloud, MKR WiFi 1010, dan pelindung MKR ENV yang elegan.