Мазмұны:
- 1 -қадам: бастапқы орнату
- 2 -қадам: Ngrok орнату
- 3 -қадам: Жарықты ауыстыруды басқаруға арналған Python сценарийі
- 4 -қадам: желдеткіштерді басқаруға арналған Python сценарийі
- 5 -қадам: LIRC бумасын орнату және конфигурациялау
- 6 -қадам: теледидарды басқаруға арналған Python сценарийі
- 7 -қадам: AWS есептік жазбасына кіріңіз
- 8 -қадам: TV Alexa дағдыларын орнату
- 9 -қадам: Alexa дағдыларын орнату
- 10 -қадам: Fan Alexa дағдыларын орнату
- 11 -қадам: Цирутті жасаңыз
- 12 -қадам: Alexa командалары
Бейне: Alexa және Raspberry Pi көмегімен қонақ бөлмені басқару: 12 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:22
Alexa (Amazon Echo or Dot) және Raspberry Pi GPIO көмегімен қонақ бөлмедегі теледидарды, шамдарды және желдеткішті басқарыңыз.
1 -қадам: бастапқы орнату
Мен Raspberry Pi 2 мен https://www.raspberrypi.org/downloads/raspbian/ сайтынан жүктелген Raspbian Jessie бейнесін қолдандым.
Жүйеге кіргеннен кейін қажетті бумалар мен питон кітапханаларын орнату үшін келесі пәрмендерді енгізіңіз:
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
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 -қадам: Жарықты ауыстыруды басқаруға арналған Python сценарийі
Жаңа терминалды сеансты ашып, light_control.py атты жаңа питон файлын жасаңыз:
nano light_control.py
Келесі кодты жаңа файлға көшіру/қою:
колбадан импорттаудан Flaskflask_ask импорттау Сұрау, мәлімдеме, convert_errors RPi. GPIO импорттау журналын GPIO ретінде импорттау GPIO.setmode (GPIO. BCM) app = Flask (_ name_) ask = Сұрау (қолданба, '/') logging.getLogger (« flask_ask «). setLevel (logging. DEBUG) @ask.intent ('LightControlIntent', mapping = {'status': 'status'}) def light_control (status): try: pinNum = 27, e: return операторы жағдайынан басқа 'PIN коды жарамсыз.') GPIO.setup (pinNum, GPIO. OUT), егер күй ['on', 'high'] күйінде болса: GPIO. шығысы (pinNum, GPIO. LOW), егер күй ['off', 'күйінде болса төмен ']: GPIO.output (pinNum, GPIO. HIGH) қайтару туралы мәлімдеме (' қонақ бөлмесінің шамдарын қосу '. пішімі (күйі)) егер _name_ ==' _main_ ': port = 4000 app.run (host =' 0.0.0.0 ', порт = порт)
Файлды сақтаңыз және жабыңыз.
Колбалық серверді келесіден бастаңыз:
sudo python light_control.py
Ngrok және light_control.py екеуін де қосулы күйде қалдырыңыз
4 -қадам: желдеткіштерді басқаруға арналған Python сценарийі
Жаңа терминалды сеансты ашып, fan_control.py деп аталатын жаңа питон файлын жасаңыз:
нано fan_control.py
Келесі кодты жаңа файлға көшіру/қою:
колбадан импорт Колбадан
flask_ask импортынан Сұрау, мәлімдеме, convert_errors RPi. GPIO импорттау GPIO ретінде импорттау журналын импорттау GPIO.setmode (GPIO. BCM) қолданбасы = Flask (_ name_) ask = Ask (қолданба, '/') logging.getLogger («flask_ask»).setLevel (logging. DEBUG) @ask.intent ('FanControlIntent', mapping = {'status': 'status'}) def fan_control (status): try: pinNum = 22 қоспағанда, e: return операторы ('PIN нөмірі) жарамсыз ': GPIO.output (pinNum, GPIO. HIGH) қайтару мәлімдемесі ('қонақ бөлмесінің шамдарын қосу'. Пішімі (күйі)) егер _name_ == '_main_': port = 4500 app.run (хост = '0.0.0.0 ', порт = порт)
Файлды сақтаңыз және жабыңыз.
Колбалық серверді келесіден бастаңыз:
sudo python fan_control.py
Ngrok, light_control.py және fan_control.py екеуін де қосулы күйде қалдырыңыз
5 -қадам: LIRC бумасын орнату және конфигурациялау
Теледидарды басқару үшін Raspberry Pi -дегі түйреуішті арнайы теледидар үшін инфрақызыл (IR) сигналдарды шығару үшін конфигурациялау қажет. Терминалды ашып, көптеген қашықтан басқару пультінің инфрақызыл сигналдарын эмуляциялайтын LIRC пакетін орнату үшін келесі пәрменді енгізіңіз.
sudo apt-get lirc орнатыңыз
Әрі қарай, lirc_rpi ядро модулін қосу және конфигурациялау қажет. Ол үшін Nano редакторында модульдерді ашыңыз
sudo nano /etc /модульдер
Файлға төмендегі жолдарды қосыңыз (gpio_out_pin параметрі ИК жарықдиодты басқаратын түйреуішті көрсететініне көз жеткізіңіз):
17
Содан кейін, Nano ішіндегі hardware.conf файлын sudo көмегімен бұрынғыдай ашыңыз:
sudo nano /etc/lirc/hardware.conf
Файлға келесі конфигурацияны қосыңыз:
LIRCD_ARGS = «-енгізу» LOAD_MODULES = ақиқат
DRIVER = «әдепкі»
ҚҰРЫЛҒЫ = «/dev/lirc0»
МОДУЛДАР = «lirc_rpi»
LIRCD_CONF = «»
LIRCMD_CONF = «»
Енді Raspberry Pi -ді қайта жүктеңіз:
sudo қайта жүктеу
6 -қадам: теледидарды басқаруға арналған Python сценарийі
Жаңа терминалды сеансты ашып, ir_control.py деп аталатын жаңа питон файлын жасаңыз:
nano ir_control.py
Http://lirc-remotes.sourceforge.net/remotes-table сайтына өтіңіз.
Теледидарға сәйкес келетін қашықтан басқару құралын табыңыз. Менің жағдайда sanyo-tv01 конфигурация файлымен жұмыс істейтін Sanyo теледидары бар. Теледидарды қолдайтын файлды тапқаннан кейін оны ашыңыз және пәрмен параметрлерін қарап шығыңыз.
Келесі кодты жаңа файлға көшіріңіз/қойыңыз және sanyo-tv01 орнына теледидармен жұмыс істейтін файл атауын қойыңыз. Сондай -ақ, теледидар пәрмендерінің теледидар конфигурациясы файлы қолдау көрсететініне көз жеткізіңіз; Теледидардың конфигурациялық файлымен дұрыс жұмыс істеу үшін сізге KEY_POWER, KEY_VIDEO, KEY_VOLUMEUP, KEY_VOLUMEDOWN және KEY_MUTE пәрмендерін өзгерту қажет болуы мүмкін:
колбадан импорттаудан Flaskflask_ask импорттау Сұрау, мәлімдеме, convert_errors RPi. GPIO импорттау журналы GPIO ретінде импорттау GPIO.setmode (GPIO. BCM) app = Flask (_ name_) ask = Сұрау (қолданба, '/') 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»-os1sy) «) қайтару мәлімдемесі ('Теледидардағы дыбыс деңгейін төмендету') 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 Developer есептік жазбасын жасаңыз немесе оған кіріңіз және Alexa дағдыларының тізімін ашыңыз.
8 -қадам: TV Alexa дағдыларын орнату
«Жаңа дағды қосу» таңдаңыз.
Біліктілік атауын «Триггерлік теледидар» және шақыру атын шеберлікті белсендіру үшін қолданғыңыз келетін сөзге орнатыңыз.
Жалғастыру үшін 'Келесі' түймесін басыңыз.
Келесі әрекеттерді «Ниет схемасы» өрісіне көшіріңіз/қойыңыз:
{«ниет»: [{
«слоттар»: [{«name»: «status», «type»: «TV_Function»}, {«name»: «amount», «type»: «AMAZON. NUMBER»}], «ниет»: «GPIOControlIntent «}]}
Әрі қарай, «Ұяшық түрін қосу» түймесін басыңыз.
'Type Type' өрісіне TV_Function енгізіңіз.
'Мәндерді енгізу' өрісіне келесі мәндерді енгізіңіз:
қосу
өшіру өзгерту кірісті жоғарылату дыбыс деңгейін төмендету дыбысты өшіру
Әрі қарай, төмендегілерді «Үлгі сөздері» өрісіне көшіріңіз/қойыңыз:
GPIOControlIntent {status}
GPIOControlIntent {status} бойынша {саны}
Жалғастыру үшін 'Келесі' түймесін басыңыз.
Қызметтің соңғы нүктесі түрі ретінде 'HTTPS' таңдаңыз және аймақты таңдаңыз. 2 -қадамдағы ngrok URL мекенжайын енгізіңіз және 'Келесі' түймесін басыңыз. URL келесідей болуы керек:
ed6ea04d.ngrok.io
Жалғастыру үшін 'Келесі' түймесін басыңыз және 'Сақтау' түймесін басыңыз.
9 -қадам: Alexa дағдыларын орнату
Ашық дағдыларды жабыңыз және «Жаңа дағды қосу» таңдаңыз.
Біліктілік атауын «Жарықты басқару» және шақыру атын шеберлікті белсендіру үшін қолданғыңыз келетін сөзге орнатыңыз.
Жалғастыру үшін 'Келесі' түймесін басыңыз. Төмендегілерді «Ниет схемасы» өрісіне көшіру/қою:
{
«ниет»: [{«слоттар»: [{«аты»: «күй», «түрі»: «LIGHTS_CONTROL»}], «ниет»: «LightsControlIntent»}]}
Әрі қарай, «Ұяшық түрін қосу» түймесін басыңыз.
«Түрді енгізу» өрісіне «LIGHTS_CONTROL» енгізіңіз.
'Мәндерді енгізу' өрісіне келесі мәндерді енгізіңіз:
қосулы
өшірулі
Әрі қарай, төмендегілерді «Үлгі сөздері» өрісіне көшіріңіз/қойыңыз:
LightsControlIntent бұрылу {status}
Жалғастыру үшін 'Келесі' түймесін басыңыз. Қызметтің соңғы нүктесі түрі ретінде 'HTTPS' таңдаңыз және аймақты таңдаңыз. 2 -қадамдағы ngrok URL мекенжайын енгізіңіз және «Келесі» түймесін басыңыз. URL келесідей болуы керек:
ed6ea04d.ngrok.io
Жалғастыру үшін 'Келесі' түймесін басыңыз және 'Сақтау' түймесін басыңыз.
10 -қадам: Fan Alexa дағдыларын орнату
Ашық дағдыларды жабыңыз және «Жаңа дағды қосу» таңдаңыз.
Дағды атын «Желдеткішті басқару» және шақыру атын шеберлікті белсендіру үшін қолданғыңыз келетін сөзге орнатыңыз.
Жалғастыру үшін 'Келесі' түймесін басыңыз.
Келесі әрекеттерді «Ниет схемасы» өрісіне көшіріңіз/қойыңыз:
{
«ниет»: [{«слоттар»: [{«аты»: «күй», «түрі»: «FAN_CONTROL»}], «ниет»: «FANControlIntent»}]}
Әрі қарай, «Ұяшық түрін қосу» түймесін басыңыз.
'Type Type' өрісіне «FAN_CONTROL» енгізіңіз.
'Мәндерді енгізу' өрісіне келесі мәндерді енгізіңіз:
қосулы
өшірулі
Әрі қарай, төмендегілерді «Үлгі сөздері» өрісіне көшіріңіз/қойыңыз:
FANControlIntent бұрылу {status}
Жалғастыру үшін 'Келесі' түймесін басыңыз. Қызметтің соңғы нүктесі түрі ретінде 'HTTPS' таңдаңыз және аймақты таңдаңыз. 2 -қадамдағы ngrok URL мекенжайын енгізіңіз және «Келесі» түймесін басыңыз. URL келесідей болуы керек:
ed6ea04d.ngrok.io
Жалғастыру үшін 'Келесі' түймесін басып, 'Сақтау' түймесін басыңыз.
11 -қадам: Цирутті жасаңыз
Схемада көрсетілгендей тізбекті қосыңыз. Мен өз үйіме AC 120v желісі мен жерге қосылу үшін JBtek 8 арналы DC 5V релелік модулін қолдандым.
12 -қадам: Alexa командалары
Енді Alexa -мен қонақ бөлмені басқару үшін келесі командаларды айтуға болады.
Ұсынылған:
Raspberry Pi және LIS3DHTR көмегімен қозғалысты басқару, 3 осьті акселерометр, Python көмегімен: 6 қадам
Raspberry Pi және LIS3DHTR көмегімен қозғалысты басқару, 3 осьті акселерометр, Python көмегімен: Сұлулық бізді қоршап тұрады, бірақ әдетте оны білу үшін біз бақта серуендеуіміз керек. - Біз білетін топ ретінде біз энергияның көп бөлігін компьютерлер мен ұялы телефондардың алдында жұмыс істеуге жұмсаймыз. Сондықтан біз өз денсаулығымызға жиі рұқсат береміз
ESP8266 көмегімен бөлмені басқару - Температура, қозғалыс, перделер мен жарықтандыру: 8 қадам
ESP8266 көмегімен бөлмені басқару | Температура, қозғалыс, перделер мен жарықтандыру: Бұл жоба NodeMCU ESP8266 модуліне негізделген жүйеден тұрады, ол жарық диодты жолақтың жарықтығын және сіздің бөлменің пердесін басқаруға мүмкіндік береді, сонымен қатар ол сіздің бөлмеңіздің қозғалысы туралы ақпаратты жібере алады. және бұлтқа келетін температура
Жарықтықты басқару PWM негізіндегі жарықдиодты басқару түймелері, Raspberry Pi және Scratch көмегімен: 8 қадам (суреттермен)
Жарықтықты басқару PWM негізіндегі жарықдиодты басқару түймелері, Raspberry Pi және Scratch көмегімен: Мен оқушыларға PWM қалай жұмыс жасайтынын түсіндірудің жолын табуға тырыстым, сондықтан мен 2 түймені қолданып жарық диодты жарықтылықты басқаруға тырысамын. - бір түйме жарық диодты жарықтандыруды арттырады, ал екіншісі оны өшіреді. Бағдарламаға
Бөлмені Google Home + Arduino, NodeMCU және Ubidots көмегімен автоматтандырыңыз: 5 қадам
Бөлмені Google Home + Arduino, NodeMCU және Ubidots көмегімен автоматтандырыңыз: Барлығына сәлем, мен сізге жасаған жобамды көрсетемін. Бұл сіздің бөлмеңізді arduino мен nodemcu көмегімен IoT платформасымен бірнеше ай бұрын қолдана бастайтын және автоматтандыратын болды. Мен таңқаларлық деп ойлаймын, осылайша мен өз тәжірибеммен бөлісемін
Ақылды бөлмені басқару: 5 қадам
Ақылды бөлмені басқару: Бұл жобада біз AWS пен MQTT -ті өз қондырғыларында қолдануды үйренуге тырысамыз. Технологиялар әлемінде болсаңыз, ноутбукпен бөлмені басқару қаншалықты керемет болады! Өзіңізді жобаларыңызды аяқтауға асығып жатқаныңызды елестетіп көріңіз