Isi kandungan:

Pemberitahuan Acara Masa Nyata Menggunakan NodeMCU (Arduino), Google Firebase dan Laravel: 4 Langkah (dengan Gambar)
Pemberitahuan Acara Masa Nyata Menggunakan NodeMCU (Arduino), Google Firebase dan Laravel: 4 Langkah (dengan Gambar)

Video: Pemberitahuan Acara Masa Nyata Menggunakan NodeMCU (Arduino), Google Firebase dan Laravel: 4 Langkah (dengan Gambar)

Video: Pemberitahuan Acara Masa Nyata Menggunakan NodeMCU (Arduino), Google Firebase dan Laravel: 4 Langkah (dengan Gambar)
Video: Full !!! Cara Mengirim Notifikasi Android (Push Notification) Menggunakan Nodemcu ESP8266 2024, Jun
Anonim
Image
Image
Pemberitahuan Acara Masa Nyata Menggunakan NodeMCU (Arduino), Google Firebase dan Laravel
Pemberitahuan Acara Masa Nyata Menggunakan NodeMCU (Arduino), Google Firebase dan Laravel

Adakah anda pernah mahu diberitahu apabila ada tindakan yang dibuat di laman web anda tetapi e-mel tidak sesuai? Adakah anda ingin mendengar bunyi atau loceng setiap kali anda membuat penjualan? Atau ada keperluan untuk perhatian segera anda kerana keadaan kecemasan di rumah?

Peranti ini dapat memberi amaran kepada anda dalam masa nyata mengenai apa sahaja yang anda suka.

Langkah 1: Wire Up Circuit

Wire Up Litar
Wire Up Litar
Wire Up Litar
Wire Up Litar

Peranti yang saya buat terdiri daripada papan NodeMCU dengan buzzer untuk memberitahu saya mengenai penjualan yang dibuat di laman web. Mikrokontroler diprogramkan menggunakan perisian Arduino dan bahagian pemicunya dapat berupa aplikasi web, iOS atau Android. Saya telah membuat dua aplikasi web sederhana, satu di Laravel dan yang lain dalam HTML biasa dan JavaScript untuk contohnya.

Oleh kerana papan NodeMCU dapat beroperasi dengan selamat hingga sekitar 12mA arus pada pin, bel disambungkan melalui transistor NPN. Saya telah menggunakan 2N2222 kerana banyak dari mereka meletakkan tetapi saya yakin bahawa prinsipnya akan sama dengan transistor NPN yang lain.

Untuk memasang litar, sambungkan pemungut transistor ke pin Vin di papan. Buzzer beroperasi pada 5V dan kerana kita akan menghidupkan peranti dari USB, pin ini akan memberi kita voltan sebelum pengawal 3.3V di papan.

Seterusnya sambungkan sisi positif buzzer pada pemancar transistor, dan pin negatif buzzer ke salah satu pin ground di papan. Saya telah menggunakan pin 2, tetapi anda juga boleh menyambungkannya pada pin 9, 25 atau 29.

Asas transistor disambungkan ke pin D2 yang berkorelasi dengan GPIO 4 pada perisian Arduino. Dengan persediaan ini, transistor akan berfungsi dengan berkesan sebagai suis menghidupkan bel pada setiap acara. Daripada bel, anda boleh menyambungkan geganti dengan cara yang sama untuk menggerakkan sebarang alat utama seperti lampu, mesin atau siren jika anda membuat alat penggera.

Langkah 2: Sediakan Aplikasi Web

Sediakan Aplikasi Web
Sediakan Aplikasi Web
Sediakan Aplikasi Web
Sediakan Aplikasi Web
Sediakan Aplikasi Web
Sediakan Aplikasi Web

Untuk bahagian pencetus dan masa nyata peranti, kami akan menggunakan Pangkalan Data Firebase Realtime Google. Ini pangkalan data awan NoSQL yang indah yang dibuat oleh Google yang menyediakan penyegerakan data masa nyata antara setiap platform yang digunakan.

Pertama buat projek dengan nama pilihan anda. Setelah dibuat, buat satu simpul yang disebut "hitung" dan mulakan dengan nilai jika 0. Ini akan menjadi kiraan permulaan kami yang ingin kami ikuti di masa hadapan.

Aplikasi Laravel menggunakan paket "firebase-php" dari Kreait, dan dihubungkan di bawah. Pasang pakej dengan menjalankan "komposer memerlukan kreait / firebase-php". Setelah pemasangan selesai, kita perlu membuat pengawal di mana tindakan akan berlaku. Saya menamakan kaedah itu "kemas kini" dan saya telah menghubungkannya dalam laluan pada tindakan POST.

Untuk mendapatkan semula contoh Firebase, anda memerlukan fail json yang perlu anda muat turun dari Firebase console anda. Letakkan fail ini di akar projek Laravel anda dan beri nama firebase.json. Semasa mengambil contoh firebase, kita perlu memberikan jalan ke fail ini menggunakan kaedah withCredentials.

Setelah mendapat contoh firebase, kita perlu mendapatkan rujukan ke pangkalan data dan node yang telah kita buat sebelumnya. Pada setiap tindakan, kita akan mendapat nilai node semasa, meningkatkannya satu demi satu dan menyimpan jika kembali ke pangkalan data. Ini akan menjejaki peristiwa yang perlu kita maklumkan.

Hal yang sama dapat dicapai dengan HTML dan JavaScript biasa, menggunakan library firebase yang disediakan. Dengan itu, pertama-tama kita perlu menyediakan susunan konfigurasi dengan tetapan yang sesuai dari Firebase console dan memulakan aplikasi. Setelah diinisialisasi, kami mendapat rujukan ke simpul tempat kami menyimpan jumlah peristiwa dan melampirkan pendengar untuk mengambil perubahan nilai.

Selain itu, daripada menyerahkan formulir seperti dalam contoh Laravel, kita sekarang memiliki fungsi JavaScript yang dipanggil pada klik butang, mengemas kini kiraan dan menulis kembali nilai yang dikemas kini ke pangkalan data.

Langkah 3: Program NodeMCU Board

Atur cara NodeMCU Board
Atur cara NodeMCU Board
Atur cara NodeMCU Board
Atur cara NodeMCU Board
Atur cara NodeMCU Board
Atur cara NodeMCU Board

Untuk memprogram NodeMCU, saya telah menggunakan perisian Arduino dan setelah saya memasang papan padanya, saya memilih untuk memilih versi dan port yang sesuai supaya saya dapat memuat naik perisian tersebut. Mine adalah versi 1.0 jadi periksa semula papan anda sebelum meneruskan.

Bahagian pertama kod Arduino, menyediakan semua definisi yang diperlukan yang perlu anda sesuaikan pada peranti anda. Pengaturan pertama seperti itu adalah ssid WiFi dan kata laluannya, maka kita perlu menyiapkan url firebase, dan rahsia firebase db. Sayangnya, ini bukan cara yang disarankan untuk menyambung ke pangkalan data tetapi sekarang ini adalah satu-satunya cara perpustakaan menyokongnya. Anda boleh mendapatkan rahsia ini di bawah menu Tetapan Projek, akaun perkhidmatan di firebase console.

Definisi seterusnya adalah jalan yang akan kita periksa untuk kemas kini dan id peranti. ID peranti diperlukan jadi sekiranya kita mempunyai banyak peranti untuk memberi tahu tentang peristiwa yang sama, kita perlu mengetahui peranti mana yang memberitahu kita untuk acara tersebut dan menyimpan catatan tentang hal itu. Yang terakhir kita perlu menyiapkan pin di mana kita telah menyambungkan bel dan ini adalah D2 dalam kes kita.

Fungsi penyediaan menentukan pin led dan pin D2 sebagai output, mulakan komunikasi bersiri untuk mengetahui apa yang sedang berlaku dan menghubungkan ke rangkaian WiFi yang ditentukan. Setelah sambungan dibuat, ia memulakan komunikasi dengan Firebase dan mendapat nilai terakhir yang kami laporkan. Kemudian mula mendengar perubahan pada jalan yang ditentukan.

Dalam gelung utama, terdapat panggilan ke fungsi sekelip mata yang berkelip-kelip pada lampu terpasang selama 500 milisaat agar kita dapat mengetahui bahawa peranti itu aktif. Apabila perubahan dikesan dan ada data yang dapat kita baca dengan fungsi yang tersedia, nilai simpul baru sedang dibaca, selisih dihitung kerana mungkin ada beberapa peristiwa sementara itu dan bunyi bip dihasilkan untuk setiap waktu perbezaannya.

Sebagai contoh jika perbezaan antara nilai terakhir yang dilaporkan dan nilai baru adalah 4, 4 bip akan dihasilkan untuk memberitahu anda bahawa 4 pembelian baru telah dilakukan. Fungsi bip menggunakan fungsi nada dalam untuk memainkan frekuensi yang ditentukan melalui buzzer untuk jangka masa yang ditetapkan.

Setelah bunyi bip dihasilkan, nilai baru dikemas kini untuk peranti yang ditentukan dan penstriman dimulakan semula. Pada masa ini terdapat masalah terbuka di pustaka firebase arduino bahawa penstriman tidak berterusan secara automatik setelah kami menyimpan nilai secara manual sehingga kami perlu memulakannya semula.

Langkah 4: Nikmati Peranti Anda

Nikmati Peranti Anda!
Nikmati Peranti Anda!

Seluruh kod yang telah saya gunakan tersedia di akaun GitHub saya yang dipautkan di bawah bersama-sama dengan pautan ke skema projek.

Kod sumber

Skema

Kod ini dapat digunakan dengan mudah untuk berfungsi untuk pelbagai senario dan acara yang berbeza dan saya yakin anda akan bersenang-senang bermain dengannya.

Bagi saya ini adalah binaan yang sangat menyeronokkan dan saya berjaya belajar banyak tentangnya dan untuk itu saya sangat gembira. Saya harap ia dapat membantu anda dalam projek anda tetapi jika anda mendapati diri anda terjebak dengan mana-mana bahagiannya atau anda memerlukan penjelasan lebih lanjut, sila beritahu saya dalam komen dan saya akan melakukan yang terbaik untuk membantu anda.

Sekiranya anda menyukai projek tersebut, sila langgan saluran YouTube saya:

Rasa Kod

Disyorkan: