Isi kandungan:
- Langkah 1: Keperluan
- Langkah 2: Persediaan
- Langkah 3: Persediaan Perkakasan
- Langkah 4: Persediaan Firmware
- Langkah 5: Pembangunan Aplikasi Ubidots
- Langkah 6: Konfigurasi Papan Pemuka
Video: Cara Membina Sistem Pengesanan Gerak Dengan Arduino: 7 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:08
Bina kaunter pengeluaran gerak dan kehadiran menggunakan Feather HUZZAH yang diprogramkan dengan Arduino dan dikuasakan oleh Ubidots.
Pergerakan fizikal dan pengesanan kehadiran yang berkesan di Rumah Pintar dan Pembuatan Pintar sangat berguna dalam aplikasi mulai dari penyelesaian Ambient Assisted Living (AAL) warga tua atau Sistem Pengiraan Pengeluaran yang memberi makan MES yang lebih besar. Aplikasi lain untuk Pengesanan Gerak dan Kehadiran termasuk tetapi tidak terhad kepada:
- Automasi pintu dan pintu
- Sensor tempat letak kereta untuk menentukan tempat percuma
- Pemantauan tahap tangki jauh
- Rumah pintar dan kemudahan untuk pencahayaan dan keselamatan
- Pengesanan dan pengiraan unit dalam garis penghantar
- Tandakan pengesanan pada bahan bercetak
- Pengesanan cecair di dalam kadbod, plastik, dan kemiringan kertas
- Pengesanan jarak
- Kaunter orang
Walaupun terdapat banyak aplikasi untuk kehadiran dan gerakan, sensor sama banyak untuk mengumpulkan data, seperti sensor kapasitif, induktif, fotolistrik, dan ultrasonik. Bergantung pada kos, keadaan persekitaran, dan keperluan ketepatan, seseorang harus memilih perkakasan yang paling sesuai untuk keperluan persekitaran dan aplikasi.
Untuk tutorial ini, kami akan memberi tumpuan untuk membina kaunter pengeluaran masa nyata; aplikasi akan mengira setiap unit yang lewat pada tali sawat. Kami akan menggunakan Arduino IDE untuk memprogram Feather HUZZAH ESP8266, sensor ultrasonik, dan Ubidots untuk mengembangkan aplikasi kami dan memaparkan papan pemuka IoT kami.
Langkah 1: Keperluan
- Bulu HUZZAH dengan ESP8266MB7389-100
- Sensor Ultrasonik
- Arduino IDE 1.8.2 atau lebih tinggi
- Akaun Ubidots-atau STEM License
Langkah 2: Persediaan
- Saya Penyediaan Perkakasan
- II. Persediaan Firmware
- III. Pembangunan Aplikasi Ubidots (peristiwa, pemboleh ubah, dan papan pemuka)
Langkah 3: Persediaan Perkakasan
Sensor Ultrasonik MB7389-100 adalah pilihan kos rendah untuk aplikasi Industri dengan keperluan penggunaan pelbagai dan kuasa rendah dalam keadaan cuaca yang mencabar berkat penilaian IPv67.
Untuk memulakan, cerminkan rajah di bawah untuk memasang sensor ultrasonik ke Feather HUZZAH ESP8266.
CATATAN: Bacaan sensor boleh diambil sebagai bacaan analog atau PWM; di bawah ini kami akan menerangkan persediaan untuk pembacaan PWM, untuk maklumat tambahan sila lihat contoh yang ditunjukkan di atas.
[Secara pilihan] letakkan pengawal mikro dan sensor di dalam casing de IP67 untuk melindungi mereka dari habuk, air, dan faktor persekitaran yang mengancam lain. Kotak standard kelihatan serupa dengan yang ditunjukkan dalam gambar di atas.
Langkah 4: Persediaan Firmware
Pertama, anda harus memasang Feather Huzzah di Arduino IDE dan menyusun kodnya. Ingatlah untuk mengesahkan penyediaan ini dengan melakukan ujian berkelip sederhana. Untuk maklumat lebih lanjut mengenai menyambungkan peranti Feather anda, lihat panduan persediaan perkakasan yang berguna ini.
Untuk menghantar data sensor ke Ubidots IoT Development Platform, salin dan tampal kod di bawah ke Arduino IDE. Ingatlah untuk memberikan nama rangkaian Wi-Fi, kata laluan, dan Token akaun Ubidots anda yang dinyatakan dalam kod.
/ ******************************** Perpustakaan termasuk *************** **************** / # sertakan / ****************************** ** Pemalar dan objek ******************************* // * Ubidots * / const char * SSID_NAME = "xxxxxxxx"; // Letakkan di sini ciri SSID anda * SSID_PASS = "xxxxxxxx"; // Masukkan di sini charconconst anda * TOKEN = "Assig_your_ubidots_token"; // Masukkan di sini char TOKENconst anda * DEVICE_LABEL = "motion-control"; // Peranti labelconst char anda * VARIABLE_LABEL = "jarak"; // Pemboleh ubah labelconst anda * USER_AGENT = "ESP8266"; const char * VERSION = "1.0"; const char * HTTPSERVER = "industrial.api.ubidots.com"; // Pengguna perniagaan Ubidots // const char * HTTPSERVER = " things.ubidots.com "; // Ubidots Pendidikan penggunaint HTTPPORT = 80; / * Ultrasonic Sensor * / const int pwPin1 = 5; // Pin PWM di mana sensor disambungkanWiFiClient clientUbi; / ******************************** Fungsi Auxiliar *** **************************** // ** Mendapatkan panjang badan @arg memboleh ubah badan jenis char @return dataLen the panjang pemboleh ubah * / int dataLen (char * variable) {uint8_t dataLen = 0; untuk (int i = 0; i jarak / 25.4 * / jarak apungan = pulseIn (pwPin1, HIGH); sendToUbidots (DEVICE_LABEL, VARIABLE_LABEL, jarak); kelewatan (1000);} batal sendToUbidots (const char * device_label, const char * variabel_label, float sensor_value) {char * body = (char *) malloc (sizeof (char) * 150); char * data = (char *) malloc (sizeof (char) * 300); / * Ruang untuk menyimpan nilai untuk dihantar * / char str_val [10]; / * ---- Mengubah nilai sensor menjadi jenis char ----- * / / * 4 adalah lebar minimum, 2 adalah ketepatan; nilai apungan disalin ke str_val * / dtostrf (sensor_value, 4, 2, str_val); / * Membina badan yang akan dihantar ke permintaan * / sprintf (body, "{"% s / ":% s}", variabel_label, str_val); / * Membangun HTTP minta 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); pecut f (data, "% sConnection: close / r / n", data); sprintf (data, "% sContent-Type: application / json / r / n", data); sprintf (data, "% sContent-Length:% d / r / n / r / n", data, dataLen (badan)); sprintf (data, "% s% s / r / n / r / n", data, badan); / * Sambungan awal * / clientUbi.connect (HTTPSERVER, HTTPPORT); / * Sahkan sambungan pelanggan * / jika (clientUbi.connect (HTTPSERVER, HTTPPORT)) {Serial.println (F ("Posting your variables:")); Serial.println (data); / * Kirim Permintaan HTTP * / clientUbi.print (data); } / * Semasa pelanggan tersedia, baca respons pelayan * / while (clientUbi.available ()) {char c = clientUbi.read (); Serial.write (c); } / * Memori percuma * / percuma (data); percuma (badan); / * Hentikan klien * / clientUbi.stop ();}
ProTip: anda boleh memeriksa sama ada peranti anda disambungkan dengan betul dengan membuka monitor bersiri di Arduino IDE.
Anda boleh mengesahkan bahawa peranti dibuat di backend Ubidots dengan melihatnya di akaun anda Pengurusan Peranti -> Peranti.
Dengan mengklik peranti anda, anda akan menemui pemboleh ubah yang disebut "jarak" di mana bacaan sensor disimpan. Nama ini diberikan dalam kod yang baru anda tempelkan di Arduino IDE. Sekiranya anda ingin menyesuaikan pemboleh ubah automatik anda, lakukan dengan mengedit kad Peranti atau dengan memaparkan kod yang dikemas kini dengan nomenklatur pemboleh ubah yang betul untuk aplikasi anda.
Dengan Feather HUZZAH ESP8266 terhubung dan melaporkan data ke Ubidots, kini saatnya untuk membina aplikasi menggunakan Ubidots yang dirancang dengan teliti konfigurasi aplikasi bebas kod.
Langkah 5: Pembangunan Aplikasi Ubidots
Konfigurasi Acara Ubidots
Bacaan semasa yang kami hantar ke Ubidots adalah input jarak. Untuk menerjemahkan pembacaan ini ke output yang diinginkan yang kita mahukan -kira unit- kita harus membuat acara mengikuti langkah-langkah berikut:
- Di dalam peranti semasa "gerakan kawalan" buat pemboleh ubah lalai baru yang disebut "kotak", yang akan menerima 1 setiap kali unit baru dikira.
- Pergi ke Pengurusan Peranti -> Acara, dan klik ikon tambah biru di sudut kanan atas halaman untuk menambahkan acara baru.
- Konfigurasikan acara anda bermula dengan "If triggers":
- Pilih pemboleh ubah: "jarak"
- Nilai: nilai (lalai)
- Kurang daripada atau sama dengan [jarak maksimum yang diharapkan] antara sensor dan kotak yang melewati * aplikasi kami memerlukan 500mm
- Selama 0 minit
- Jimat
4. Setelah pemicu dikonfigurasi sesuai dengan spesifikasi aplikasi anda, klik ikon "plus" berwarna jingga di sudut kanan atas untuk menambahkan tindakan bersyarat.
5. Pilih "Tetapkan Pembolehubah" sebagai tindakan.
6. Seterusnya, pilih "kotak" pemboleh ubah lalai yang dibuat sebelumnya dan nilai "1".
7. Simpan perubahan. Sekiranya acara diatur dengan betul, ia akan mengirim "1" setiap kali jarak antara sensor dan unit lebih panjang dari ambang yang ditunjukkan, yang menunjukkan bahawa tidak ada objek yang dekat - dan harus mengira unit baru yang baru saja dilewati.
Dalam kad Peranti khusus Feather, anda akan mendapati bahawa "kotak" pemboleh ubah di mana "1" dihantar setiap kali kehadiran unit dirasakan.
Terutama berguna untuk tali sawat industri dan penghitungan unit prototaip ini dapat disesuaikan agar sesuai dengan persekitaran atau perkakasan yang berbeza hanya dalam pengekodan atau pengembangan aplikasi anda.
8. Visualisasikan jumlah unit yang dirasakan (atau kali objek dikesan) Sekarang, dengan menggunakan pemboleh ubah "kotak", kita akan membuat pemboleh ubah tetingkap baru untuk menjumlahkan jumlah bacaan yang diterima dari pemboleh ubah "kotak" di spam yang ditentukan (minit, jam, hari, minggu, dll). Untuk melaksanakan perkembangan ini, ikuti langkah mudah berikut:
Tetapkan kelayakan berikut ke pemboleh ubah tetingkap baru anda
Pilih peranti: kawalan gerakan (atau nama peranti yang anda kirimkan data anda)
Pilih pemboleh ubah: kotak
Hitung jumlah:
Setiap: "1" jam (atau sesuai dengan permintaan aplikasi anda)
Sekarang tetapkan nama ke pemboleh ubah baru yang menunjukkan bilangan kotak (atau pergerakan) yang dikira dalam satu jam, seperti "kotak / jam" atau "unit / jam.
Langkah 6: Konfigurasi Papan Pemuka
Akhirnya, buat papan pemuka untuk memaparkan jumlah unit yang dirasakan.
Pergi ke Pengurusan Peranti -> Papan Pemuka dan tambahkan widget baru. Widget ini akan memaparkan jumlah kotak yang dihitung hari ini dipecahkan mengikut jam.
Tetapkan kelayakan berikut ke widget baru anda untuk menggambarkan jumlah anda.
Bagaimana anda ingin melihat data anda ?: Carta
Pilih jenis widget: carta garis
Tambahkan peranti: kawalan gerakan
Tambahkan pemboleh ubah: kotak / jam
Selesai. Dan dengan pengembangan papan pemuka akhir ini - aplikasi anda sudah lengkap dan anda kini mempunyai sistem pengesanan pergerakan dan kehadiran yang cekap dan berkesan. Inilah gambaran terakhir hasil kami.
Disyorkan:
Sistem Penggera SMS Pengesanan Gerak DIY: 5 Langkah (dengan Gambar)
Sistem Penggera SMS Pengesanan Gerak DIY: Dalam projek ini saya akan menggabungkan sensor gerak PIR yang murah dengan modul GSM TC35 untuk membina sistem penggera yang akan menghantar anda " ALAT PEMASANG " SMS setiap kali seseorang cuba mencuri barang anda. Mari kita mulakan
Kamera E-mel Arduino Security 3G / GPRS Dengan Pengesanan Gerak: 4 Langkah
Kamera E-mel Arduino Security 3G / GPRS Dengan Pengesanan Gerak: Dalam manual ini, saya ingin memberitahu tentang satu versi membina sistem pengawasan keselamatan dengan pengesan gerakan dan menghantar foto ke peti mel melalui perisai 3G / GPRS. Artikel ini berdasarkan arahan lain: arahan 1 dan arahan
Sistem Penggera Pengesanan Gerak: 11 Langkah (dengan Gambar)
Sistem Penggera Pengesanan Gerak: Perhatikan! Blok Reaktif tidak lagi tersedia untuk dimuat turun. Kamera USB asas boleh digunakan untuk mengesan pergerakan di dalam bilik. Pada langkah-langkah berikut, kami akan menunjukkan kepada anda bagaimana Anda dapat menggunakan Blok Reaktif untuk memprogram aplikasi Java yang siap dijalankan yang mengirim SMS
Keselamatan Rumah DIY - Cara Membuat Pengesanan Gerak Ringkas - Versi Baru: 6 Langkah
Keselamatan Rumah DIY - Cara Membuat Pengesanan Gerak Ringkas | Versi Baru: Dalam projek ini saya akan menunjukkan kepada anda cara membuat penggera pemberitahuan keselamatan rumah DIY kos rendah! Lihat versi lama: Cara Membuat Sistem Keselamatan WiFi $ 10 di Rumah
Cara Membina Kotak Pembesar Suara Gitar atau Membina Dua untuk Stereo Anda .: 17 Langkah (dengan Gambar)
Cara Membina Kotak Pembesar Suara Gitar atau Membina Dua untuk Stereo Anda: Saya mahu pembesar suara gitar baru pergi dengan tabung amp yang saya bina. Pembesar suara akan berada di kedai saya sehingga tidak perlu menjadi sesuatu yang terlalu istimewa. Penutup Tolex mungkin terlalu mudah rosak, jadi saya hanya menyemburkan bahagian luar hitam setelah pasir ringan