Мазмуну:
- 1 -кадам: Алгачкы орнотуу
- 2 -кадам: Ngrok орнотуу
- 3 -кадам: Light Switch Control үчүн Python Script
- 4 -кадам: Күйөрмандарды башкаруу үчүн Python Script
- 5 -кадам: LIRC топтомун орнотуу жана конфигурациялоо
- 6 -кадам: Телевизорду башкаруу үчүн Python Script
- 7 -кадам: AWS эсебине кириңиз
- 8 -кадам: TV Alexa Skill Setup
- 9 -кадам: Lights Alexa Skill Setup
- 10 -кадам: Fan Alexa Skill Setup
- 11 -кадам: Ciruit куруңуз
- 12 -кадам: Alexa буйруктары
Video: Alexa жана Raspberry Pi менен конок бөлмөсүн башкаруу: 12 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:36
Alexa (Amazon Echo or Dot) жана Raspberry Pi GPIO менен жашоо бөлмөңүздүн сыналгысын, жарыктарын жана күйөрманыңызды башкарыңыз.
1 -кадам: Алгачкы орнотуу
Мен Raspberry Pi 2 жана https://www.raspberrypi.org/downloads/raspbian/ көчүрүлгөн Raspbian Jessie сүрөтүн колдондум
Киргенден кийин, керектүү пакеттерди жана python китепканаларын орнотуу үчүн төмөнкү буйруктарды киргизиңиз:
sudo apt-get update && sudo apt-get upgrade -ysudo apt-get install python2.7-dev python-dev python-pip sudo pip орнотуу Flask колбасы-sudo apt-get install lirc
2 -кадам: Ngrok орнотуу
Https://ngrok.com/download дарегине баш багыңыз жана Linux ARMдин акыркы версиясын үй каталогунун ичинде zip катары ачыңыз:
unzip /home/pi/ngrok-stable-linux-arm.zip
Жаңы терминалды ачыңыз жана төмөнкү буйрукту киргизиңиз:
sudo./ngrok http 4000
Башка жаңы терминалды ачыңыз жана төмөнкү буйрукту киргизиңиз:
sudo./ngrok http 4500
Үчүнчү жаңы терминалды ачыңыз жана төмөнкү буйрукту киргизиңиз:
sudo./ngrok http 5000
3 -кадам: Light Switch Control үчүн Python Script
Жаңы терминалдык сессияны ачыңыз жана light_control.py аттуу жаңы python файлын түзүңүз:
nano light_control.py
Жаңы файлга төмөнкү кодду көчүрүү/чаптоо:
колбадан импорттоо Flaskfromдан flask_ask импорттоо Суроо, билдирүү, convert_errors RPi. GPIO импорттоо GPIO катары импорттоо журналы импорт 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 in Exception in e: return statement ('PIN номер жараксыз.') GPIO.setup (pinNum, GPIO. OUT) эгер статус ['on', 'high']: GPIO.output (pinNum, GPIO. LOW) if status ['off', ' төмөн ']: GPIO.output (pinNum, GPIO. HIGH) кайтаруу билдирүүсү (' Living Room Lights'ти күйгүзүү '. формат (статус)) эгер _name_ ==' _main_ ': port = 4000 app.run (host =' 0.0.0.0 ', порт = порт)
Файлды сактап, жабыңыз.
Колба серверин баштоо:
Sudo python light_control.py
Ngrok жана light_control.py экөөнү тең иштетип коюңуз
4 -кадам: Күйөрмандарды башкаруу үчүн Python Script
Жаңы терминалдык сеансты ачыңыз жана fan_control.py аттуу жаңы python файлын түзүңүз:
nano fan_control.py
Жаңы файлга төмөнкү кодду көчүрүү/чаптоо:
колбадан импорттук
flask_ask импортунан Суроо, билдирүү, convert_errors RPi. GPIO импорттоо GPIO катары импорттоо журналы импорт 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 in Exception in e: return операторунун билдирүүсүндө ('пин номери) жарактуу эмес. ') GPIO.setup (pinNum, GPIO. OUT) эгер статус [' on ',' high ']: GPIO.output (pinNum, GPIO. LOW) if status [' off ',' low ']: GPIO.output (pinNum, GPIO. HIGH) кайтаруу билдирүүсү ('Living Room Lights'ти күйгүзүү'. Формат (статус)) if _name_ == '_main_': port = 4500 app.run (host = '0.0.0.0 ', порт = порт)
Файлды сактап, жабыңыз.
Колба серверин баштоо:
sudo python fan_control.py
Ngrok, light_control.py жана fan_control.py экөөнү тең иштетип коюңуз
5 -кадам: LIRC топтомун орнотуу жана конфигурациялоо
Сыналгыны көзөмөлдөө үчүн, сиз өзүңүздүн белгилүү телевизоруңуз үчүн инфракызыл (IR) сигналдарды жаратуу үчүн Raspberry Pi'деги пинди конфигурациялашыңыз керек. Терминалды ачыңыз жана көптөгөн алыстан башкаруунун инфракызыл сигналдарын эмуляциялаган LIRC пакетин орнотуу үчүн төмөнкү буйрукту киргизиңиз.
sudo apt-get lirc орнотуу
Андан кийин, lirc_rpi ядро модулун иштетип, конфигурациялашыңыз керек. Бул үчүн модулдарды Nano редакторунда ачыңыз
Sudo нано /ж.б. /модулдар
Төмөнкү саптарды файлга кошуңуз (gpio_out_pin параметри IR LEDин көзөмөлдөгөн пинге багытталганын тактаңыз):
lirc_devlirc_rpi gpio_out_pin = 17
Андан кийин, Nanoдо hardware.conf файлын sudo менен мурдагыдай ачыңыз:
sudo nano /etc/lirc/hardware.conf
Файлга төмөнкү конфигурацияны кошуңуз:
LIRCD_ARGS = "-uinput" LOAD_MODULES = true
DRIVER = "демейки"
ТҮЗМӨК = "/dev/lirc0"
MODULES = "lirc_rpi"
LIRCD_CONF = ""
LIRCMD_CONF = ""
Эми, Raspberry Pi'ни өчүрүп күйгүзүңүз:
sudo өчүрүп күйгүзүү
6 -кадам: Телевизорду башкаруу үчүн Python Script
Жаңы терминалдык сеансты ачыңыз жана ir_control.py аттуу жаңы python файлын түзүңүз:
nano ir_control.py
Баруу
Сыналгыңызга шайкеш келген алыстан табыңыз. Менин учурда менде sanyo-tv01 конфигурация файлы менен иштеген Sanyo сыналгы бар. Сыналгыңызды колдогон файлды тапкандан кийин, аны ачып, буйрук параметрлерин карап көрүңүз.
Төмөнкү кодду жаңы файлга көчүрүп/чаптаңыз жана sanyo-tv01ди сыналгыңыз менен иштеген файлдын атына алмаштырыңыз. Ошондой эле, сыналгы конфигурациясы тв буйруктарын колдоорун текшериңиз; Сыналгыңыздын конфигурация файлы менен туура иштөө үчүн KEY_POWER, KEY_VIDEO, KEY_VOLUMEUP, KEY_VOLUMEDOWN жана KEY_MUTE буйруктарын өзгөртүүгө туура келиши мүмкүн:
колбадан импорттоо Flaskfromдан flask_ask импорттоо Суроо, билдирүү, convert_errors RPi. GPIO импорттоо GPIO катары импорттоо журналы импорт 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): if status in ['күйгүзүү']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_POWER") кайтаруу билдирүүсү ('ТВны күйгүзүү') elif абалы ['өчүрүү']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_POWER ") кайтаруу билдирүүсү ('Телевизорду өчүрүү') elif абалы ['өзгөртүү киргизүү']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VIDEO ") os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VIDEO ") кайтуу билдирүү ('Сыналгыдагы киргизүү өзгөртүлүүдө') elif абалы ['үнүн жогорулатуу']: 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 ") кайтаруу билдирүүсү ('Сыналгынын үнүн жогорулатуу') elif абалы ['көлөмүн азайтуу']: 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.sy_ ") кайтаруу билдирүүсү (" Телевизордун үнүн азайтуу ')) elif абалы [' үнсүз ']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_MUTE") кайтаруу билдирүүсү (' Телдин үнүн өчүрүү ') elif абалы [' үнүн чыгаруу ']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_MUTE") кайтаруу билдирүүсү (' Сыналгынын үнү чыгарылат ') башка: кайтаруу билдирүүсү (' Алыскы функция табылган жок. ') эгер _name_ ==' _main_ ': порт = 5000 колдонмо.run (хост = '0.0.0.0', порт = порт)
Файлды сактап, жабыңыз.
Колба серверин баштоо:
sudo python ir_control.py
Үч ngrok терминал терезелерин, light_control.py, fan_control.py жана ir_control.py иштөөдө калтыруу
7 -кадам: AWS эсебине кириңиз
Адегенде AWS Иштеп чыгуучу каттоо эсебиңизди түзүңүз же ага кириңиз жана Alexa Skills тизмесин ачыңыз.
8 -кадам: TV Alexa Skill Setup
"Жаңы көндүм кошуу" дегенди тандаңыз.
Көндүмдүн атын "Триггер ТВ" жана Чакыруу Атын жөндөмдү активдештирүү үчүн колдонгуңуз келген сөзгө (лорго) коюңуз.
Улантуу үчүн 'Кийинкини' басыңыз.
Төмөнкүлөрдү "Максат схемасы" кутусуна көчүрүү/чаптоо:
"slots": [{"name": "status", "type": "TV_Function"}, {"name": "amount", "type": "AMAZON. NUMBER"}], "ниет": "GPIOControlIntent "}]}
Андан кийин, 'Slot түрүн кошууну' чыкылдатыңыз
'Типти киргизиңиз' талаасына TV_Function'ду киргизиңиз.
'Маанилерди киргизиңиз' талаасына төмөнкү баалуулуктарды киргизиңиз:
күйгүзүү
өчүрүү өзгөртүү киргизүүнү көбөйтүү көлөмүн азайтуу көлөмүн үнүн басуу
Кийинки, "Үлгү сөздөр" кутусуна төмөнкүлөрдү көчүрүү/чаптоо:
GPIOControlIntent {status}
GPIOControlIntent {status} {сумма}
Улантуу үчүн 'Кийинкини' басыңыз.
Кызматтын Чекит Типи катары "HTTPS" тандап, аймакты тандаңыз. 2 -кадамдан ngrok URL киргизип, "Кийинки" баскычын басыңыз. URL төмөнкүдөй болушу керек:
ed6ea04d.ngrok.io
Улантуу үчүн "Кийинкини" чыкылдатыңыз жана "Сактоо" баскычын басыңыз.
9 -кадам: Lights Alexa Skill Setup
Ачык жөндөмдү жаап, "Жаңы көндүм кошуу" дегенди тандаңыз.
Көндүмдүн атын "Жарыктарды башкаруу" жана Чакыруунун атын жөндөмдү иштетүү үчүн колдонгуңуз келген сөзгө (лорго) коюңуз.
Улантуу үчүн 'Кийинкини' басыңыз. Төмөнкүлөрдү "Максат схемасы" кутусуна көчүрүү/чаптоо:
{
"ниет": [{"уячалар": [{"аты": "абал", "түрү": "LIGHTS_CONTROL"}], "ниет": "LightsControlIntent"}]}
Андан кийин, 'Slot түрүн кошууну' чыкылдатыңыз.
"Түрүн киргизиңиз" талаасына "LIGHTS_CONTROL" киргизиңиз.
'Маанилерди киргизиңиз' талаасына төмөнкү баалуулуктарды киргизиңиз:
боюнча
өчүк
Кийинки, "Үлгү сөздөр" кутусуна төмөнкүлөрдү көчүрүү/чаптоо:
LightsControlIntent бурулушу {status}
Улантуу үчүн 'Кийинкини' басыңыз. Кызматтын Чекит Түрү катары 'HTTPS' тандап, аймакты тандаңыз. 2 -кадамдагы ngrok URL дарегин киргизип, "Кийинки" баскычын басыңыз. URL төмөнкүдөй болушу керек:
ed6ea04d.ngrok.io
Улантуу үчүн "Кийинкини" чыкылдатыңыз жана "Сактоо" баскычын басыңыз.
10 -кадам: Fan Alexa Skill Setup
Ачык жөндөмдү жаап, "Жаңы көндүм кошуу" дегенди тандаңыз.
Көндүмдүн атын "Күйөрмандарды башкаруу" жана Чакыруунун атын жөндөмдү иштетүү үчүн колдонгуңуз келген сөзгө (лорго) коюңуз.
Улантуу үчүн 'Кийинкини' басыңыз.
Төмөнкүлөрдү "Максат схемасы" кутусуна көчүрүү/чаптоо:
{
"ниет": [{"уячалар": [{"аты": "абал", "түрү": "FAN_CONTROL"}], "ниет": "FANControlIntent"}]}
Андан кийин, 'Slot түрүн кошууну' чыкылдатыңыз.
'Type Type' талаасына "FAN_CONTROL" киргизиңиз.
'Маанилерди киргизиңиз' талаасына төмөнкү баалуулуктарды киргизиңиз:
боюнча
өчүк
Кийинки, "Үлгү сөздөр" кутусуна төмөнкүлөрдү көчүрүү/чаптоо:
FANControlIntent бурулушу {status}
Улантуу үчүн 'Кийинкини' басыңыз. Кызматтын Акыркы чекит түрү катары 'HTTPS' тандап, аймакты тандаңыз. 2 -кадамдагы ngrok URL дарегин киргизип, "Кийинки" баскычын басыңыз. URL төмөнкүдөй болушу керек:
ed6ea04d.ngrok.io
Улантуу үчүн "Кийинкини" чыкылдатыңыз жана "Сактоо" баскычын басыңыз.
11 -кадам: Ciruit куруңуз
Схеманы диаграммада көрсөтүлгөндөй туташтырыңыз. Мен үйлөрүмө AC 120v линиясы менен жерге туташуу үчүн JBtek 8 Channel DC 5V Relay Module колдондум.
12 -кадам: Alexa буйруктары
Эми Alexa менен сиз жашаган бөлмөңүздү көзөмөлдөө үчүн төмөнкү буйруктарды айтсаңыз болот.
Сунушталууда:
Shelly менен кино үчүн конок бөлмөсү: 4 кадам
Shelly менен тасма үчүн жашоо бөлмөсү: Долбоордун аткаруучу кыскача мазмуну Google бөлмөсүн колдонуп, бөлмөмдүн конок бөлмөсүн кино көрүү үчүн ыңгайлуу кылуу үчүн кантип абдан жөнөкөй автоматташтыруу керек
Үн башкаруу чырактары Electronics RGB Led Strips жана башкалар Cortana жана Arduino Home Automation менен: 3 кадам
Voice Control Lights Electronics RGB Led Strips жана башкалар Cortana жана Arduino Home Automation менен: Баарын үнүңүз менен көзөмөлдөө идеясына окшошсузбу? Же жарыкты өчүрүү үчүн төшөктөн турууну жактырбайсызбы? Бирок google home сыяктуу болгон бардык чечимдер өтө кымбатпы? Эми сиз 10 долларга чейин өзүңүз жасай аласыз. Жана андан да жакшы, бул абдан оңой
AT89C2051 менен 8051 программалоого киришүү (Конок ойногон: Arduino): 7 кадам (Сүрөттөр менен)
AT89C2051 менен 8051 программалоого киришүү (Конок ойногон: Arduino): 8051 (MCS-51 деп да аталат) 80-жылдардагы MCU дизайны, бүгүнкү күндө популярдуу бойдон калууда. Заманбап 8051ге шайкеш микроконтроллерлер ар кандай формадагы жана өлчөмдөгү жана көптөгөн перифериялык түзүлүштөр менен бир нече сатуучулардан жеткиликтүү. Бул нускамада
Супер ыңгайлаштырылган үй кинотеатры жана кино/видео оюндар бөлмөсүн жасаңыз: 5 кадам
Өзгөчө үй кинотеатры жана кино/видео оюндар бөлмөсүн жасаңыз: Арзан, арзан, жөнөкөйлөштүрүлүүчү үй кинотеатрынын системасын кантип орнотуу жана пландаштыруу
Instructables IRC чат бөлмөсүн кантип колдонуу керек?: 6 кадам (сүрөттөр менен)
Instructables IRC чат бөлмөсүн кантип колдонсо болот ?: Көпчүлүгүңүз кирген же уккан Meebo Chatroom ишке кирерден мурун Instructables IRC чат бөлмөсүнө ээ болчу. кемчиликтери, жана көпчүлүк орточо компьютер системаларын бузат. IRC ca