Daftar Isi:
- Langkah 1: Pengaturan Awal
- Langkah 2: Siapkan Ngrok
- Langkah 3: Skrip Python untuk Kontrol Saklar Lampu
- Langkah 4: Skrip Python untuk Kontrol Kipas
- Langkah 5: Menginstal dan Mengonfigurasi Paket LIRC
- Langkah 6: Skrip Python untuk Kontrol TV
- Langkah 7: Masuk ke Akun AWS
- Langkah 8: Pengaturan Keterampilan Alexa TV
- Langkah 9: Nyalakan Pengaturan Keterampilan Alexa
- Langkah 10: Pengaturan Keterampilan Fan Alexa
- Langkah 11: Bangun Sirkuit
- Langkah 12: Perintah Alexa
Video: Kontrol Ruang Tamu Dengan Alexa dan Raspberry Pi: 12 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:53
Kontrol TV, lampu, dan Kipas ruang tamu Anda dengan Alexa (Amazon Echo atau Dot) dan Raspberry Pi GPIO.
Langkah 1: Pengaturan Awal
Saya menggunakan gambar Raspberry Pi 2 dan Raspbian Jessie yang diunduh dari
Setelah masuk, masukkan perintah berikut untuk menginstal paket dan pustaka python yang diperlukan:
sudo apt-get update && sudo apt-get upgrade -ysudo apt-get install python2.7-dev python-dev python-pip Sudo pip install Flask flask-ask Sudo apt-get install lirc
Langkah 2: Siapkan Ngrok
Kunjungi https://ngrok.com/download dan dapatkan rilis ARM Linux terbaru sebagai zip dan unzip di dalam direktori home:
unzip /home/pi/ngrok-stable-linux-arm.zip
Buka terminal baru dan masukkan perintah berikut:
sudo./ngrok http 4000
Buka terminal baru lainnya dan masukkan perintah berikut:
sudo./ngrok http 4500
Buka terminal baru ketiga dan masukkan perintah berikut:
sudo./ngrok http 5000
Langkah 3: Skrip Python untuk Kontrol Saklar Lampu
Buka sesi terminal baru dan buat file python baru bernama light_control.py:
nano light_control.py
Salin/tempel kode berikut ke dalam file baru:
from flask import Flaskfrom flask_ask import Ask, statement, convert_errors import RPi. GPIO as GPIO import logging import os GPIO.setmode(GPIO. BCM) app = Flask(_name_) ask = Ask(app, '/') logging.getLogger(" flask_ask").setLevel(logging. DEBUG) @ask.intent('LightControlIntent', mapping={'status': 'status'}) def light_control(status): try: pinNum = 27 kecuali Exception as e: return statement('Nomor pin tidak valid.') GPIO.setup(pinNum, GPIO. OUT) jika status di ['on', 'high']: GPIO.output(pinNum, GPIO. LOW) jika status di ['off', ' rendah']: GPIO.output(pinNum, GPIO. HIGH) return statement('Menghidupkan {} Lampu Ruang Tamu'.format(status)) if _name_ == '_main_': port = 4000 app.run(host=' 0.0.0.0', port=port)
Simpan dan tutup file.
Mulai server labu dengan:
sudo python light_control.py
Biarkan ngrok dan light_control.py berjalan
Langkah 4: Skrip Python untuk Kontrol Kipas
Buka sesi terminal baru dan buat file python baru bernama fan_control.py:
nano fan_control.py
Salin/tempel kode berikut ke dalam file baru:
dari labu impor Flask
dari flask_ask import Ask, statement, convert_errors import RPi. GPIO as GPIO import logging import os GPIO.setmode(GPIO. BCM) app = Flask(_name_) ask = Ask(app, '/') logging.getLogger("flask_ask").setLevel(logging. DEBUG) @ask.intent('FanControlIntent', mapping={'status': 'status'}) def fan_control(status): try: pinNum = 22 kecuali Exception as e: return statement('Pin number tidak valid.') GPIO.setup(pinNum, GPIO. OUT) jika status di ['on', 'high']: GPIO.output(pinNum, GPIO. LOW) jika status di ['off', 'low']: GPIO.output(pinNum, GPIO. HIGH) return statement('Menghidupkan {} Lampu Ruang Tamu'.format(status)) if _name_ == '_main_': port = 4500 app.run(host='0.0.0.0 ', pelabuhan=pelabuhan)
Simpan dan tutup file.
Mulai server labu dengan:
sudo python fan_control.py
Biarkan ngrok, light_control.py, dan fan_control.py berjalan
Langkah 5: Menginstal dan Mengonfigurasi Paket LIRC
Untuk mengontrol TV, Anda harus mengonfigurasi pin pada Raspberry Pi untuk menghasilkan sinyal inframerah (IR) untuk TV spesifik Anda. Buka terminal dan masukkan perintah berikut untuk menginstal paket LIRC yang mengemulasi sinyal inframerah dari banyak kendali jarak jauh.
sudo apt-get install lirc
Selanjutnya, Anda perlu mengaktifkan dan mengkonfigurasi modul kernel lirc_rpi. Untuk melakukannya, buka modul di editor Nano
sudo nano /etc/modules
Tambahkan baris di bawah ini ke file (Pastikan parameter gpio_out_pin menunjuk ke pin yang mengontrol LED IR):
lirc_devlirc_rpi gpio_out_pin=17
Selanjutnya, buka file hardware.conf di Nano seperti sebelumnya dengan sudo:
sudo nano /etc/lirc/hardware.conf
Tambahkan konfigurasi berikut ke file:
LIRCD_ARGS="--uinput"LOAD_MODULES=benar
PENGEMUDI="bawaan"
PERANGKAT="/dev/lirc0"
MODUL="lirc_rpi"
LIRCD_CONF=""
LIRCMD_CONF=""
Sekarang, reboot Raspberry Pi:
sudo reboot
Langkah 6: Skrip Python untuk Kontrol TV
Buka sesi terminal baru dan buat file python baru bernama ir_control.py:
nano ir_control.py
Pergi ke
Temukan remote yang kompatibel dengan TV Anda. Dalam kasus saya, saya memiliki TV Sanyo yang berfungsi dengan file konfigurasi sanyo-tv01. Setelah Anda menemukan file yang mendukung TV Anda, buka dan lihat opsi perintah.
Salin/tempel kode berikut ke file baru dan ganti sanyo-tv01 dengan nama file yang sesuai dengan TV Anda. Pastikan juga bahwa perintah tv didukung oleh file konfigurasi TV Anda; Anda mungkin harus mengubah perintah KEY_POWER, KEY_VIDEO, KEY_VOLUMEUP, KEY_VOLUMEDOWN, dan KEY_MUTE agar berfungsi dengan benar dengan file konfigurasi TV Anda:
from flask import Flaskfrom flask_ask import Ask, statement, convert_errors import RPi. GPIO as GPIO import logging import os GPIO.setmode(GPIO. BCM) app = Flask(_name_) ask = Ask(app, '/') logging.getLogger(" flask_ask").setLevel(logging. DEBUG) @ask.intent('GPIOControlIntent', mapping={'status': 'status'}) #'pin': 'pin'}) def tv_function(status): jika status di ['nyalakan']: os.system("irsend SEND_ONCE sanyo-tv01 KEY_POWER") return statement('Menyalakan TV') status elif di ['matikan']: os.system("irsend SEND_ONCE sanyo-tv01 KEY_POWER") return statement('Mematikan TV') status elif di ['ubah input']: os.system("irsend SEND_ONCE sanyo-tv01 KEY_VIDEO") os.system("irsend SEND_ONCE sanyo-tv01 KEY_VIDEO") return statement('Mengubah input di TV') status elif di ['meningkatkan volume']: os.system("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP") os.system("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP") os.system("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP") os.system("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP") os.system("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP") return statement('Increasing Volume on the TV') status elif in ['decrease volume']: os.system("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEDOWN") os.system("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEDOWN") os.system("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEDOWN") os.system("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEDOWN") os.system("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEDOWN") os.system("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEDOWN") os. ") return statement('Menurunkan Volume di TV') status elif di ['mute']: os.system("irsend SEND_ONCE sanyo-tv01 KEY_MUTE") return statement('Mematikan TV') status elif di ['unmute ']: os.system("irsend SEND_ONCE sanyo-tv01 KEY_MUTE") return statement('Menyalakan TV') else: return statement('Fungsi jarak jauh tidak ditemukan.') if _name_ == '_main_': port = 5000 app.run(host='0.0.0.0', port=port)
Simpan dan tutup file.
Mulai server labu dengan:
sudo python ir_control.py
Biarkan ketiga jendela terminal ngrok, light_control.py, fan_control.py, dan ir_control.py berjalan
Langkah 7: Masuk ke Akun AWS
Pertama, buat atau masuk ke Akun Pengembang AWS Anda dan buka daftar Keterampilan Alexa Anda.
Langkah 8: Pengaturan Keterampilan Alexa TV
Pilih "Tambahkan Keterampilan Baru".
Atur Nama Skill ke 'Trigger TV' dan Nama Invokasi ke kata yang ingin kamu gunakan untuk mengaktifkan skill.
Klik 'Berikutnya' untuk melanjutkan.
Salin/tempel yang berikut ini ke dalam kotak 'Skema Intent':
{ "niat": [{
"slot": [{ "name": "status", "type": "TV_Function" }, { "name": "amount", "type": "AMAZON. NUMBER" }], "intent": "GPIOControlIntent " }] }
Selanjutnya, klik 'Tambahkan Jenis Slot'
Masukkan TV_Function di bidang 'Masukkan Jenis'.
Masukkan nilai berikut di bidang 'Masukkan Nilai':
menyalakan
matikan ubah masukan tambah volume turunkan volume bisukan suarakan
Selanjutnya, Copy/paste yang berikut ke dalam kotak 'Sample Utterances':
GPIOControlIntent {status}
GPIOControlIntent {status} menurut {amount}
Klik 'Berikutnya' untuk melanjutkan.
Pilih 'HTTPS' sebagai Service Endpoint Type dan pilih region. Masukkan URL ngrok dari langkah 2 dan klik 'Next'. URL harus seperti:
ed6ea04d.ngrok.io
Klik 'Berikutnya' untuk melanjutkan dan tekan 'Simpan'.
Langkah 9: Nyalakan Pengaturan Keterampilan Alexa
Tutup skill yang terbuka dan pilih "Add a New Skill".
Atur Nama Skill ke 'Lights Control' dan Invocation Name ke kata yang ingin kamu gunakan untuk mengaktifkan skill.
Klik 'Berikutnya' untuk melanjutkan. Salin/tempel yang berikut ini ke dalam kotak 'Skema Intent':
{
"niat": [{ "slot": [{ "name": "status", "type": "LIGHTS_CONTROL" }], "intent": "LightsControlIntent" }] }
Selanjutnya, klik 'Tambahkan Jenis Slot'.
Masukkan "LIGHTS_CONTROL" di bidang 'Masukkan Jenis'.
Masukkan nilai berikut di bidang 'Masukkan Nilai':
pada
mati
Selanjutnya, Copy/paste yang berikut ke dalam kotak 'Sample Utterances':
LightsControlIntent mengubah {status}
Klik 'Berikutnya' untuk melanjutkan. Pilih 'HTTPS' sebagai Service Endpoint Type dan pilih region. Masukkan URL ngrok dari langkah 2 dan klik 'Berikutnya'. URL harus seperti:
ed6ea04d.ngrok.io
Klik 'Berikutnya' untuk melanjutkan dan tekan 'Simpan'.
Langkah 10: Pengaturan Keterampilan Fan Alexa
Tutup skill yang terbuka dan pilih "Add a New Skill".
Atur Nama Keterampilan ke 'Kontrol Kipas' dan Nama Doa ke kata yang ingin Anda gunakan untuk mengaktifkan keterampilan.
Klik 'Berikutnya' untuk melanjutkan.
Salin/tempel yang berikut ini ke dalam kotak 'Skema Intent':
{
"niat": [{ "slot": [{ "name": "status", "type": "FAN_CONTROL" }], "intent": "FANControlIntent" }] }
Selanjutnya, klik 'Tambahkan Jenis Slot'.
Masukkan "FAN_CONTROL" di bidang 'Masukkan Jenis'.
Masukkan nilai berikut di bidang 'Masukkan Nilai':
pada
mati
Selanjutnya, Copy/paste yang berikut ke dalam kotak 'Sample Utterances':
FANControlIntent mengubah {status}
Klik 'Berikutnya' untuk melanjutkan. Pilih 'HTTPS' sebagai Service Endpoint Type dan pilih region. Masukkan URL ngrok dari langkah 2 dan klik 'Berikutnya'. URL harus seperti:
ed6ea04d.ngrok.io
Klik 'Berikutnya' untuk melanjutkan dan tekan 'Simpan'.
Langkah 11: Bangun Sirkuit
Hubungkan sirkuit seperti yang ditunjukkan pada diagram. Saya menggunakan Modul Relai JBtek 8 Saluran DC 5V untuk menghubungkan ke saluran dan ground AC 120v rumah saya.
Langkah 12: Perintah Alexa
Sekarang perintah berikut dapat diucapkan ke Alexa untuk mengontrol ruang tamu Anda.
Direkomendasikan:
Kontrol Tirai Dengan ESP8266, Integrasi Google Home dan Openhab dan Kontrol Web: 5 Langkah (dengan Gambar)
Kontrol Tirai Dengan ESP8266, Integrasi Google Home dan Openhab dan Kontrol Web: Dalam Instruksi ini saya menunjukkan kepada Anda bagaimana saya menambahkan otomatisasi ke tirai saya. Saya ingin dapat menambah dan menghapus otomatisasi itu, jadi semua instalasi adalah clip on. Bagian utama adalah: Motor stepper Driver stepper dikendalikan bij ESP-01 Gear dan pemasangan
Ruang Tamu untuk Film Dengan Shelly: 4 Langkah
Ruang Tamu untuk Film Dengan Shelly: Ringkasan Eksekutif ProyekCara membuat otomatisasi yang sangat sederhana menggunakan rutinitas rumah google untuk membuat ruang tamu kamar saya nyaman untuk menonton film
Ruang Tamu Kapten Lee De Martian: 6 Langkah
Ruang Tamu Kapten Lee De Martian: Kapten Lee est un outil libre de droits pour créer des jeux vidéos dan propos de donjonsListe des matériauxFeuillesFeutrescrayons Liste des outils OrdinateursScannersSitus internet: Captainlee.org
8 Kontrol Relay Dengan NodeMCU dan Penerima IR Menggunakan WiFi dan IR Remote dan Aplikasi Android: 5 Langkah (dengan Gambar)
8 Kontrol Relay Dengan NodeMCU dan Penerima IR Menggunakan WiFi dan IR Remote dan Aplikasi Android: Mengontrol 8 sakelar relai menggunakan nodemcu dan penerima ir melalui wifi dan ir remote dan aplikasi android.Remote ir bekerja terlepas dari koneksi wifi.INI VERSI TERBARU KLIK DI SINI
LAMPU BANJIR LED DI RUANG TAMU SAYA !!!: 6 Langkah
LED FLOOD LIGHT DI RUANG TAMU SAYA!!!: 18 LED Light Bulb untuk "tambahan" kecerahan