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

Monitor Cuaca MKR FOX 1200

Komponen dan persediaan

Arduino MKR Fox 1200
× 1
SparkFun Atmospheric Sensor Breakout - BME280
× 1
Sensor cahaya luminositas digital TSL2561
× 1
HTU 1D
× 1

Aplikasi dan layanan online

Editor Web Arduino
ThingSpeak API
Sigfox

Tentang proyek ini

Catatan:Tutorial ini mungkin sudah usang, silakan buka di sini untuk versi yang lebih baru.

Proyek ini menunjukkan cara mengubah MKR FOX 1200 dan sekumpulan sensor I2C menjadi stasiun cuaca sederhana bertenaga baterai.

Kami akan menggunakan:

  • sensor suhu onboard (presisi rendah, ± 1 °C)
  • Sensor HTU21D I2C untuk mendapatkan tingkat kelembapan
  • Bosch BMP280 untuk mendapatkan tekanan barometrik dan suhu yang tepat
  • Sensor cahaya TSL2561 untuk mendapatkan luminositas

Penyiapan Perangkat Keras

Koneksi perangkat keras untuk proyek ini cukup sederhana:semua sensor menggunakan antarmuka I2C dan berjalan pada 3.3V.

Mereka membutuhkan empat kabel dari MKR FOX 1200:GND, 3.3V, SDA pada Pin 11 dan SCL pada Pin 12. Empat koneksi yang sama dapat dibagi secara paralel dengan tiga sensor karena masing-masing memiliki alamat I2C tertentu dan oleh karena itu perpustakaan dan fungsi yang relevan akan menangani diskriminasi masing-masing.

Seluruh proyek dapat ditenagai oleh dua baterai alkaline AA atau AAA yang dihubungkan secara seri untuk menghasilkan 3V dan dihubungkan ke blok terminal sambungan sekrup di papan tulis.

Pesan Sigfox

Karena jaringan Sigfox dapat mengirim maksimum 140 pesan per hari, kami akan mengoptimalkan pembacaan dan mengirim data dalam format biner yang ringkas.

Pengemasan data penting karena ukuran maksimum pesan yang dapat Anda kirim adalah 12 byte. Float menempati 4 byte, jadi kita perlu mengemas bacaan kita ke dalam beberapa representasi yang lebih kecil.

Format float sangat lebar (Anda dapat merepresentasikan angka sebesar 3.402823e+38 (!) ) dan kami tidak membutuhkan seluruh ruang data; kita kemudian dapat memutuskan batas aman (berdasarkan di mana kita akan men-deploy stasiun) dan mengembalikan representasi asli di backend.

Konfigurasi Layanan Cloud

Kami akan menggunakan dua layanan cloud:

  • Latar belakang Sigfox
  • Bicaralah

Daftarkan papan Anda di backend Sigfox menggunakan PAC dan ID yang disediakan oleh contoh FirstConfiguration (dapat dilewati jika Anda sudah melakukannya untuk proyek sebelumnya).

Keduanya perlu dikonfigurasi untuk berbicara satu sama lain dan menafsirkan data dalam format yang tepat. Daftar ke keduanya dan buat beberapa saluran di Thingspeak. Konfigurasi dilaporkan pada gambar di bawah ini.

Saluran pertama yang kami konfigurasikan adalah saluran yang menerima data mentah (readChannelID ), sedangkan yang kedua akan mengumpulkan data yang diskalakan ulang (writeChannelID ).

Saatnya mengunggah sketsa menggunakan Arduino Create Editor. Sketsa default memungkinkan Anda menguji secara ekstensif semua infrastruktur sebelum menerapkan di lapangan.

Ingatlah untuk menyatakan:

oneshot =false 

ketika Anda yakin bahwa semua penyiapan infrastruktur backend sudah benar. Sketsa menunggu port serial, jadi kami tidak akan meluncurkannya sekarang. Sebagai gantinya, buka backend SigFox dan konfigurasikan panggilan balik:

Klik JENIS PERANGKAT -> DAFTAR -> klik kanan pada papan Anda dan klik Edit.

Klik PANGGILAN BALIK di menu sebelah kiri:

Anda akan melihat jendela seperti ini:

Klik Baru tombol di kanan atas jendela:

Pilih Panggilan balik khusus:

Konfigurasi yang relevan dilaporkan di bawah ini. Pastikan panggilan balik diatur sebagai:

  • JENIS:DATA/UPLINK
  • Saluran:URL
  • Metode HTTP:GET

Sebagai Muatan Khusus, setel:

status::uint:8 temp1::int:16:little-endian temp2::int:16:little-endian press::uint:16:little-endian hum::uint:16:little -endian light::uint:16:little-endian lastMsg::uint:8  

Ini mewakili struktur yang kami kemas dalam sketsa. Kami menetapkan variabel ke setiap bidang, sehingga kami dapat mereferensikannya dalam panggilan balik HTTP.

Sebagai Pola URL, setel:

https://api.thingspeak.com/update?api_key=XXXXXXXXXXXX&field1={customData#temp1}&field2={customData#press}&field3={customData#temp2}&field4={customData#hum}&field5={customData#light}&field6={customData#status}&field7={customData#lastMsg}  

Setelah dikonfigurasi, jendela Anda akan menjadi seperti ini:

Ingatlah untuk mengubah kunci API api_key dengan yang disediakan oleh Thingspeak sebagai Write API Key untuk Saluran1 .

Simpan dan keluar. Kita sekarang dapat membuka port serial dan mengamati pesan pertama yang dikirim. Hore!

Dari Mentah ke Grafik

Pengaturan yang kami konfigurasikan akan merutekan data kami ke backend Thingspeak, tetapi mereka masih dalam format mentah; untuk mengonversinya kembali, mari gunakan alat analisis Thingspeak dengan cuplikan ini

% TODO - Ganti [] dengan ID saluran untuk membaca data dari:readChannelID =[]; % TODO - Masukkan Read API Key di antara '' di bawah ini:readAPIKey ='T6UK7XO6A4H2AGT7'; % TODO - Ganti [] dengan ID saluran untuk menulis data ke:writeChannelID =[]; % TODO - Masukkan Write API Key di antara '' di bawah ini:writeAPIKey ='XU4TGY261P6B5USN'; %% Baca Data %% data =thingSpeakRead(readChannelID, 'ReadKey', readAPIKey,'OutputFormat','table'); dianalisisData =data; %% Analisis Data %% INT16_t_MAX =32767; UINT16_t_MAX =65536; dianalisisData.('Suhu1') =data.('Suhu1') / INT16_t_MAX * 120; dianalisisData.('Suhu2') =data.('Suhu2') / INT16_t_MAX * 120; dianalisisData.('Tekanan') =data.('Tekanan') / UINT16_t_MAX * 200000; dianalisisData.('Cahaya') =data.('Cahaya') / UINT16_t_MAX * 100000; dianalisisData.('Kelembaban') =data.('Kelembaban') / UINT16_t_MAX * 110; %% Tulis Data %% thingSpeakWrite(writeChannelID, analysisData, 'WriteKey', writeAPIKey); %% Jadwalkan tindakan:Bereaksi -> setiap 10 menit 

Dengan mengganti ID saluran dengan milik kita sendiri, kita akhirnya dapat mengubah kembali data mentah menjadi nilai aktual. Ingatlah untuk menjadwalkan tindakan analisis setiap 10 menit menggunakan React atau tidak akan pernah dieksekusi!

Kami akhirnya memiliki grafik yang luar biasa.

Kode

Pemantau Cuaca

Proses manufaktur

  1. Stasiun Cuaca Raspberry Pi
  2. Pemantau Cuaca
  3. Membuat Monitor Ambilight Menggunakan Arduino
  4. Pemantauan CO2 dengan Sensor K30
  5. Pemantau Detak Jantung Menggunakan IoT
  6. Arduino + ESP Weather Box
  7. Berapa Tinggi Anda?
  8. Sensor Sidik Jari Kapasitif dengan Arduino atau ESP8266
  9. Arduino Cloud Sensor Tower
  10. Pemantau Kualitas Udara DIY dengan Sensor Sharp GP2Y1010AU0F