Isi kandungan:
- Langkah 1: Persediaan Awal
- Langkah 2: Sediakan Ngrok
- Langkah 3: Skrip Python untuk Kawalan Suis Cahaya
- Langkah 4: Skrip Python untuk Kawalan Kipas
- Langkah 5: Memasang dan Mengkonfigurasi Pakej LIRC
- Langkah 6: Skrip Python untuk Kawalan TV
- Langkah 7: Log masuk ke Akaun AWS
- Langkah 8: Persediaan Kemahiran TV Alexa
- Langkah 9: Persediaan Kemahiran Alexa Lampu
- Langkah 10: Persediaan Kemahiran Kipas Alexa
- Langkah 11: Bina Ciruit
- Langkah 12: Perintah Alexa
Video: Kawal Ruang Tamu Dengan Alexa dan Raspberry Pi: 12 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:06
Kawal TV, lampu, dan Kipas ruang tamu anda dengan Alexa (Amazon Echo atau Dot) dan Raspberry Pi GPIO.
Langkah 1: Persediaan Awal
Saya menggunakan gambar Raspberry Pi 2 dan Raspbian Jessie yang dimuat turun dari
Setelah log masuk, masukkan arahan berikut untuk memasang pakej dan python library 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: Sediakan Ngrok
Lawati https://ngrok.com/download dan dapatkan keluaran ARM Linux terkini sebagai zip dan buka zip di dalam direktori utama:
unzip /home/pi/ngrok-stable-linux-arm.zip
Buka terminal baru dan masukkan arahan berikut:
sudo./ngrok http 4000
Buka terminal baru yang lain dan masukkan arahan berikut:
sudo./ngrok http 4500
Buka terminal baru ketiga dan masukkan arahan berikut:
sudo./ngrok http 5000
Langkah 3: Skrip Python untuk Kawalan Suis Cahaya
Buka sesi terminal baru dan buat fail python baru bernama light_control.py:
nano light_control.py
Salin / tampal kod berikut ke dalam fail baru:
dari 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', pemetaan = {'status': 'status'}) def light_control (status): cuba: pinNum = 27 kecuali Pengecualian sebagai e: pernyataan pengembalian ('Nombor pin tidak sah.') GPIO.setup (pinNum, GPIO. OUT) jika status di ['on', 'high']: GPIO.output (pinNum, GPIO. LOW) jika status di ['off', ' rendah ']: Pernyataan pengembalian GPIO.output (pinNum, GPIO. HIGH) (' Menghidupkan {} Lampu Ruang Tamu '. format (status)) jika _nama_ ==' _main_ ': port = 4000 app.run (host =' 0.0.0.0 ', port = port)
Simpan dan tutup fail.
Mulakan pelayan termos dengan:
sudo python light_control.py
Biarkan ngrok dan light_control.py berjalan
Langkah 4: Skrip Python untuk Kawalan Kipas
Buka sesi terminal baru dan buat fail python baru bernama fan_control.py:
nano fan_control.py
Salin / tampal kod berikut ke dalam fail baru:
dari termos import termos
dari flask_ask import Ask, statement, convert_errors import RPi. GPIO sebagai 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', pemetaan = {'status': 'status'}) def fan_control (status): cuba: pinNum = 22 kecuali Pengecualian sebagai e: penyata pengembalian ('Pin number tidak sah. ') GPIO.setup (pinNum, GPIO. OUT) jika status di [' on ',' high ']: GPIO.output (pinNum, GPIO. LOW) jika status di [' off ',' low ']: Penyataan pengembalian GPIO.output (pinNum, GPIO. HIGH) ('Menghidupkan {} Lampu Ruang Tamu'. Format (status)) jika _nama_ == '_main_': port = 4500 app.run (host = '0.0.0.0 ', port = port)
Simpan dan tutup fail.
Mulakan pelayan termos dengan:
sudo python fan_control.py
Biarkan ngrok, light_control.py, dan fan_control.py berjalan
Langkah 5: Memasang dan Mengkonfigurasi Pakej LIRC
Untuk mengawal TV, anda mesti mengkonfigurasi pin pada Raspberry Pi untuk menghasilkan isyarat inframerah (IR) untuk TV khusus anda. Buka terminal dan masukkan arahan berikut untuk memasang pakej LIRC yang meniru isyarat inframerah banyak kawalan jauh.
sudo apt-get install lirc
Seterusnya, anda perlu mengaktifkan dan mengkonfigurasi modul kernel lirc_rpi. Untuk melakukannya, buka modul di editor Nano
sudo nano / etc / modul
Tambahkan baris di bawah ke fail (Pastikan parameter gpio_out_pin menunjuk ke pin yang mengawal LED IR):
lirc_devlirc_rpi gpio_out_pin = 17
Seterusnya, buka file hardware.conf di Nano seperti sebelumnya dengan sudo:
sudo nano /etc/lirc/hardware.conf
Tambahkan konfigurasi berikut ke fail:
LIRCD_ARGS = "- uinput" LOAD_MODULES = benar
PEMANDU = "lalai"
PERANTI = "/ dev / lirc0"
MODUL = "lirc_rpi"
LIRCD_CONF = ""
LIRCMD_CONF = ""
Sekarang, but semula Raspberry Pi:
rebo sudo
Langkah 6: Skrip Python untuk Kawalan TV
Buka sesi terminal baru dan buat fail python baru bernama ir_control.py:
nano ir_control.py
Pergi ke
Cari alat kawalan jauh yang serasi dengan TV anda. Dalam kes saya, saya mempunyai TV Sanyo yang berfungsi dengan fail konfigurasi sanyo-tv01. Sebaik sahaja anda menjumpai fail yang menyokong TV anda, buka dan lihat pilihan perintah.
Salin / tampal kod berikut ke dalam fail baru dan ganti sanyo-tv01 dengan nama fail yang sesuai dengan TV anda. Pastikan juga arahan tv disokong oleh fail konfigurasi TV anda; Anda mungkin perlu mengubah perintah KEY_POWER, KEY_VIDEO, KEY_VOLUMEUP, KEY_VOLUMEDOWN, dan KEY_MUTE untuk berfungsi dengan betul dengan fail konfigurasi TV anda:
dari 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', pemetaan = {'status': 'status'}) # 'pin': 'pin'}) def tv_function (status): jika status dalam ['hidupkan']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_POWER") pernyataan pengembalian ('Menghidupkan TV') status elif di ['turn off']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_POWER ") penyataan kembali ('Mematikan TV') status elif dalam ['ubah input']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VIDEO ") os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VIDEO ") kembali pernyataan ('Mengubah input di TV') status elif dalam ['volume meningkat']: 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 ") pernyataan pengembalian ('Menambah Volume di TV') status elif dalam ['penurunan 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") sonySYSEND_SOMSEND_NYSEND_NEYSYNYSENDsNYSYSYNEsYNYSEsYNYSYSYNTSNES pernyataan kembali ('Menurunkan Kelantangan di TV') status elif dalam ['bisu']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_MUTE") penyataan penyata ('Menonaktifkan TV') status elif dalam ['nyuarakan ']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_MUTE") penyata pengembalian (' Nyahaktifkan TV ') yang lain: pernyataan kembali (' Fungsi jauh tidak dijumpai. ') jika _name_ ==' _main_ ': port = 5000 aplikasi.run (host = '0.0.0.0', port = port)
Simpan dan tutup fail.
Mulakan pelayan termos dengan:
sudo python ir_control.py
Biarkan ketiga-tiga tetingkap terminal ngrok, light_control.py, fan_control.py, dan ir_control.py berjalan
Langkah 7: Log masuk ke Akaun AWS
Pertama, buat atau log masuk ke Akaun Pembangun AWS anda dan buka senarai Kemahiran Alexa anda.
Langkah 8: Persediaan Kemahiran TV Alexa
Pilih "Tambah Kemahiran Baru".
Tetapkan Nama Kemahiran ke 'Trigger TV' dan Nama Peminta pada perkataan yang anda mahu gunakan untuk mengaktifkan kemahiran.
Klik 'Next' untuk meneruskan.
Salin / tampal yang berikut ke dalam kotak 'Intent Schema':
"slot": [{"name": "status", "type": "TV_Function"}, {"name": "jumlah", "type": "AMAZON. NUMBER"}], "niat": "GPIOControlIntent "}]}
Seterusnya, klik 'Tambah Jenis Slot'
Masukkan TV_Fungsi di medan 'Enter Type'.
Masukkan nilai berikut di medan 'Masukkan Nilai':
hidupkan
matikan perubahan input tambah isipadu turunkan volume bisu sunyi
Seterusnya, Salin / tampal yang berikut ke dalam kotak 'Contoh Contoh':
GPIOControlIntent {status}
GPIOControlIntent {status} sebanyak {jumlah}
Klik 'Next' untuk meneruskan.
Pilih 'HTTPS' sebagai Jenis Titik Akhir Perkhidmatan dan pilih wilayah. Masukkan URL ngrok dari langkah 2 dan klik 'Seterusnya'. URL mestilah seperti:
ed6ea04d.ngrok.io
Klik 'Next' untuk meneruskan dan tekan 'Save'.
Langkah 9: Persediaan Kemahiran Alexa Lampu
Tutup kemahiran terbuka dan pilih "Tambah Kemahiran Baru".
Tetapkan Nama Kemahiran ke 'Kontrol Lampu' dan Nama Peminta pada perkataan yang anda mahu gunakan untuk mengaktifkan kemahiran.
Klik 'Next' untuk meneruskan. Salin / tampal yang berikut ke dalam kotak 'Intent Schema':
{
"intents": [{"slots": [{"name": "status", "type": "LIGHTS_CONTROL"}], "intent": "LightsControlIntent"}]}
Seterusnya, klik 'Tambah Jenis Slot'.
Masukkan "LIGHTS_CONTROL" di medan 'Enter Type'.
Masukkan nilai berikut di medan 'Masukkan Nilai':
pada
mati
Seterusnya, Salin / tampal yang berikut ke dalam kotak 'Contoh Contoh':
LightsControlIntent turn {status}
Klik 'Next' untuk meneruskan. Pilih 'HTTPS' sebagai Jenis Titik Akhir Perkhidmatan dan pilih wilayah. Masukkan URL ngrok dari langkah 2 dan klik 'Next'. URL mestilah seperti:
ed6ea04d.ngrok.io
Klik 'Next' untuk meneruskan dan tekan 'Save'.
Langkah 10: Persediaan Kemahiran Kipas Alexa
Tutup kemahiran terbuka dan pilih "Tambah Kemahiran Baru".
Tetapkan Nama Kemahiran ke 'Kipas Kipas' dan Nama Peminta ke perkataan yang anda mahu gunakan untuk mengaktifkan kemahiran.
Klik 'Next' untuk meneruskan.
Salin / tampal yang berikut ke dalam kotak 'Intent Schema':
{
"intents": [{"slots": [{"name": "status", "type": "FAN_CONTROL"}], "intent": "FANControlIntent"}]}
Seterusnya, klik 'Tambah Jenis Slot'.
Masukkan "FAN_CONTROL" di medan 'Enter Type'.
Masukkan nilai berikut di medan 'Masukkan Nilai':
pada
mati
Seterusnya, Salin / tampal yang berikut ke dalam kotak 'Contoh Contoh':
FANControlIntent turn {status}
Klik 'Next' untuk meneruskan. Pilih 'HTTPS' sebagai Jenis Titik Akhir Perkhidmatan dan pilih wilayah. Masukkan URL ngrok dari langkah 2 dan klik 'Next'. URL mestilah seperti:
ed6ea04d.ngrok.io
Klik 'Next' untuk meneruskan dan tekan 'Save'.
Langkah 11: Bina Ciruit
Sambungkan litar seperti yang ditunjukkan dalam rajah. Saya menggunakan Modul Relay JBtek 8 Saluran DC 5V untuk menyambung ke talian dan tanah AC 120v rumah saya.
Langkah 12: Perintah Alexa
Sekarang arahan berikut dapat diucapkan kepada Alexa untuk mengawal ruang tamu anda.
Disyorkan:
Ruang Tamu untuk Filem Dengan Shelly: 4 Langkah
Ruang Tamu untuk Filem Dengan Shelly: Ringkasan Eksekutif ProjekCara membuat automasi yang sangat mudah menggunakan rutin rumah google untuk menjadikan ruang tamu bilik saya selesa untuk menonton filem
Menanam Lebih Banyak Selada di Kurang Ruang Atau Menanam Selada di Ruang, (Lebih atau kurang) .: 10 Langkah
Tumbuh Lebih Banyak Selada di Kurang Ruang Atau … Tumbuh Selada di Ruang, (Lebih atau Kurang): Ini adalah penyerahan profesional kepada Pertumbuhan Pembuat di Luar Bumi, Peraduan Pembuat, yang dihantar melalui Instructables. Saya tidak dapat bersemangat untuk merancang pengeluaran tanaman ruang dan menghantar Instructable pertama saya. Untuk memulakan, peraduan meminta kami untuk
Kawal Perapian Anda Dengan HomeKit dan Alexa: 7 Langkah
Kawal Perapian Anda Dengan HomeKit dan Alexa: Baru-baru ini saya memasang perapian gas, termasuk alat kawalan jauh. Dan setelah melihat beberapa contoh orang yang menggabungkan perapian mereka ke dalam persediaan kawalan rumah mereka, saya mula mencari yang sama. Perapian saya mempunyai alat kawalan jauh ini
Kawal Balance Maze Dengan Alexa: 6 Langkah (dengan Gambar)
Kawal Labirin Imbangan Dengan Alexa: Kawal labirin keseimbangan dengan Alexa Pindahkan labirin dengan suara. Pertama sekali, sila lihat video. Ini adalah ringkasan operasi. Bercakap dengan Alexa (Raspberry Pi + AVS) KATAKAN: Alexa Mula KemahiranSAY: BARANSU MEIRO WO KIDOU SHITE Instruct SkillSAY: 1 DO, UE N
Kawal Peralatan Rumah Tangga Dari Telefon Pintar Anda Dengan Aplikasi Blynk dan Raspberry Pi: 5 Langkah (dengan Gambar)
Kawal Peralatan Rumah Tangga Dari Telefon Pintar Anda Dengan Aplikasi Blynk dan Raspberry Pi: Dalam projek ini, kami akan belajar bagaimana menggunakan aplikasi Blynk dan Raspberry Pi 3 untuk mengendalikan perkakas rumah (Pembuat kopi, Lampu, tirai tingkap dan banyak lagi … Komponen perkakasan: Kabel Breadboard Lampu Relay Raspberry Pi 3 Aplikasi apl perisian: Blynk A