Tentang proyek ini
Pendahuluan
Jika Anda memiliki Alexa atau speaker pintar apa pun dan memiliki integrasi Smart Home, Anda pernah mengalami masalah ini di mana Anda harus mengingat nama perangkat yang akan dikontrol. Saya memiliki banyak perangkat rumah pintar dan terkadang mengingat nama masing-masing perangkat itu rumit.
Terkadang saya akan mengatakan:
3 hal akan terjadi:
- Akhirnya membingungkan Alexa, menyalakan perangkat pintar yang berbeda.
- Mengutuk Alexa (Anda tahu apa yang saya bicarakan, akui saja)
- Atau menyerah, frustrasi dan berkata kepadanya:'Lupakan Alexa, aku akan melakukannya sendiri'... dengan enggan berjalan menuju saklar.
Anak-anak saya biasanya menyukai perintah ini:"Alexa, nyalakan SEMUA lampu". Dan tentu saja, seluruh rumah akan menyala seperti Pohon Natal. Tidak menyenangkan ketika seseorang melakukan itu di tengah malam!
Bagaimana melakukannya
Bagaimana jika saya hanya bisa mengatakan:Alexa, nyalakan lampu ini?
Minta Alexa mendeteksi di mana saya berada di dekat perangkat. Dan ia tahu apa yang saya bicarakan... bukankah ini ide yang bagus?
Nah, salah satu solusi yang mungkin adalah memasang kamera ke kamar saya dan memantau pergerakan dan semacamnya. Tapi itu akan TERLALU MENYENANGKAN. Saya tidak ingin kamera di dalam rumah saya dan melakukan pengenalan gambar.
Di situlah Walabot berperan:
Walabot
Apa itu Walabot?
Walabot adalah sensor 3d yang dapat diprogram yang sempurna untuk proyek elektronik DIY. Walabot adalah jenis baru dari sensor pencitraan 3D. Ini menggunakan frekuensi radio (RFID) dan akan mengungkapkan segala macam hal yang tersembunyi di dunia sekitar Anda. Ini adalah perangkat genggam, dapat diprogram dan SDK kami (perangkat pengembangan perangkat lunak) Ini berisi berbagai kemampuan pencitraan &API kami akan memungkinkan Anda untuk membangun aplikasi kustom Anda sendiri untuk itu.
Itu dapat melacak pergerakan menggunakan RFID.
LattePanda
LattePanda adalah SBC x86/x64 dengan prosesor "Cherrytrail" Intel Atom x8300 quad-core yang dapat menjalankan Windows 10. Ini mencakup RAM 2GB atau 4GB dengan Bluetooth 4.0 dan 802.11 n WiFi terintegrasi, 1 x USB 3.0, 2 x USB 2.0, HDMI out, dan co-prosesor ATMega32u4 terintegrasi - seperti yang akan Anda temukan di Arduino Leonardo - dengan GPIO yang menyertainya - semuanya dalam satu papan seukuran telapak tangan!
Pengaturan ini membuat LattePanda ideal untuk sejumlah skenario. Dalam tutorial ini akan fokus pada keunggulan mikrokontroler terintegrasi LattePanda. Ketika mikrokontroler ini digunakan bersama dengan prosesor Intel Atom, Anda dapat menghubungkan walabot dan arduino secara bersamaan.
Node-Merah
Node-Red adalah alat berbasis browser untuk memungkinkan Anda dengan cepat dan mudah membangun logika Anda sendiri dalam menangani berbagai perangkat IoT, termasuk berlangganan pesan TCP, mendengarkan permintaan Alexa, membaca dan menulis ke Database, menerbitkan ke broker MQTT dan menanggapi permintaan HTTP . Ini juga memungkinkan Anda untuk mendefinisikan fungsi tertentu yang ditulis dalam JavaScript untuk menyediakan operasi logika yang kompleks, sambil menggunakan antarmuka pengguna yang visual, mudah digunakan, tarik dan lepas untuk menghubungkan komponen dan logika yang berbeda bersama-sama.
Node-Red adalah run time berbobot sangat ringan yang dibangun di atas Node.js, memanfaatkan sepenuhnya model operasi non-pemblokiran yang digerakkan oleh peristiwa.
Jika kita dapat memasukkan data Walabot ke Node-Red, itu membuka banyak hal yang dapat kita lakukan terutama di Otomatisasi Rumah. Ada beberapa paket yang saya gunakan untuk menghubungkan Alexa dan Arduino:
- node-red-contrib-alexa-local:node sederhana untuk menambahkan kemampuan Alexa ke aliran NodeRED Anda.
- node-red-node-arduino:Node-RED untuk berbicara dengan Arduino
Berikut adalah beberapa dokumentasi yang dapat Anda gunakan untuk menyiapkan firmata:https://nodered.org/docs/hardware/arduino.html
Cara kerjanya
Perangkat Keras
- Layar IPS 1024x600 7 inci untuk LattePanda
- Keyboard dan mouse nirkabel USB
Pemasangan
Langkah 1. SDK Walabot
Unduh SDK dan instal:https://walabot.com/getting-started
Langkah 2. Siapkan Arduino di Walabot
http://docs.lattepanda.com/content/hardware/accessPinoutsFromVS/
1. Aktifkan mode pengembang di sistem operasi Anda
Langkah 3. Siapkan Arduino
1. Buka Arduinonya. Dan pilih “StandardFirmata”
2. Pilih “Arduino Leonardo”
3. Pilih port COM Anda
4. Unggah sketsa
5. Unggah Selesai!
Hubungkan relai ke LattePanda.
Langkah 4 . Instal dan unduh NodeJS dan Node-Red
Jika Anda tidak terbiasa dengan NodeJS dan node-red, berikut beberapa tautannya:
- http://docs.lattepanda.com/content/projects/NodeRED/
- https://nodered.org/docs/getting-started/installation
Langkah 5. Unduh Python3 dan instal
Langkah 6 . Berikut repositori untuk proyek:https://github.com/rondagdag/smart3DSensorForAlexa
Unduh dan Ekstrak file zip:
> npm install> npm start
Langkah 7 . Pastikan Anda menggunakan wifi yang sama dan aktifkan Smart Home Skills di Aplikasi Alexa Anda. Katakan:'Alexa, temukan perangkat'. Alexa akan menemukan Lampu. Jika Anda ingin melihat aliran Node-Red dan memodifikasinya:http://localhost:8080/red/
Anda sekarang dapat menghubungkannya ke pin yang berbeda pada Pin Arduino di LattePanda. Atau hubungkan dengan MQTT atau modul Node-Red lainnya.
Keseluruhan alurnya terlihat seperti ini...
3 Langkah:
- Menangani Layanan Walabot :program python yang membaca data dari sensor walabot dan mengalirkan data ke port tcp 1890
- Dapatkan dan simpan data objek Walabot :membaca data dari layanan walabot melalui port 1890 dan menyimpan lokasi objek terakhir yang terdeteksi
- Menangani Perintah Alexa :berjalan saat perintah diterima dari Alexa, dan berdasarkan lokasi terakhir yang diketahui, tentukan pin Arduino untuk sakelar yang terhubung ke relai.
- Menangani Layanan Walabot
Berikut kode Walabot Python. Ia membaca data dari Walabot dan mengalirkan string JSON melalui TCP.
from __future__ import print_functionfrom sys import platformfrom os import systemfrom imp import load_sourceWalabotAPI =load_source('WalabotAPI', 'C:\\Program Files\\Walabot\\WalabotSDK\\python\\WalabotAPI.py')import socket, sysif __name__ =='__main__':WalabotAPI.Init() # memuat WalabotSDK ke pembungkus Python WalabotAPI.SetSettingsFolder() # mengatur jalur ke file database penting WalabotAPI.ConnectAny() # menjalin komunikasi dengan Walabot WalabotAPI. SetProfile(WalabotAPI.PROF_SENSOR) # atur profil pemindaian dari kemungkinan WalabotAPI.SetThreshold(35) WalabotAPI.SetArenaR(50,400,4) WalabotAPI.SetArenaPhi(-45,45,2) WalabotAPI.SetArenaTheta(-20,20,10) WalabotAPI.SetDynamicImageFilter(WalabotAPI.FILTER_TYPE_MTI) # tentukan filter untuk menggunakan WalabotAPI.Start() # memulai Walabot dalam persiapan untuk sistem pemindaian ('cls' if platform =='win32' else 'clear') # hapus terminal numOfTargetsToDisplay =1 jika len(sys.argv) ==2:TCP_IP ='127.0.0.1' TCP_PORT =int( sys.argv[1]) s =socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind((TCP_IP, TCP_PORT)) s.listen(1) conn, addr =s.accept() while True:WalabotAPI .Trigger() # memulai pemindaian dan merekam sinyal target =WalabotAPI.GetSensorTargets() # menyediakan daftar target yang teridentifikasi finds ='{"targets":[' index =0 for i, t in enumerate(targets):if i
- Dapatkan dan simpan data objek Walabot
Ini akan menerima data dari port 1890, parsing data json untuk mengatur variabel global yang sesuai.
Ini kode untuk mengonversi ke array json
raw =msg.payload.toString('UTF-8') j =JSON.parse(raw); var msg1 ={ muatan:mentah }; var msg2 ={ muatan:j }; if (raw.length> 20) { X =msg2.payload.targets[0].x; Y =msg2.payload.targets[0].y; Z =msg2.payload.targets[0].z; global.set("X", X); global.set("Y", Y); global.set("Z", Z); var msg3 ={ muatan:X }; var msg4 ={ muatan:Y }; var msg5 ={ muatan:Z }; } mengembalikan [ msg1, msg2, msg3, msg4, msg5];
Untuk menangani perintah Alexa, kami menggunakan node-red-contrib-alexa-local. Kemudian kami akan mendeteksi pada logika ini yang mana untuk mengarahkan perintah berdasarkan dari posisi terakhir orang yang diketahui.
Jika proyek ini membuat Anda tertarik untuk mempelajari lebih lanjut tentang Amazon Echo, Walabot, LattePanda, Node-Red, Python, atau Anda sedang mengalami hari yang menyenangkan, cukup klik tombol 'Hormati proyek' dan ikuti saya. jika ini membantu Anda membangun proyek, tinggalkan pesan dan beri kami umpan balik. Saya ingin mendengar bagaimana proyek ini membantu Anda.
Perhatikan bahwa tidak ada Keterampilan Alexa khusus yang sebenarnya digunakan untuk proyek ini, ia menggunakan fungsionalitas rumah pintar Amazon Echo bawaan yang di luar kotak mengontrol bohlam Phillips Hue. Node node-red-contrib-alexa-local di Node-Red hanya memalsukan "Bulbs" kustom yang ingin Anda kontrol dengan Alexa!
Kode
Sensor 3D Cerdas untuk Alexa
https://github.com/rondagdag/smart3DSensorForAlexa