Агуулгын хүснэгт:

Google Home хяналттай LED: 8 алхам
Google Home хяналттай LED: 8 алхам

Видео: Google Home хяналттай LED: 8 алхам

Видео: Google Home хяналттай LED: 8 алхам
Видео: РАЗДАЕТ WIFI СЛЕДИТ ЗА ЧЕЛОВЕКОМ 4G камера видеонаблюдения 2024, Арваннэгдүгээр
Anonim
Google гэрийн хяналттай LED
Google гэрийн хяналттай LED
Google гэрийн хяналттай LED
Google гэрийн хяналттай LED

Сүүлийн үед гар дээрээ чөлөөт цагаа их өнгөрөөсөн болохоор олон төсөл дээр ажиллаж байна.

Энэхүү төсөл нь Raspberry Pi ашиглан Google Home -ээр дамжуулан RGB LED -ийг удирдах боломжийг танд олгоно. Одоо төслийн 3 хэсэг байгаа бөгөөд Raspberry Pi -ийг тохируулах, Google Home -ийг IFTTT ашиглан тусгай командыг тохируулах, дараа нь гэрлийн хэлхээг бий болгох. Би тойрог замыг өөрөө хийсэн, гэхдээ та Адафрутоос хэрэгтэй зүйлийг хийдэг зүйлийг авах боломжтой гэдэгт би итгэлтэй байна.

Raspberry Pi хэсгийн материал

  • Raspberry Pi - ямар ч байсан ажиллах болно, гэхдээ би тэг ашиглаж байна
  • Wireless Dongle - хэрэв Pi нь Wifi -д суулгаагүй бол
  • Google Нүүр хуудас - Хэрэв та утсан дээрээ Google Туслахтай бол заавал биш

Цахилгаан хэлхээний хэсгүүдэд зориулсан материалууд- Энэ нь танд саад болж болохгүй … Энэ бол маш энгийн зүйл

  • Protoboard
  • Утас
  • LED зурвас
  • 12V цахилгаан хангамж - 2 ампераас дээш байгаа бүх зүйл зүгээр байх ёстой
  • DC Barrel Jack - Таны цахилгаан хангамжийн хэмжээтэй ижил хэмжээтэй
  • NPN BJT Power Transistors (x3) - Би TIP31C ашиглаж байна
  • Эрэгтэй, эмэгтэй зүү толгой - Нэмэлт, гэхдээ маш их зөвлөж байна

Алхам 1: Pi -д зориулсан Express татаж авах

Pi -д зориулсан Express татаж авах
Pi -д зориулсан Express татаж авах

Би Pi -ийг тохируулах талаар маш дэлгэрэнгүй мэдээлэл өгөхгүй байна, учир нь тэнд тохируулах олон заавар байдаг.

Миний хийхгүй байхын тулд танд юу хэрэгтэй байна …

  • Хамгийн сүүлийн үеийн Raspbian хэлтэй Raspberry Pi анивчдаг
  • Сүлжээний картыг тохируулаарай, ингэснээр та Pi -ээс интернетэд нэвтрэх боломжтой болно
  • Raspberry Pi дээр статик IP тохируулна уу

Энд хөгжилтэй байдал эхэлж байна! Бид nodeJS, npm, express, express-generator суулгах хэрэгтэй.

sudo apt-get update

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 вэб апп

npm суулгах

npm суулгах нь экспрессийн бүх хамаарлыг суулгаж байгаа тул хэсэг хугацаа шаардагдана.

SetColor.py -ийг webApp хавтсанд буулгана уу. Энэ файл нь үндсэн өнгөний хувьд зарим урьдчилсан тохируулгатай байдаг. Та хүссэнээрээ нэмж болно. Хүрээ нь 0 -ээс 255 хүртэл, 255 нь бүрэн өнгөтэй байна. Хэзээ нэгэн цагт би гэрлийг бүдгэрүүлэх чадварыг нэмж өгөх болно, гэхдээ одоогоор тэдгээр нь бүрэн гэрэл гэгээтэй байна.

Маршрут руу шилжих

cd маршрутууд

Одоо index.js файлыг хавсаргасан файлаар солино уу. Энэ нь POST командыг хүлээн авахын тулд зарим мөрүүдийг нэмж оруулах бөгөөд үүнийг Google Home илгээх болно. Тэр POST -аас бид өнгийг сонгож, гэрлийг тохируулахын тулд setColor python скриптийг ажиллуулахыг Pi -д хэлэх болно.

Хамгийн сүүлд хийх зүйл бол webApp фолдер руу буцах явдал юм.

cd ~/piWebpage/webApp

Дуртай редактороо ашиглан доорх кодыг webApp.js руу оруулаад хадгална уу. "Module.exports = app;" -аас өмнө хаана ч байсан зүгээр байна.

// LED тоног төхөөрөмжийн драйверийг тохируулах {exec} = шаарддаг ('child_process'); exec ('sudo pigpiod', (err, stdout, stderr) => {if (err) {console.log ('LED драйверийг ачаалахад алдаа гарсан'); буцах;} else console.log ('LED драйвер амжилттай ачаалагдсан'); });

Сэтгэгдэлд дурдсанаар pigpiod бол LED өнгийг тохируулахад ашигладаг ХОУХД -ийн дохионы тоног төхөөрөмжийн драйвер юм. Энэ нь Raspbian дээр аль хэдийн суулгасан гэж би бодож байна, гэхдээ үгүй бол …

sudo apt-get pigpiod суулгах

Одоо жинхэнэ сорилтын төлөө! Серверийг эхлүүлж байна!

DEBUG = webapp:* npm эхлэх

Алхам 3: IFTTT -ийн тохиргоо (өдөөгч)

IFTTT тохиргоо (өдөөгч)
IFTTT тохиргоо (өдөөгч)
IFTTT тохиргоо (өдөөгч)
IFTTT тохиргоо (өдөөгч)

IFTTT нь маш их зүйлийг хийж чадна, би зарим програмуудыг эргэн тойронд харахыг зөвлөж байна.

Юуны өмнө та данс үүсгэх шаардлагатай болно. Google Home -той холбоотой ижил Google акаунтыг ашиглаарай, эс тэгвээс тэд хамтдаа синхрончлогдохгүй. Дуусч, нэвтэрсний дараа IFTTT хуудасны баруун дээд буланд таны нэр, аватарыг харуулна уу. Дараа нь гарч ирэх жагсаалтаас New Applet дээр дарна уу.

Хэрэв та сонирхож байгаа бол IFTTT гэдэг нь гарч ирэх дэлгэц дээр анзаараагүй бол IF This Then That гэсэн үгийн товчлол юм. Тиймээс бидний хүсч буй зүйл бол Google Assistant бол Webhook бол бидний сонголт юм.

+Үүнийг дарж хайлтын мөрийг ачаална уу. Хайлтанд Google Assistant гэж бичээд хайлтын доор байгаа дүрс дээр дарна уу.

"Trigger Select" хэсэгт "Текст найрлагатай өгүүлбэр хэл" гэсэн 3 дахь сонголтыг сонгоно уу. Одоо энэ нь ижил үйлдлийг гүйцэтгэх 3 командтай байх боломжийг танд олгоно. Та өнгийг нь дурдах хэллэгийг $ болгон нэмнэ үү. Жишээлбэл, хэрэв би байгалийн жамаараа Hey Google, LED LED цэнхэр гэж хэлээрэй (төхөөрөмжид хашгирах нь байгалийн жам шиг), дараа нь Set LED -үүдийг $ хэсэгт бичнэ үү. Тушаалын өөр өөр хувилбартай бүх 3 талбарт үүнийг хий.

Миний хэрэглэж байсан 3 байсан

LED $

$ LED тохируулна уу

$ LED өнгө тохируулна уу

Сүүлчийн талбар бол таны Google Нүүрийг тушаалыг хэлсний дараа хариулахыг хүсч буй талбар юм. Энэ нь таны хүссэн бүх зүйл байж болно, гэхдээ би Setting color -ийг $ болгон ашигласан. Доллар гэдэг нь тэр өнгийг буцааж давтана гэсэн үг юм.

Trigger үүсгэх дээр дарна уу

Алхам 4: IFTTT тохиргоо (Үйлдэл)

IFTTT тохиргоо (Үйлдэл)
IFTTT тохиргоо (Үйлдэл)
IFTTT тохиргоо (Үйлдэл)
IFTTT тохиргоо (Үйлдэл)

Триггер үүсгэх товчийг дарсны дараа та энэ дүрсийг буцааж ачаалах болно, гэхдээ үүнийг Google туслах логогоор сольсон болно. +Үүнийг дарж үргэлжлүүлнэ үү

Өмнөхтэй ижил зүйл таныг хайлтын талбарт авчирдаг. Webhooks гэж бичээд хайлтын талбарын доор байрлах webhook дүрс дээр дарна уу. Webhooks -д зориулсан үйлдлийг сонгох хэсэгт ганцхан сонголт байгаа тул Вэб хүсэлт гаргах дээр дарна уу.

Энд бүх зүйл жаахан төвөгтэй болж байна. Google танай гэрт өөр компьютер биш тул танд гадаад IP хаяг хэрэгтэй болно. Энэ нь порт дамжуулах шаардлагатай боловч бид үүнийг дараа нь авч үзэх болно. Гадаад IP хаягаа авахын тулд https://canyouseeme.org/ руу орно уу.

URL талбарт https://xxx.xxx.xxx.xxx:3000/{{TextField}} гэж бичнэ үү (x нь таны гадаад IP хаяг байх болно). Хэрэв та сонирхож байгаа бол TextField нь командыг сонгохдоо таны сонгосон өнгөтэй байх болно. 3000 -ийг ашиглах болсон шалтгаан нь Raspberry Pi Express сервер ажиллаж байгаа порт юм. (Та код дээрх портыг өөрчилж болно, гэхдээ бид Express -ийн анхдагч тохиргоог ашиглаж байна)

Аргын хувьд POST -ийг сонгоно уу.

Агуулгын төрлийн хувьд текстийг сонгоно уу.

Биеийн хувьд {{TextField}} гэж бичнэ үү

POST тушаал хэрхэн ажилладагийг мэддэг хүмүүс хүсэлтийн биеийн шинж чанарыг задлан шинжилбэл өнгө авах болно гэж та бодож байна. Зарим шалтгааны улмаас хүсэлтийн үндсэн хэсэгт юу ч оруулаагүй тул би өнгөний URL хаягийг задлан шинжилж байна. Энэ нь index.js чиглэлийн миний кодыг хялбарчлах болно. Гэхдээ би ухарч байна.

Эцэст нь Үйлдэл үүсгэх дээр дарж дараагийн хуудсан дээр Finish дээр дарна уу. (Би мэдэгдлийг унтраасан, гэхдээ энэ бол давуу тал)

Алхам 5: Порт дамжуулах

Порт дамжуулах
Порт дамжуулах
Порт дамжуулах
Порт дамжуулах

Энд бүх чиглүүлэгчид өөр өөр байдаг тул бүх зүйлийг тайлбарлахад хэцүү байдаг.

Одоо бид Google -ийг 3000 порт ашиглан манай гэрт тушаал илгээж байгаа боловч энэ нь LAN дээр ямар төхөөрөмж рүү очих ёстойгоо мэдэхгүй байна. Үүнийг засахын тулд бид 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: Одоогоор хийсэн ажлаа шалгаж байна

Одоогоор хийсэн ажлаа шалгаж байна
Одоогоор хийсэн ажлаа шалгаж байна
Одоогоор хийсэн ажлаа шалгаж байна
Одоогоор хийсэн ажлаа шалгаж байна

Одоо … таны хүлээж байсан тэр мөчид … Цэнхэр LED гэх мэт тушаалыг Google -д хэлээрэй (хэрэв та миний жишээг дагаж байсан бол).

Бүх зүйл зөв хийгдсэн гэж үзвэл та зураг дээрх үр дүнг харах болно. Бидэнд одоогоор хэлхээ байхгүй байгаа тул дэлгэцэн дээрх текстийг л харах болно. Google -ээс боловсруулж, Pi дээр гарч ирэхээс өмнө ихэвчлэн хоёр эсвэл хоёр удаа саатал гардаг.

(Хэрэв энэ нь зурагтай адилхан гарсан бол дараагийн алхам руу орно уу)

Хэрэв энэ нь ажиллахгүй бол хэд хэдэн зүйлийг анхаарч үзэх хэрэгтэй.

Зураг дээр ингэж бичсэн мөр байна

POST /өнгө /цэнхэр 200 250.458 ms - 2

200 бол чухал хэсэг юм. Хэрэв та 200 -г харахгүй байгаа бол POST тааруу байсан нь таны сервер өгөгдлөө яахаа мэдэхгүй байсан гэсэн үг юм. 2 -р алхам руу буцаж очоод index.js файлыг шалгана уу.

Мөн зураг дээр

stdout: цэнхэр

stderr:

Энэ бол LED ажиллуулдаг python файлын гаралт юм. Хэрэв та тэнд алдаа олж харвал 2 -р алхам дээр драйвер суулгаагүй байж магадгүй юм.

Эцэст нь, хэрэв юу ч харагдахгүй байсан бол … таны IFTTT зөв тохируулагдаагүй эсвэл сервертэй холбогдоогүй байж магадгүй юм. IFTTT хуудас руу буцаж очоод дээд талын мөрөнд Activity дээр дарна уу. Тэнд та апп -аа ажиллуулах тоолонд харах боломжтой бөгөөд хэрэв алдаа гарсан бол энэ нь юу болохыг харж болно. Би Pi серверийг унтраасан Google командыг хийж, зурган дээрх алдааг олж мэдэв.

Алхам 7: Цахилгаан хэлхээг бий болгох

Цахилгаан хэлхээг бий болгох
Цахилгаан хэлхээг бий болгох
Цахилгаан хэлхээг бий болгох
Цахилгаан хэлхээг бий болгох
Цахилгаан хэлхээг бий болгох
Цахилгаан хэлхээг бий болгох

Бид яагаад үүнийг хийх ёстой болсон шалтгаан нь Raspberry Pi хангалттай хүч чадалгүй байгаатай холбоотой юм. Тиймээс шийдэл нь … ИЛҮҮ ХҮЧ (Тэйлор багажны хүн холоос ярвайна). AKA өөр цахилгаан хангамж (12V 2A)

Хэлхээний хэсгийн материал

  • Protoboard
  • Утас
  • RGB LED зурвас
  • 12V цахилгаан хангамж - 2 ампераас дээш байгаа бүх зүйл зүгээр байх ёстой
  • DC Barrel Jack - Таны цахилгаан хангамжийн хэмжээтэй ижил хэмжээтэй
  • NPN BJT Power Transistors (x3) - Би TIP31C ашиглаж байна
  • Эрэгтэй, эмэгтэй зүү толгой

Pi Zero -ийн GPIO интервэйсээс миний хулгайлсан зургийг ашиглан GPIO17, GPIO18, GPIO 27 нь GND -тэй зэрэгцэн оршиж байгааг харж болно. Бид 4 зүү бүхий квадратыг ашиглах болно (Зүү 11, 12, 13, 14).

Нэгдүгээрт, би зураг дээр үзүүлсэн шиг эрэгтэй толгойнуудыг LED туузан дээр гагнахыг зөвлөж байна (миний хамгийн сайн ажил биш). Энэ нь танд шаардлагатай бол амархан салгах боломжийг олгодог. Би эмэгтэй туузыг LED туузыг протобоард руугаа, эрэгтэй толгойноос Raspberry Pi хүртэл холбосон. (Эрчим хүч/дохионы эх үүсвэрт эмэгтэй холболтыг үргэлж ашиглаарай). Над шиг бүх Пи -ийн тээглүүрийг бие биенийхээ дэргэд зөөх шаардлагагүй … Би зүгээр л цэвэрхэн харагдуулахыг хүссэн ч энэ бол маш их ажил байсан.

Хэлхээний тайлбар

Транзисторыг сайн мэддэггүй хүмүүсийн хувьд транзистор нь үндсэндээ дижитал унтраалга юм. Pi -ийн GPIO тээглүүр нь гурван унтраалгыг (улаан, ногоон, цэнхэр) идэвхжүүлдэг. Хэлхээ диаграм дахь RED -ийг тусгайлан авч үзвэл GPIO_17 асаалттай үед унтраалга нь улаан гэрлийг асаахад RED -ийг GND -тэй холбож "хаадаг". GPIO_17 унтрах үед унтраалга нээгдэж, гэрэл унтардаг.

Үндсэн - GPIO

Цуглуулагч - Өнгө (УЛААН, НОГООН, ХӨХ)

Ялгаруулагч - Газар (Цахилгаан хангамж ба Пи хоёулангийнх нь)

Пи -ийн газардуулгыг тэжээлийн эх үүсвэртэй холбосон эсэхийг шалгаарай. Гэрэл ассан хэвээр байх боловч газар холбогдох хүртэл маш бүдэг харагдана.

Миний протокол самбар дээр 4 -р транзистортой төхөөрөмж байна. Энэ нь 12V -ийг 5V болгон хөрвүүлэхэд ашигладаг L7805CV бөгөөд би ижил хэлхээнд Pi -г тэжээх боломжтой болсон. Энэ нь ажилласан боловч халаалтаа үргэлжлүүлсэн тул би холболтыг нь салгасан.

Алхам 8: Үүнийг туршиж үзээрэй

Хэлхээг дуусгасны дараа ямар нэгэн холболт хийхээсээ өмнө Pi -гээ дахин эхлүүлнэ үү. Учир нь зүү нь серверийн тестээс идэвхтэй хэвээр байгаа байх. Эсвэл та сервер болон pigpiod үйлчилгээг алж болно.

LED болон холбогчийг протобоардаас Pi руу залгаарай. Цахилгаан тэжээл өгөхөөс өмнө бүх холболтыг дахин шалгаарай. Хэрэв та үүнийг буруу утсаар холбосон бол Pi -ээ хуурч болно (ямар ч дарамт байхгүй).

Шалгах хуудас

  • Утас шалгах
  • Power Pi
  • Цахилгаан хэлхээ
  • Серверийг эхлүүлэх (DEBUG = webapp:* npm ~/piWebpage/webApp лавлахад эхлэх)
  • Тендерээ хийхийг Google -д хэлээрэй!

Баяр хүргэе, та юу ч дэлбэлээгүй, та одоо LED -ээ Google Home -оос удирдах боломжтой боллоо.

Хэрэв танд асуудал байгаа бол сэтгэгдлээ үлдээгээрэй, би тантай эргэн холбогдохын тулд чадах бүхнээ хийх болно!

Зөвлөмж болгож буй: