Мазмұны:
- 1 -қадам: Pi үшін экспресс жүктеу
- 2 -қадам: Pi серверін орнату
- 3 -қадам: IFTTT орнату (триггер)
- 4 -қадам: IFTTT орнату (әрекет)
- 5 -қадам: Портты қайта жіберу
- 6 -қадам: Сіздің жұмысыңызды әзірге тексеру
- 7 -қадам: Схеманы құру
- 8 -қадам: Тексеріңіз
Бейне: Google үйдегі жарықдиодты шамдар: 8 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:25
Соңғы уақытта қолымда бос уақыт көп болғандықтан мен көптеген жобалармен жұмыс істеймін.
Бұл жоба Rasp LED көмегімен Google Home арқылы RGB жарықдиодты басқаруға мүмкіндік береді. Енді жобаның 3 бөлімі бар, Raspberry Pi орнату, Google Home -ді IFTTT көмегімен реттелетін пәрменмен орнату, содан кейін шамдардың схемасын құру. Мен схеманы өзім жасадым, бірақ мен сізге қажет нәрсені жасайтын Адафруттен бірдеңе алуға болатынына сенімдімін.
Raspberry Pi бөлігіне арналған материалдар
- Raspberry Pi - кез келген жұмыс істейді, бірақ мен нөлді қолданамын
- Wireless Dongle - егер Pi -де Wi -Fi орнатылмаған болса
- Google Home - егер телефонда Google Assistant болса, міндетті емес
Электр тізбегіне арналған материалдар- бұл сізге кедергі жасамаңыз … Бұл өте қарапайым
- Protoboard
- Сым
- Жарықдиодты жолақ
- 12В қуат көзі - 2 амперден жоғары нәрсе жақсы болуы керек
- DC баррель ұясы - қуат көзінің өлшемі
- NPN BJT Power Transistors (x3) - Мен TIP31C қолданамын
-
Әйелдер мен әйелдердің түйіндік тақырыптары - қосымша, бірақ өте ұсынылады
1 -қадам: Pi үшін экспресс жүктеу
Мен Pi орнату туралы толығырақ тоқталмаймын, себебі оларды баптауға арналған көптеген оқулықтар бар.
Мен жасамайтын не істеу керек …
- Raspberry Pi жыпылықтайды
- Желі картасын Интернетке Pi арқылы кіруге болатындай етіп орнатыңыз
- Raspberry Pi -ге статикалық IP орнатыңыз
Міне қызық осында басталады! Бізге nodeJS, npm, express және express-generator орнату керек.
sudo apt-get жаңартуы
sudo apt-get nodejs npm орнатыңыз
Олар орнатылғаннан кейін келесі әрекеттерді орындаңыз
npm экспресс-генераторын орнатыңыз
Express сізге Raspberry Pi үшін қарапайым веб -сервер жасауға мүмкіндік береді. Экспресс-генератор экспресс-сервер үшін файлдарды автоматты түрде жасайды.
Каталогты және CD -ді каталогқа жасаңыз. Мен piWebpage деп атадым. Енді келесі әрекеттерді орындаңыз (суретте де көрсетілген)
mkdir piWebpage
cd piWebpage express --view = ejs webApp
Бұл барлық экспресс файлдары бар webApp деп аталатын қалта жасайды. Егер сіз кейінірек осы веб -беттің көмегімен көбірек жұмыс жасағыңыз келсе және сізге PUG ұнайтын болса, --view = ejs -ті --view = pug деп ауыстырыңыз. Біз веб -бетке қол тигізбейміз, сондықтан бұл қолданба үшін не пайдаланатынымыз маңызды емес.
2 -қадам: Pi серверін орнату
Жаңа WebApp каталогына өтіңіз.
cd webApp
npm орнату
npm орнату біраз уақытты алады, себебі ол экспресс үшін барлық тәуелділікті орнатады.
SetColor.py файлын webApp қалтасына қойыңыз. Бұл файлда негізгі түстерге арналған алдын ала орнатылған параметрлер бар. Қалағаныңызша көбірек қосуға болады. 0 -ден 255 -ке дейінгі диапазон, онда 255 толық түсті. Бір сәтте мен шамдарды өшіру мүмкіндігін қосатын шығармын, бірақ әзірге олар толық жарықтылықта.
Маршруттарға көшіңіз
CD маршруттары
Енді index.js файлын тіркелген файлмен ауыстырыңыз. Бұл POST пәрменін алу үшін кейбір жолдарды қосады, бұл Google Home жібереді. Осы POST -тан түс таңдалады және Pi -ге шамдарды реттеу үшін setColor python сценарийін іске қосуды айтамыз.
Соңғы нәрсе … webApp қалтасына оралыңыз.
cd ~/piWebpage/webApp
Өзіңіздің сүйікті редакторыңызды қолданып, төмендегі кодты webApp.js қойыңыз және сақтаңыз. Кез келген жерде «module.exports = app;» бұрын болғанша жақсы.
// Жарықдиодты жабдықтың драйверін орнату {exec} = қажет ('child_process'); exec ('sudo pigpiod', (err, stdout, stderr) => {if (err) {console.log ('Жарықдиодты драйверді жүктеу кезінде қате'); қайту;} else console.log ('Жарықдиодты драйвер сәтті жүктелді'); });
Пікірде айтылғандай, pigpiod - бұл жарықдиодты түстерді реттеу үшін қолданылатын PWM сигналдарының аппараттық драйвері. Менің ойымша, бұл Raspbian -да орнатылған, бірақ олай болмаса …
sudo apt-get pigpiod орнатыңыз
Енді нағыз тест үшін! Серверді іске қосу!
DEBUG = webapp:* npm басталуы
3 -қадам: IFTTT орнату (триггер)
IFTTT көп нәрсені жасай алады, мен кейбір қосымшаларды қарап шығуды ұсынамын.
Біріншіден, сізге есептік жазба қажет. Google Home -мен байланыстырылған Google есептік жазбасын пайдаланыңыз, әйтпесе олар бірге синхрондалмайды. Аяқтап, кіргеннен кейін, IFTTT бетінің жоғарғы оң жағын басыңыз, онда сіздің атыңыз бен аватарыңыз көрсетіледі. Содан кейін ашылмалы тізімнен Жаңа апплет түймесін басыңыз.
Егер сіз қызық болсаңыз, IFTTT - егер бұл қалқымалы терезеде байқалмаса. Біздің тілегіміз - егер Google Assistant болса, онда Webhook - біздің опция.
Іздеу жолағын жүктейтін +осы түймесін басу арқылы жалғастырыңыз. Іздеуде Google Assistant теріңіз және іздеу астындағы белгішені басыңыз.
Іске қосуды таңдау бөлімінде мәтіндік құрамы бар фразаны айту деп аталатын 3 -ші опцияны таңдаңыз. Енді бұл сізге сол әрекетті орындайтын 3 команданың болуына мүмкіндік береді. Сіз түсі туралы айтатын $ сөз тіркесін қосасыз. Мысалы, егер мен табиғи түрде Hey Google, көк жарық диодтарын орнатамын дейтін болсам (құрылғыға айқайлау сияқты табиғи болса), онда мен Set LED светодиодтарын жазамын. Мұны команданың әр түрлі нұсқалары бар барлық 3 өріс үшін жасаңыз.
Мен қолданған 3 болды
Светодиодтар $
$ Светодиодтарын орнатыңыз
Жарықдиодты түсті $ орнатыңыз
Соңғы өріс - бұл сіздің Google Home сіздің командаңызды айтқаннан кейін жауап беруді қалайсыз. Бұл сіз қалаған нәрсе болуы мүмкін, бірақ мен $ түсінің параметрін қолдандым. $ Ол түсті қайтарады дегенді білдіреді.
Триггер жасау түймешігін басыңыз
4 -қадам: IFTTT орнату (әрекет)
«Триггер жасау» түймесін басқаннан кейін сіз бұл көрініске қайта жүктелесіз, бірақ ол Google Assistant логотипімен ауыстырылды. +Белгісін басу арқылы жалғастырыңыз
Бұрынғыдай, бұл сізді іздеу жолағына әкеледі. Webhooks теріңіз және іздеу жолағының астындағы webhook белгісін басыңыз. Webhooks үшін әрекетті таңдау астында бір ғана опция бар, сондықтан Веб -сұраныс жасау түймешігін басыңыз.
Міне, бұл жерде біраз қиыншылықтар туындайды. Google сіздің үйдегі басқа компьютер емес болғандықтан, сізге сыртқы IP -адрес қажет болады. Бұл портты қайта бағыттауды қажет етеді, бірақ біз оны кейінірек қарастырамыз. Сыртқы IP мекенжайын алу үшін https://canyouseeme.org/ сайтына өтіңіз.
URL өрісіне https://xxx.xxx.xxx.xxx:3000/{{TextField}} теріңіз (х - сіздің сыртқы IP мекенжайыңыз). Егер сізді қызықтырса, TextField командасын таңдаған кезде түске ие болады. 3000 қолдануымыздың себебі - бұл Raspberry Pi Express сервері жұмыс істейтін порт. (Сіз кодты портты өзгерте аласыз, бірақ біз Express үшін әдепкі параметрлерді қолданамыз)
Әдіс үшін POST таңдаңыз.
Мазмұн түрі үшін мәтінді/қарапайымды таңдаңыз.
Дене үшін {{TextField}} теріңіз
POST пәрменінің қалай жұмыс істейтінін білетіндер, егер сіз сұраныстың негізгі қасиетін талдайтын болсаңыз, түс аласыз деп ойлайсыз. Қандай да бір себептермен, сұраудың негізгі өрісіне ешнәрсе енгізілмейді, сондықтан мен URL -ге түс үшін талдау жасаймын. Бұл тез арада түзетіледі деп үміттенемін, себебі бұл index.js маршрутындағы менің кодты жеңілдетеді. Бірақ мен шегінемін.
Соңында, Әрекетті жасау түймесін, содан кейін келесі бетте Аяқтау түймешігін басыңыз. (Мен хабарландыруларды өшірдім, бірақ бұл артықшылық)
5 -қадам: Портты қайта жіберу
Бұл жерде түсіндіру қиын, себебі барлық маршрутизаторлар әр түрлі …
Енді бізде Google үйге 3000 порты арқылы пәрмен жібереді, бірақ ол жергілікті желідегі қандай құрылғыға бару керектігін білмейді. Бұл мәселені шешу үшін біз 3000 портын сіздің Raspberry Pi жергілікті IP мекенжайына жіберуіміз керек.
Маршрутизаторға 10.0.0.1 немесе 192.168.1.1 арқылы кіріңіз (мен оны соңғы цифр 254 болатын жерде де көрдім) және портты қайта бағыттауды табыңыз. Портты бағыттауда, суретке ұқсас, сіз жаңа құрылғыны (IFTTT) атайсыз және портты (3000) Pi -дің IP -адресіне жібересіз (менің жағдайда 10.0.0.11).
Жаңа параметрді сақтаңыз, маршрутизаторды қайта жүктеңіз және Raspberry Pi серверінің әлі де жұмыс істеп тұрғанын тексеріңіз. Егер ол жұмыс істемесе, оны қайтадан іске қосыңыз.
Қолайлы https://canyouseeme.org/ веб -сайтына оралыңыз. Сіздің IP мекенжайыңыздың астында портты тексеруші бар. Портты қайта бағыттау дұрыс деп есептесеңіз, 3000 теріңіз және тексеру портын басыңыз. Ол сәттілікпен оралуы керек.
6 -қадам: Сіздің жұмысыңызды әзірге тексеру
Енді … сіз күткен сәтте … Google -ге жарықдиодты көк сияқты пәрменді айтыңыз (егер сіз менің мысалды ұстанған болсаңыз).
Егер бәрі дұрыс болды деп ойласаңыз, сіз суретте көрсетілген нәтижені аласыз. Бізде әлі схема жоқ, сондықтан сіз тек экрандағы мәтінді көресіз. Әдетте Google -ден өңделіп, Pi -де пайда болғанға дейін екінші немесе 2 кідіріс болады.
(Егер бұл суретке ұқсас болса, келесі қадамға өтіңіз)
Енді ол жұмыс істемесе, бірнеше нәрсені қарау керек …
Суретте сызық бар
POST /color /blue 200 250.458 ms - 2
200 - маңызды бөлігі. Егер сіз 200 -ді көрмесеңіз, онда сіздің серверіңіз деректермен не істеу керектігін білмейтін POST нашар болды. 2 -қадамға оралып, index.js файлын тексеріңіз.
Сонымен қатар суретте
stdout: көк
stderr:
Бұл светодиоды жұмыс істейтін python файлының шығысы. Егер сіз қатені көрсеңіз, драйвер 2 -қадамда орнатылмаған болуы мүмкін.
Ақырында, егер ештеңе көрінбесе … сіздің IFTTT дұрыс орнатылмаған немесе серверге қосылмаған болуы мүмкін. IFTTT бетіне оралыңыз және жоғарғы шарлау жолағында Әрекет түймешігін басыңыз. Онда сіз қолданба іске қосылған сайын көре аласыз, ал егер қате болса, оның не екенін көре аласыз. Мен Google серверін Pi серверімен өшіріп, суреттегі қатені алдым.
7 -қадам: Схеманы құру
Мұны істеуіміздің себебі - Raspberry Pi -дің күші жеткіліксіз … Сондықтан шешім … КӨБІРЕК ҚУАТ (алыстан Тейлор құрбысы Тим). AKA басқа қуат көзі (12V 2A)
Электр тізбегіне арналған материалдар
- Protoboard
- Сым
- RGB жарық диодты жолағы
- 12В қуат көзі - 2 амперден жоғары нәрсе жақсы болуы керек
- DC баррель ұясы - қуат көзінің өлшемі
- NPN BJT Power Transistors (x3) - Мен TIP31C қолданамын
- Әйелдер мен еркектерге арналған түйін тақырыптары
Pi Zero GPIO көмегімен интерветтерден ұрлаған ыңғайлы суретті қолдана отырып, сіз GPIO17, GPIO18 және GPIO 27 бір -бірінің жанында GND бар екенін көре аласыз. Біз 4 түйреуіштен тұратын шаршыны қолданамыз (түйреуіштер 11, 12, 13, 14).
Біріншіден, мен суретте көрсетілгендей жарық диодты жолағына ерлердің үстіңгі жағын дәнекерлеуді ұсынар едім (бұл менің ең жақсы жұмысым емес). Бұл сізге қажет болған жағдайда оңай ажыратуға мүмкіндік береді. Жарық диодты жолақты протобоардқа қосу үшін мен әйелдердің үстіңгі тақталарын Raspberry Pi -ге дейінгі ерлердің үстіңгі тақталарын қолдандым. (Қуат/сигнал көзі үшін әрқашан әйел қосылымдарын қолданыңыз). Мен сияқты барлық Пи түйреуіштерін бір -біріне жылжытудың қажеті жоқ … Мен оның таза болғанын қаладым, бірақ бұл көп жұмыс болды.
Тізбекті түсіндіру
Транзистормен таныс емес адамдар үшін транзисторлар негізінен цифрлық қосқыш болып табылады. Pi -дегі GPIO түйреуіштері үш қосқышты іске қосады (қызыл, жасыл және көк). Электр схемасында ҚЫЗЫЛ -ға арнайы қарайтын болсақ, GPIO_17 қосулы кезде, қызыл шамдар қосылатын RED -ті GND -ге қосатын қосқыш «жабылады». GPIO_17 сөнген кезде қосқыш ашық, сондықтан шамдар сөнеді.
Негізгі - GPIO
Коллекционер - Түстер (ҚЫЗЫЛ, ЖАСЫЛ, КӨК)
Эмиттер - жер (қуат көзі мен Пи үшін)
Пидің жерін қуат көзінің жеріне қосқаныңызға көз жеткізіңіз. Шамдар әлі де жұмыс істейді, бірақ олар жерге қосылмайынша өте күңгірт болып көрінеді.
Менің протоколымда 4 -ші транзисторлы құрылғы бар. Бұл L7805CV, ол 12 В -ты 5 В -қа түрлендіру үшін қолданылады, сондықтан мен Pi -ді сол тізбекте қуаттай аламын. Ол жұмыс істеді, бірақ қыздыруды жалғастырды, сондықтан мен оның қосылымдарын алып тастадым.
8 -қадам: Тексеріңіз
Схема аяқталғаннан кейін, қосылудан бұрын Pi -ді қайта іске қосыңыз. Бұл түйреуіштер серверлік тесттен әлі де белсенді болғандықтан. Немесе сіз сервер мен pigpiod қызметін өлтіре аласыз.
Жарық диодтары мен секіргіштерді протобордан Pi -ге қосыңыз. Қуат бермес бұрын барлық қосылымдарды екі рет тексеріңіз. Егер сіз оны қате сыммен қоссаңыз, сіз Pi -ге қуыруыңыз мүмкін (қысым жоқ).
Бақылау тізімі
- Сымдарды тексеріңіз
- Power Pi
- Қуат тізбегі
- Іске қосу сервері (DEBUG = webapp:* npm ~/piWebpage/webApp каталогында басталады)
- Google -ға ұсынысыңызды орындауын айтыңыз!
ҚҰТТЫҚТАЙМЫЗ, сіз ештеңе жарған жоқсыз, енді сіз Google Home -дан жарық диодты басқара аласыз.
Егер сізде проблемалар болса, пікір қалдырыңыз, мен сізге жауап беру үшін бар күшімді саламын!
Ұсынылған:
YN160 Pro жарықдиодты жарықдиодты шамдар, айнымалы ток шамасы: 8 қадам
YN160 Pro жарықдиодты жарықдиодты шамдар (AC)
4017 IC және RGB жарықдиодты жарықдиодты жарықдиодты қалай жасауға болады: 13 қадам
Жарық диодты машинаны 4017 IC және RGB светодиод арқылы қалай жасауға болады: Сәлем досым, бүгін мен 4017 IC және RGB LED светодиодты қолданып светодиодты іздеу схемасын жасаймын
Жарықдиодты-жарықдиодты-жарықдиодты: 7 қадам (суреттермен)
Жарықдиодты-жарықдиодты/жарықдиодты шамдар: мектептің ең жақсы жобасы геплоидты плексиглаздың көмегімен жүзеге асады, содан кейін ол мейрамхананың мейрамханасынан басталады. , кафе, … де о
Микроскоптарға арналған жарықдиодты жарықдиодты жарықдиодты жарықдиодты тақта!: 6 қадам (суреттермен)
Микроскоптар үшін DIY жарықдиодты жарықдиодты PCB! Мен электрониканы қолдануға арналған екінші микроскопты сатып алдым және сіз
Ағаштан жасалған жарықдиодты жарықдиодты жарықдиодты шамдар: 6 қадам (суреттермен)
Ағаштан жасалған жарықдиодты жарықдиодты жарықдиодты шамдар: Бұл идея бірнеше жерден келді. Мен қолөнер сатылымында светодиодтары бар ағаштан жасалған белгіні көрдім және бұл таңғажайып және қарапайым болып көрінді деп ойладым. Бірнеше аптадан кейін мен Джулиан Илеттің бейнелерін сақина осцилляторларынан таптым. Екеуін біріктіру