Daftar Isi:
- Langkah 1: Persyaratan
- Langkah 2: Pengaturan
- Langkah 3: Pengaturan Perangkat Keras
- Langkah 4: Pengaturan Firmware
- Langkah 5: Pengembangan Aplikasi Ubidots
- Langkah 6: Konfigurasi Dasbor
Video: Cara Membangun Sistem Deteksi Gerakan Dengan Arduino: 7 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:55
Bangun penghitung produksi gerakan dan kehadiran menggunakan Feather HUZZAH yang diprogram dengan Arduino dan didukung oleh Ubidots.
Deteksi gerakan dan kehadiran fisik yang efektif di Smart Homes dan Smart Manufacturing bisa sangat berguna dalam aplikasi mulai dari solusi Ambient Assisted Living (AAL) lanjut usia atau Sistem Penghitungan Produksi yang memberi makan MES yang lebih besar. Aplikasi lain untuk Deteksi Gerakan dan Kehadiran termasuk tetapi tidak terbatas pada:
- Otomatisasi pintu dan gerbang
- Sensor parkir untuk menentukan tempat gratis
- Pemantauan level tangki jarak jauh
- Rumah pintar dan fasilitas untuk penerangan dan keamanan
- Deteksi dan penghitungan unit di jalur konveyor
- Deteksi tanda pada bahan cetak
- Deteksi cairan di dalam karton, plastik, dan kertas miring
- Deteksi jarak
- Penghitung orang
Meskipun ada banyak aplikasi untuk kehadiran dan gerakan, ada banyak sensor yang sama untuk mengumpulkan data, seperti sensor kapasitif, induktif, fotolistrik, dan ultrasonik. Tergantung pada biaya, kondisi lingkungan, dan persyaratan akurasi, seseorang harus memilih perangkat keras yang paling cocok untuk lingkungan dan persyaratan aplikasi.
Untuk tutorial ini, kita akan fokus membangun konter produksi waktu nyata; aplikasi akan menghitung setiap unit yang lewat di ban berjalan. Kami akan menggunakan Arduino IDE untuk memprogram Feather HUZZAH ESP8266, sensor ultrasonik, dan Ubidots untuk mengembangkan aplikasi kami dan menampilkan dasbor IoT kami.
Langkah 1: Persyaratan
- Bulu HUZZAH dengan ESP8266MB7389-100
- Sensor ultrasonik
- Arduino IDE 1.8.2 atau lebih tinggi
- Akun Ubidots -atau-Lisensi STEM
Langkah 2: Pengaturan
- Saya Pengaturan Perangkat Keras
- II. Pengaturan Firmware
- AKU AKU AKU. Pengembangan Aplikasi Ubidots (acara, variabel, dan dasbor)
Langkah 3: Pengaturan Perangkat Keras
Sensor Ultrasonik MB7389-100 adalah opsi berbiaya rendah untuk aplikasi Industri dengan jangkauan luas dan persyaratan konsumsi daya rendah dalam kondisi cuaca yang menantang berkat peringkat IPv67-nya.
Untuk memulai, cerminkan diagram di bawah ini untuk memasang sensor ultrasonik ke Feather HUZZAH ESP8266.
CATATAN: Pembacaan sensor dapat berupa pembacaan analog atau PWM; di bawah ini kami akan menjelaskan pengaturan untuk pembacaan PWM, untuk informasi tambahan silakan lihat contoh yang ditunjukkan di atas.
[Opsional] tempatkan mikrokontroler dan sensor di dalam casing IP67 untuk melindunginya dari debu, air, dan faktor lingkungan lain yang mengancam. Kasing standar terlihat mirip dengan yang ditunjukkan pada foto di atas.
Langkah 4: Pengaturan Firmware
Pertama, Anda harus menginstal Feather Huzzah di Arduino IDE dan mengkompilasi kodenya. Ingatlah untuk memverifikasi pengaturan ini dengan melakukan tes berkedip sederhana. Untuk informasi lebih lanjut tentang menghubungkan perangkat Feather Anda, lihat panduan pengaturan perangkat keras yang bermanfaat ini.
Untuk mengirim data sensor ke Ubidots IoT Development Platform, salin dan tempel kode di bawah ini ke Arduino IDE. Ingatlah untuk menetapkan nama jaringan Wi-Fi, kata sandi, dan Token akun Ubidots Anda di tempat yang ditunjukkan dalam kode.
/********************************* Termasuk perpustakaan *************** ****************/#termasuk /****************************** ** Konstanta dan objek *******************************//* Ubidots */const char* SSID_NAME = "xxxxxxxx"; // Letakkan di sini karakter nama SSID Anda* SSID_PASS = "xxxxxxxx"; // Letakkan disini passwordconst char* TOKEN = "Assig_your_ubidots_token"; // Letakkan di sini TOKENconst char* DEVICE_LABEL = "motion-control"; // Perangkat Anda labelconst char* VARIABLE_LABEL = "distance"; // Variabel labelconst char* USER_AGENT = "ESP8266";const char* VERSION = "1.0";const char* HTTPSERVER = "industrial.api.ubidots.com";// Pengguna bisnis Ubidots//const char* HTTPSERVER = " hal.ubidots.com"; // Pengguna pendidikan Ubidotsint HTTPPORT = 80;/* Sensor Ultrasonik */const int pwPin1 = 5; // Pin PWM tempat sensor terhubungWiFiClient clientUbi;/********************************* Fungsi Tambahan *** ****************************//** Mendapatkan panjang tubuh @arg variabel tubuh tipe char @return dataLen panjang variabel*/int dataLen(char* variabel) { uint8_t dataLen = 0; for (int i = 0; i distance / 25.4 */ float distance = pulseIn(pwPin1, HIGH); sendToUbidots(DEVICE_LABEL, VARIABLE_LABEL, distance); delay(1000);}void sendToUbidots(const char* device_label, const char* variable_label, float sensor_value) { char* body = (char *) malloc(sizeof(char) * 150); char* data = (char *) malloc(sizeof(char) * 300); /* Spasi untuk menyimpan nilai yang akan dikirim * / char str_val[10]; /*---- Mengubah nilai sensor menjadi tipe karakter -----*/ /* 4 adalah lebar minimum, 2 adalah presisi; nilai float disalin ke str_val*/ dtostrf(sensor_value, 4, 2, str_val); /* Membangun body yang akan dikirim ke request*/ sprintf(body, "{"%s\":%s}", variable_label, str_val); /* Membangun HTTP permintaan menjadi POST */ sprintf(data, "POST /api/v1.6/devices/%s", device_label); sprintf(data, "%s HTTP/1.1\r\n", data); sprintf(data, "%sHost: things.ubidots.com\r\n", data); sprintf(data, "%sUser-Agent: %s/%s\r\n", data, USER_AGENT, VERSION); sprintf(data, "%sX-Auth-Token: %s\r\n", data, TOKEN); sprint f(data, "%sKoneksi: tutup\r\n", data); sprintf(data, "%sTipe-Konten: aplikasi/json\r\n", data); sprintf(data, "%sContent-Length: %d\r\n\r\n", data, dataLen(body)); sprintf(data, "%s%s\r\n\r\n", data, isi); /* Koneksi awal */ clientUbi.connect(HTTPSERVER, HTTPPORT); /* Verifikasi koneksi klien */ if (clientUbi.connect(HTTPSERVER, HTTPPORT)) { Serial.println(F("Memposting variabel Anda: ")); Serial.println(data); /* Kirim Permintaan HTTP */ clientUbi.print(data); } /* Saat klien tersedia, baca respons server */ while (clientUbi.available()) { char c = clientUbi.read(); Serial.tulis(c); } /* Bebaskan memori */ bebas(data); bebas (tubuh); /* Menghentikan klien */ clientUbi.stop();}
ProTip: Anda dapat memeriksa apakah perangkat Anda terhubung dengan benar dengan membuka monitor serial di Arduino IDE.
Anda dapat memverifikasi bahwa perangkat dibuat di backend Ubidots Anda dengan melihatnya di akun Anda Manajemen Perangkat -> Perangkat.
Dengan mengklik perangkat Anda, Anda akan menemukan variabel yang disebut "jarak" tempat pembacaan sensor disimpan. Nama ini ditetapkan dalam kode yang baru saja Anda tempel di Arduino IDE. Jika Anda ingin menyesuaikan variabel otomatis, lakukan dengan mengedit kartu Perangkat atau dengan mem-flash kode yang diperbarui dengan nomenklatur variabel yang benar untuk aplikasi Anda.
Dengan Feather HUZZAH ESP8266 yang terhubung dan melaporkan data ke Ubidots, sekarang saatnya untuk membangun aplikasi menggunakan Ubidots yang dirancang dengan hati-hati dengan konfigurasi aplikasi bebas kode.
Langkah 5: Pengembangan Aplikasi Ubidots
Konfigurasi Acara Ubidots
Pembacaan saat ini yang kami kirim ke Ubidots adalah input jarak. Untuk menerjemahkan pembacaan ini ke dalam output yang kita inginkan -counted units- kita harus membuat event dengan mengikuti langkah-langkah berikut:
- Di dalam perangkat saat ini "kontrol gerak" buat variabel default baru yang disebut "kotak", yang akan menerima 1 setiap kali unit baru dihitung.
- Buka Manajemen Perangkat -> Acara, dan klik ikon plus biru di sudut kanan atas halaman untuk menambahkan acara baru.
- Konfigurasikan acara Anda yang dimulai dengan "Jika pemicu":
- Pilih variabel: "jarak"
- Nilai: nilai (default)
- Kurang dari atau sama dengan [jarak maksimum yang diharapkan} antara sensor dan kotak yang lewat*aplikasi kami meminta 500mm
- Selama 0 menit
- Menyimpan
4. Setelah pemicu dikonfigurasikan ke spesifikasi aplikasi Anda, klik ikon "plus" oranye di sudut kanan atas untuk menambahkan tindakan bersyarat.
5. Pilih “Set Variable” sebagai tindakan.
6. Selanjutnya, pilih variabel default yang dibuat sebelumnya "kotak" dan nilai "1".
7. Simpan perubahan. Jika acara diatur dengan benar, itu akan mengirim "1" setiap kali jarak antara sensor dan unit lebih panjang dari ambang batas yang ditunjukkan, yang menunjukkan bahwa tidak ada objek di dekat - dan harus menghitung unit baru yang baru saja lewat.
Dalam kartu Perangkat khusus Bulu, Anda akan menemukan bahwa variabel "kotak" di mana "1" dikirim setiap kali kehadiran unit dirasakan.
Terutama berguna untuk ban berjalan industri dan penghitungan unit, prototipe ini dapat disesuaikan agar sesuai dengan lingkungan atau perangkat keras yang berbeda hanya dalam pengkodean atau pengembangan aplikasi Anda.
8. Visualisasikan jumlah unit yang terdeteksi (atau berapa kali suatu objek terdeteksi) Sekarang, dengan menggunakan variabel "kotak", kita akan membuat variabel jendela bergulir baru untuk menjumlahkan jumlah total pembacaan yang diterima dari variabel "kotak" di spam yang ditentukan (menit, jam, hari, minggu, dll). Untuk menjalankan pengembangan ini, ikuti langkah-langkah sederhana ini:
Tetapkan kredensial berikut ke variabel jendela bergulir baru Anda
Pilih perangkat: kontrol gerak (atau nama perangkat yang Anda kirimi data)
Pilih variabel: kotak
Hitung: jumlah
Setiap: "1" jam (atau sesuai permintaan aplikasi Anda)
Sekarang tetapkan nama untuk variabel baru yang menunjukkan jumlah kotak (atau pergerakan) yang dihitung dalam satu jam, seperti "kotak/jam" atau "satuan/jam.
Langkah 6: Konfigurasi Dasbor
Terakhir, buat dasbor untuk menampilkan jumlah unit yang terdeteksi.
Buka Manajemen Perangkat -> Dasbor dan tambahkan widget baru. Widget ini akan menampilkan jumlah kotak yang dihitung hari ini dipecah menurut jam.
Tetapkan kredensial berikut ke widget baru Anda untuk memvisualisasikan hitungan Anda.
Bagaimana Anda ingin melihat data Anda?: Bagan
Pilih jenis widget: bagan garis
Tambahkan perangkat: kontrol gerak
Tambahkan variabel: kotak/jam
Menyelesaikan. Dan dengan pengembangan dasbor terakhir ini - aplikasi Anda selesai dan Anda sekarang memiliki sistem deteksi gerakan dan kehadiran yang efisien dan efektif. Berikut adalah tampilan akhir dari hasil kami.
Direkomendasikan:
Sistem Alarm SMS Deteksi Gerakan DIY: 5 Langkah (dengan Gambar)
Sistem Alarm SMS Deteksi Gerakan DIY: Dalam proyek ini saya akan menggabungkan sensor gerak PIR murah dengan modul GSM TC35 untuk membangun sistem alarm yang mengirimi Anda "PERINGATAN INTRUDER" SMS setiap kali seseorang mencoba mencuri barang-barang Anda. Mari kita mulai
Visuino Membangun Sistem Deteksi Intrusi Menggunakan Arduino: 8 Langkah
Visuino Membangun Sistem Deteksi Intrusi Menggunakan Arduino: Dalam tutorial ini kita akan menggunakan Sensor Gerak Radar Microwave XYC-WB-DC yang terhubung ke Arduino UNO dan Visuino untuk mendeteksi setiap gerakan dalam radius sekitar 5m termasuk dinding tipis.Tonton video demonstrasi
Sistem Alarm Deteksi Gerakan: 11 Langkah (dengan Gambar)
Sistem Alarm Deteksi Gerakan: Catatan! Blok Reaktif tidak lagi tersedia untuk diunduh. Kamera USB dasar dapat digunakan untuk mendeteksi gerakan di dalam ruangan. Dalam langkah-langkah berikut kami akan menunjukkan kepada Anda bagaimana Anda dapat menggunakan Blok Reaktif untuk memprogram aplikasi Java yang siap dijalankan yang mengirim SMS
Keamanan Rumah DIY - Cara Membuat Deteksi Gerakan Sederhana - Versi Baru: 6 Langkah
Keamanan Rumah DIY - Cara Membuat Deteksi Gerakan Sederhana | Versi Baru: Dalam proyek ini saya akan menunjukkan kepada Anda cara membuat alarm pemberitahuan gerakan keamanan rumah DIY dengan biaya rendah! Lihat versi lama: Cara Membuat Sistem Keamanan WiFi $10 di Rumah
Cara Membangun Kotak Speaker Gitar atau Membangun Dua untuk Stereo Anda.: 17 Langkah (dengan Gambar)
Cara Membuat Kotak Speaker Gitar atau Membangun Dua untuk Stereo Anda.: Saya ingin speaker gitar baru sesuai dengan ampli tabung yang sedang saya buat. Pembicara akan tetap berada di luar toko saya sehingga tidak perlu menjadi sesuatu yang terlalu istimewa. Penutup Tolex mungkin terlalu mudah rusak, jadi saya hanya menyemprotkan bagian luar hitam setelah pasir ringan