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

Animated Smart Light dengan Alexa dan Arduino

Komponen dan persediaan

Arduino UNO
Arduino Nano juga dapat digunakan. Arduino Mega mungkin berguna untuk mendorong lebih banyak piksel LED.
× 1
Raspberry Pi 3 Model B
× 1
strip NeoPixel
Strip LED WS8212 apa pun dapat digunakan.
× 1

Aplikasi dan layanan online

Arduino IDE
Layanan Web Amazon AWS Lambda
Perangkat Keterampilan Alexa Alexa Amazon
Layanan Web Amazon AWS IoT

Tentang proyek ini

Mengapa Strip Ringan

Saya selalu terpesona dengan strip LED RGB yang dapat dialamatkan. Efek warna tak berujung dan kemampuan animasi selalu menangkap kreativitas saya sehingga beberapa tahun yang lalu saya telah memutuskan untuk mengembangkan perpustakaan untuk papan Arduino yang disebut ALA (Arduino Light Animations). Alexa sekarang memberi saya kemungkinan untuk mengontrol pencahayaan dan efek ruangan dengan suara saya dan itu keren!

Ikhtisar Proyek

Ada komponen yang diperlukan untuk proyek ini.

  • Amazon Alexa: Keterampilan Alexa khusus (Light Strip) menentukan model interaksi suara dan menerjemahkan perintah (maksud) yang dikeluarkan ke fungsi Lambda.
  • Amazon Lambda :Skrip Python yang menerima pesan dari Alexa dan mengirim pembaruan ke layanan IoT.
  • Amazon IoT :Layanan IoT menyimpan 'bayangan benda' yang merupakan representasi dari status strip RGB. Setiap kali shadow diperbarui, klien MQTT yang berlangganan (Raspberry PI) akan diberi tahu.
  • PI Raspberry :PC kecil ini menjalankan klien MQTT untuk menerima pesan dari layanan Amazon IoT. Di sisi lain, ia akan memberi daya dan mengirim perintah ke papan Arduino melalui port USB.
  • Arduino :Mikrokontroler yang bagus ini akan menjalankan perpustakaan ALA untuk menggerakkan strip LED yang menerima perintah dari Raspberry PI melalui port serial USB. Anda dapat menggunakan papan Arduino Uno, Nano, atau Mega.
  • WS8212 Strip LED RGB :Ini adalah strip LED yang dapat dialamatkan sehingga setiap led dapat dikontrol secara individual. Ini memungkinkan animasi cahaya yang indah dan berwarna-warni.

Tidak ada dalam proyek yang sangat menantang, tetapi ada banyak bagian yang saling berhubungan. Saya menyarankan Anda untuk mengikuti struktur yang disarankan untuk membangun proyek Anda di atas fondasi yang kokoh sebelum melanjutkan ke langkah berikutnya. Untuk membuat segalanya sesederhana mungkin, saya telah membagi proyek menjadi dua sub-proyek.

Bagian pertama dari proyek ini dijelaskan dalam Animasi LED Terkendali Web saya dengan proyek Raspberry Pi dan Arduino Hackster.io dan akan memandu Anda melalui langkah-langkah yang diperlukan untuk menghubungkan Raspberry PI, papan Arduino, dan strip LED WS8212. Di akhir fase ini, Anda akan mampu mengontrol animasi LED dari smartphone atau PC menggunakan browser web.

Bagian kedua dari proyek yang dijelaskan di sini akan menambahkan kontrol suara ke implementasi sebelumnya menggunakan Amazon Alexa. Ada beberapa langkah yang harus dilakukan untuk menyiapkan seluruh rantai dengan benar, jadi bersabarlah dan ikuti petunjuknya dengan cermat..

Amazon IoT

Sudahkah Anda menyelesaikan bagian perangkat keras? Sekarang saatnya untuk pergi ke awan! Kami akan menggunakan platform AWS IoT untuk mengelola 'barang' kami dari internet.

Kami akan menggunakan "Device Shadow" , yang merupakan salinan dari keadaan sesuatu, bersama dengan perubahan yang diinginkan. Raspberry PI akan berlangganan feed notifikasi yang memublikasikan perubahan ("delta") pada Shadow ini. Lihat tautan ini untuk info selengkapnya tentang platform dan API AWS IoT.

Buat Hal IoT

Masuk ke Konsol AWS. Jika Anda belum melakukannya, Anda harus membuat akun gratis.

Pastikan Anda masuk ke US East (Virginia Utara) atau EU (Irlandia) zona di pojok kanan atas.

Telusuri 'IoT' dan pilih AWS IoT melayani. Klik Memulai tombol (jika ada) untuk menutup tutorial pengenalan.

Pertama-tama kita perlu membuat kebijakan keamanan untuk "hal" kita. Buka Aman> Kebijakan menu lalu klik Buat Kebijakan tombol dan masukkan info berikut:

  • Nama:LightStripPolicy
  • Tindakan:*
  • Sumber daya:*
  • Efek - Izinkan:dicentang
  • Klik 'Buat'

Sekarang kita dapat membuat IoT Benda .

  • Pilih Kelola > Sesuatu menu dan buat AWS IoT Thing baru dengan mengklik Daftarkan Sesuatu tombol (atau Buat tombol di sudut kanan atas) dan kemudian pada Buat satu hal .
  • Ketik 'LS01' di bidang Nama. Biarkan default untuk bidang lain dan klik Berikutnya .
  • Klik Buat sertifikat tombol di Pembuatan sertifikat sekali klik bagian.
  • Unduh 3 sertifikat untuk perangkat Anda dan Root CA. Untuk Root CA, Anda mungkin perlu mengklik kanan lalu menyimpannya.
  • Setelah mengunduh sertifikat, klik Aktifkan tombol.
  • Klik Lampirkan Kebijakan tombol, dan pilih LightStripPolicy yang telah Anda buat sebelumnya, lalu klik Register Thing .

Sebelum melanjutkan, Anda perlu mencatat Titik Akhir AWS IoT. Klik Setelan di sudut kiri bawah halaman web AWS IoT, buka dan catat Endpoint.

Konfigurasikan Raspberry PI untuk mendengarkan 'Thing'

Pertama-tama kita perlu menginstal AWS IoT Device SDK untuk Python dengan perintah berikut pada baris perintah Raspberry PI:

sudo pip3 install AWSIoTPythonSDK 

Sekarang unduh repositori LightStrip dari GitHub dan unzip.

mkdircd /home/pi/LightStripwget https://github.com/bportaluri/LightStrip/archive/master.zipunzip master.zip 

Salin empat sertifikat yang telah Anda unduh saat membuat IoT Thing di /home/pi/LightStrip/LightStrip-master/pi folder.

Edit lightstripcfg.py naskah. Anda dapat menggunakan editor teks apa pun. Berikut adalah perintah untuk nano editor.

cd /home/pi/LightStrip/LightStrip-master/pinano lightstripcfg.py 

Sekarang edit pengaturan agar sesuai dengan konfigurasi Anda.

  • AWSIOT:Masukkan Titik Akhir AWS IoT yang Anda catat sebelumnya.
  • ROOT_CA:nama file sertifikat CA root
  • SERTIFIKAT:nama file sertifikat
  • PRIVATE_KEY:nama file kunci pribadi
  • DEVICE_NAME:biarkan tidak berubah menjadi "LS01"

Tutup editor nano dan simpan file dengan menekan 'Ctrl+X' lalu 'Y'.

Luncurkan skrip lightstrip.py sebagai berikut.

sudo python3 lightstrip.py 

Script akan mencantumkan port USB yang terhubung. Arduino harus terhubung ke /dev/ttyACM0 jadi jalankan skrip yang melewati port seperti ini.

sudo python3 lightstrip.py /dev/ttyACM0 

Klien pengujian akan terhubung ke layanan Amazon Thing Shadow dan berlangganan perubahan LS01 perangkat bayangan. Setelah koneksi berhasil, skrip klien akan memperbarui statusnya ke bayangan perangkat LS01 dan menerima pesan pengakuan seperti ini.

Untuk memverifikasi semuanya berfungsi dengan benar, kembali ke konsol AWS IoT dan pilih Kelola> Hal menu lalu buka LS01 perangkat. Pilih Bayangan menu dan Anda akan melihat status bayangan perangkat.

Klik pada Edit link di bagian Shadow Document dan paste dokumen JSON berikut di kotak Shadow state.

{ "diinginkan":{ "animasi":"101" }} 

Inilah yang harus Anda lihat.

Saat mengklik tautan Simpan, pesan 'delta' akan dikirim ke klien MQTT di Raspberry PI yang akan menyalakan strip led.

Dokumen JSON berikut akan berubah warna menjadi biru.

{ "diinginkan":{ "warna":"0066CC" }} 

Pada titik ini kami dapat mengontrol strip LED kami dari layanan ASW IoT sehingga Anda harus bangga dengan Anda.

Fungsi AWS Lambda

AWS Lambda memungkinkan untuk menjalankan kode di cloud tanpa menyediakan atau mengelola server. Ini adalah jembatan sempurna antara Alexa Skills Kit yang akan mengaktifkan kontrol suara di langkah terakhir proyek ini.

Masuk ke Konsol AWS. Dari daftar layanan, pilih Lambda .

Pastikan Anda masuk ke wilayah yang sama dengan yang Anda gunakan pada langkah sebelumnya:US East (Virginia Utara) atau EU (Irlandia) zona di pojok kanan atas.

Klik Buat Fungsi tombol. Klik Penulis dari awal dan konfigurasikan sebagai berikut:

  • Nama =LightStrip
  • Waktu Proses =Python 3.6
  • Peran =Buat Peran Khusus. Ini akan meluncurkan tab baru. Cukup klik tombol “Izinkan” untuk membuat peran baru bernama lambda_basic_execution.
  • Peran yang ada:lambda_basic_execution
  • Klik Buat Fungsi tombol

Catat ID ARN Lambda di pojok kanan atas.

Klik LightStrip kotak untuk membuka bagian kode fungsi.

Jenis entri kode:Edit kode sebaris

  • Waktu Proses:Python 3.6
  • Penangan:lambda_function.lambda_handler

lambda_function.py skrip harus sudah ditentukan. Tempel kode dari LightStrip\lambda\lambda_function.py file ke dalam editor kode.

Buat file lain bernama ala_controller.py dan rekatkan kode dari LightStrip\lambda\ala_controller.py file ke dalam editor kode.

Beginilah seharusnya semuanya terlihat.

Setelah selesai, klik warna oranye Simpan tombol di pojok kanan atas.

Keterampilan Alexa

Sekarang kita dapat membuat keterampilan khusus Light Strip untuk Alexa.

Buka Konsol Pengembang Amazon dan masuk sesuai kebutuhan. Anda mungkin perlu mendaftarkan akun Anda terlebih dahulu.

Buka Alexa> Alexa Skills Kit (Memulai) .

Klik Tambahkan Keterampilan Baru tombol di sudut kanan atas dan masukkan data berikut di Informasi Keterampilan tab:

  • Jenis Keterampilan:Model Interaksi Khusus
  • Bahasa:Inggris (AS)
  • Nama:LightStrip
  • Nama Panggilan:strip ringan
  • Klik Simpan

Ini menciptakan keterampilan. Catat ID Keterampilan.

Pilih Model Interaksi menu lalu klik Luncurkan Pembuat Keterampilan tombol.

Klik Editor Kode tombol dan rekatkan konten LightStrip/alexaskill/lightstrip_skill.json file di kotak teks.

Klik Simpan Model dan Bangun Model tombol. Ini akan memakan waktu beberapa menit untuk membangun model jadi bersabarlah. Klik Informasi Keterampilan tombol untuk kembali ke halaman konfigurasi keahlian.

Sekarang klik pada Konfigurasi menu.

Di Service Endpoint Type pilih AWS Lambda ARN lalu tempelkan fungsi Lambda ARN yang Anda catat di atas.

Biarkan semua nilai default dan klik Simpan tombol dibawah.

Hubungkan keterampilan Alexa ke fungsi Lambda

Kembali ke fungsi Lambda Anda. Di sisi kanan ada daftar pemicu yang telah ditentukan. Pilih Perangkat Keterampilan Alexa dan itu akan ditambahkan ke fungsi Anda.

Konfigurasi sebagai berikut:

  • Id Aplikasi =ID Keterampilan yang Anda sebutkan di atas
  • Klik Tambahkan
  • Klik Simpan

Anda selesai

Proyek ini sekarang selesai. Coba perintah suara berikut:

  • Buka Jalur Cahaya
  • Aktifkan
  • Setel kecerahan ke 20 persen
  • Setel kecerahan ke 50 persen
  • Setel warna menjadi merah
  • Setel warna ke pirus
  • Matikan
  • Jalankan animasi yang menarik
  • Jalankan animasi santai

Skill LightStrip juga memungkinkan interaksi suara yang lebih maju

  • Saya:Alexa, buka Light Strip
  • Alexa:Selamat datang di LightStrip - Strip LED akan menyala dengan cahaya biru
  • Saya:Luncurkan animasi
  • Alexa:Apakah Anda ingin animasi yang santai atau menarik?
  • Saya:Santai
  • Alexa:OK - Strip LED akan menampilkan animasi acak
  • Saya:Animasi berikutnya
  • Alexa:OK - Animasi acak lainnya akan ditampilkan

Untuk lebih memahami model interaksi di sini adalah diagram VUI lengkap dari keterampilan.

Penyempurnaan dan penyempurnaan

Secara otomatis memulai AlaWeb saat boot

Peningkatan kecil untuk proyek ini adalah memulai skrip lightstrip.py secara otomatis saat boot sehingga Anda tidak perlu meluncurkannya secara manual setiap kali Anda menyalakan Raspberry PI atau terjadi kesalahan dan Anda harus mengatur ulang. Ikuti petunjuk ini.

Menambahkan dan mengubah animasi

Cskill Light Strip sudah memiliki 20 variasi animasi yang ditentukan. Namun, perpustakaan ALA memungkinkan Anda untuk dengan mudah mengatur animasi Anda sendiri dengan memilih preset animasi, palet warna, dan kecepatan. Anda dapat menambahkan animasi Anda sendiri atau mengubah yang sudah ada di skrip ala_controller.py. Sekitar baris 80 Anda akan melihat daftar pengaturan animasi yang dapat Anda ubah atau tingkatkan berdasarkan selera Anda.

Kode

LightStrip
Semua kode yang Anda butuhkan untuk proyek inihttps://github.com/bportaluri/LightStrip

Skema


Proses manufaktur

  1. Panel LCD dengan Arduino untuk Simulator Penerbangan
  2. Beralih/Panel LED dengan Arduino untuk FS2020
  3. Arduino dengan Bluetooth untuk Mengontrol LED!
  4. Smart Shoes (Tali Otomatis dan Pembangkit Listrik)
  5. Arduino Quadruped
  6. Mengontrol Motor Servo dengan Arduino dan MPU6050
  7. Mengontrol Kecerahan LED Menggunakan Bolt dan Arduino
  8. u-blox LEA-6H 02 Modul GPS dengan Arduino dan Python
  9. Lengan Robot Sederhana dan Cerdas Menggunakan Arduino
  10. Pengenalan dan Sintesis Ucapan dengan Arduino