Съдържание:

Raspberry Pi RF дистанционно управлявани мрежови контакти (щепсели): 6 стъпки
Raspberry Pi RF дистанционно управлявани мрежови контакти (щепсели): 6 стъпки

Видео: Raspberry Pi RF дистанционно управлявани мрежови контакти (щепсели): 6 стъпки

Видео: Raspberry Pi RF дистанционно управлявани мрежови контакти (щепсели): 6 стъпки
Видео: Dingtian DT-R008 многоканальное умное реле с ethernet и wi-fi - обзор и интеграция в Home Assistant 2024, Юли
Anonim
Raspberry Pi RF дистанционно управлявани мрежови контакти (щепсели)
Raspberry Pi RF дистанционно управлявани мрежови контакти (щепсели)
Raspberry Pi RF дистанционно управлявани мрежови контакти (щепсели)
Raspberry Pi RF дистанционно управлявани мрежови контакти (щепсели)
Raspberry Pi RF дистанционно управлявани мрежови контакти (щепсели)
Raspberry Pi RF дистанционно управлявани мрежови контакти (щепсели)
Raspberry Pi RF дистанционно управлявани мрежови контакти (щепсели)
Raspberry Pi RF дистанционно управлявани мрежови контакти (щепсели)

Контролирайте евтини 433MHz мрежови контакти (контакти на стената) с помощта на Raspberry Pi. Pi може да научи контролните кодове, извеждани от дистанционното управление на гнездата, и да ги използва под контрола на програмата, за да активира всички или всички отдалечени гнезда в цялата къща.

Дизайнът не разчита на външна интернет свързаност (т.е.) „Интернет на нещата“и следователно (IMHO) е много по-сигурен от уеб базираните контролери. Въпреки това опитах да се интегрирам с Google Home, но бързо загубих волята за живот, когато команди понякога отнемаха няколко десетки секунди, за да се изпълнят или изобщо никога не се изпълняват.

Очевидно приложение по време на Коледа е контролирането на светлините на коледното дърво и (ако сте така наклонени) външните светлини на дисплея. Въпреки че това е проста употреба, чрез изграждането на този Instructable ще получите супер гъвкав контролер на гнезда, който може да реагира на сензорни входове и на други устройства във вашата домашна мрежа, като Raspberry Pis, работещ с Linux Motion.

Например, имам набор от кухненски светлини, които се включват, когато камера, работеща с „Motion“, открива движение в кухнята и след това ги изключва след пет минути без активност. Работи наистина добре!

С „Tasker“и „AutoTools SSH“от магазина на Google Play можете да настроите всякакви фантастични дистанционни управления на телефона.

Проектът разчита на евтини 433MHz приемни и предавателни платки, широко достъпни в eBay. Те са съвместими с (поне във Великобритания) 433MHz дистанционни мрежови контакти, продавани с дистанционни управления. Моят проект включва приемник, така че нови набори от команди за дистанционно управление могат да бъдат включени лесно и бързо. Трябва да се отбележи един момент - отдалечените гнезда, налични във Великобритания, изглежда се предлагат в два варианта - тези с идентификатор, програмиран от превключвател на гнездото, и тези, които разчитат на програмиране от дистанционното управление. Този проект е съвместим и с двете, но първите не губят своята идентичност при спиране на електрозахранването и затова са за предпочитане.

Проектът използва стар калъф за рутер - имам няколко от тях и те много удобно имат повечето от необходимите външни конектори, като захранване, Ethernet, USB и антена (и). Това, което използвате, ще зависи от това, което имате на разположение, така че този Instructable вероятно е по-полезен като общо ръководство, а не като стъпка по стъпка набор от инструкции.

Въпреки че не е строго необходимо за този проект, добавих и охлаждащ вентилатор и контролна платка. Без вентилатор Pi може да се затопли доста (около 60 ° C). Подробности могат да бъдат предоставени в по -късна инструкция.

Трябва да отбележа, че не съм програмист. Софтуерът (най -вече) е написан на Python и умните неща се копират от хора, които знаят какво правят. Признал съм източниците, където мога - ако съм пропуснал някой, моля, уведомете ме и ще поправя текста.

Instructable предполага известна способност за запояване и кратко запознаване с Python, Bash и разговор с вашия Pi чрез SSH (въпреки че ще се опитам да направя инструкциите възможно най -изчерпателни). Написано е и на британски английски, така че ако четете от другата страна на езерото, моля, игнорирайте допълнителните букви в думите и странните имена на неща (като „електрически контакти“, които ще знаете като нещо като „стенни контакти“).

Всички коментари, предложени подобрения и употреби и т.н. също са добре дошли!

Стъпка 1: Подготовка на случая

Подготовка на случая
Подготовка на случая
Подготовка на случая
Подготовка на случая
Подготовка на случая
Подготовка на случая

Използвах стар рутер TP-Link TD-W8960N за този проект. Това е хубав размер и след като бях разбрал как да вляза в него, доста лесно се работи.

Също така запазих захранването на рутера 12v @ 1A, което е малко под захранване, но на практика е добре за това приложение.

Отварянето на калъфа е въпрос на премахване на два винта в долната част на кутията и след това с помощта на любопитен инструмент около ръба на кутията, за да се улесни отварянето на скобите. Двата винта са под гумените крачета в задната част на кутията (вижте червените стрелки). Най -трудните клипове за отваряне са тези отпред, но аз имах вяра и те се наведеха към инструмента ми за любопитство.

След като кутията е отворена, развийте двете гайки на съединителите на антената и платката може да се извади.

Тъй като по -късно ще използвате и двете антени, разпаявайте коаксиалните проводници към платката и ги поставете на една страна.

Ако се чувствате смели (както бях аз), можете да премахнете натискащия превключвател, гнездото за постоянен ток и гнездата RJ45 от платката. Най -добрият начин, който съм открил да направя, е да затягам дъската в менгеме и да нагрявам топлинен пистолет, като същевременно ценя с подходящ инструмент за отваряне на тънък корпус или отвертка. Логиката е, че всички съединения за запояване се стопяват едновременно, намалявайки общото топлинно напрежение върху пластмасовия корпус на компонента в сравнение с използването на поялник на всяко кръстовище. Поне това е теорията. На практика има малко късмет! Колко топлина да се приложи е въпрос на преценка, но бъдете внимателни и сгрешете от твърде малко. Ако всичко върви добре, ще завършите с използваемите компоненти, показани на снимката (обаче ще забележите разтопеното копче на превключвателя и леко деформираната лента на гнездото RJ45!).

В противен случай интернет е за да купи вашите битове.

Стъпка 2: Списък на частите

Raspberry Pi - Подозирам, че всеки вкус ще е подходящ, но използвах 3B+

433MHz предавателна платка - потърсете в eBay „433MHz RF предавател с приемник за Arduino Arm Mcu Wireless“или подобен

433MHz приемна платка - също Обикновено £ 1,98 на чифт

LM2596 Buck регулатор - eBay, обикновено £ 1,95. За преобразуване на 12v мощност в 5v за Pi

Light pipe - потърсете в eBay „Оптичен кабел - 0,25 / 0,5 / 0,75 / 1 / 1,5 / 2 / 2,5 / 3 мм Dia - Светлинно ръководство“- Използвах 2 мм тръба, но с 1,5 мм щеше да е по -лесно да работя (платих £ 2,95 за 1 м)

2 -полюсен миниатюрен превключвател (хубаво е, но по избор)

USB тип A 180 ° гнездо за запояване - чрез eBay платих 1,90 паунда за десет

Двуполюсен превключвател (хубаво е да има, но по избор) - получих моя от модемната/рутерната платка

Сокет (и) RJ45 - възстановен от модем/платка на рутера

DC захранващ контакт - чрез eBay (10X DC гнездо за захранване, конектор за женски панел, 5.5 x 2.1mm £ 0.99)

430MHz антени - конвертирайте 2GHz антени на модема/рутера

12v dc 12W захранване (минимум) - в идеалния случай това ще дойде с модема/рутера. Ако не, трябва да се уверите, че гнездото за постоянен ток отгоре съвпада с това, което използвате. Изискването за 12v се определя от предавателя 433MHz

Частите за режима на охлаждащия вентилатор ще бъдат подробно описани в по -късна инструкция.

Стъпка 3: Консумативи и инструменти

Ще ви трябват следните консумативи:

Припой (според изискванията)

Лепило за топене (според изискванията)

Свързващ проводник - (напр.) 22 и 24AWG (според изискванията)

Термосвиваема втулка (според изискванията)

Жертва котка. 5 Ethernet patch кабел

Жертвен USB 2 патч кабел.

Инструменти:

Машини за сваляне на тел

Фрези за тел (за предпочитане фрези за измиване)

Инструмент за награди

Подходяща отвертка за разглобяване на кутията.

Поялник

Пистолет за лепило

Сешоар (за огъване на светлинните тръби и за всякакви импровизирани фризьорски прекъсвания)

433MHz FM комуникационен приемник (по избор - за отстраняване на проблеми с предавателя) - (напр.) AR1000

Стъпка 4: Монтаж

Монтаж
Монтаж
Монтаж
Монтаж
Монтаж
Монтаж
Монтаж
Монтаж

Как ще сглобите Pi и спомагателните дъски зависи от случая, който използвате. Снимките показват какво направих.

Pi се намира приблизително в средата на кутията, което позволява достатъчно място за използване на различните конектори (имайте предвид, че HDMI не се използва, тъй като Pi се комуникира чрез SSH (т.е.) „без глава“.

Прикрепих Pi към основата, използвайки няколко спасени пластмасови крепежни елементи (вижте снимката). Тъй като кутията не е предназначена за преносима употреба, можете да се измъкнете само с две крепежни елементи. Можете лесно да използвате 2,5 мм винтове със стойки или дори горещо лепило (което съм използвал в миналото-просто бъдете сигурни, че не използвате прекалено много и избягвайте компоненти за повърхностен монтаж от долната страна, тъй като неизбежно ще имате за да премахнете дъската по някое време (първи закон на конструкцията - ще трябва да я разглобите)).

Използвах горещо лепило, за да фиксирам различните дъски отстрани на кутията. Прилагат се същите съображения, както по -горе.

След като всичко е на мястото си, можете да свържете нещата.

Блоковата диаграма показва схемата на окабеляване, която използвах. Обърнете внимание, че използвам опционалния превключвател, за да променям захранването между предавателната и приемната платки - вероятно има малък риск да го направя, но не исках да пържа приемника при предаване.

Също така ми хрумна, че превключвателят за натискане можеше да се използва за изящно изключване на Pi (в интернет има няколко дизайна). Не се притесних - в този случай той действа като обикновен превключвател за включване/изключване. Просто трябва да внимавам да изключа Pi чрез SSH, преди да натисна ключа.

Ще забележите светлинните тръби, използвани за насочване на светлината от двата светодиода на Pi и от светодиода за състоянието на захранването към предната част на кутията. Използвах топлина от сешоар за огъване на тръбите (определено НЕ ИСКАТЕ да използвате термопистолет!). Това е много опит и грешка, но в крайна сметка си струва, тъй като можете да видите директно какво сигнализират светодиодите, вместо да разчитате на софтуер и външни светодиоди. Разбира се, твой избор. Рязането на тръбите се извършва с остър чифт резачки за тел (най -добре са фрези за измиване), но можете да използвате и остри ножици. Отново, горещо лепило може да се използва за фиксиране на тръбите на място, но внимавайте да използвате само малко количество - което бързо се охлажда - тъй като лепилото може да изкриви тръбите.

В идеалния случай трябва да промените антените. Обикновено те ще бъдат оразмерени за работа на 2GHz и ще правят много неефективни антени, когато се използват на 433MHz.

За да направите това, първо трябва да премахнете капака на антената, за да изложите антената. Мисля, че имах късмет, тъй като капакът се отдели от всяка антена само с малко количество награди.

Изрежете, където е показано, за да премахнете оригиналната 2GHz антена и да изложите съос. Внимателно влезте във вътрешната сърцевина, като премахнете плитката и я запоявате към ново парче тел, както е показано. Дължината на новия проводник е приблизително 1/4 дължина на вълната от 433MHz (т.е.) дължина = 0,25 * 3E8/433E6 = 17 cm. Долната част може да бъде навита с помощта на малка бормашина или подобна, за да позволи цялата дължина да се побере в капака на антената.

Преди сглобяване проверете дали няма късо съединение между вътрешните и външните контакти на антената.

Модифицирах само антената на предавателя като „глух“приемник, вероятно е изгодно при изучаване на кодовете за дистанционно управление на RF (вижте по -късно).

Връзката с Ethernet се осъществява чрез свързване на жертвена котка. 5 свързващ кабел към контакта RJ45, спасен от модема. Нарежете кабела, за да отговаря на разстоянието между гнездото Pi ethernet и гнездото на корпуса RJ45 и оголете всичките осем проводника. Използвайте тестер за непрекъснатост, за да сте сигурни, че сте свързали щифт 1 на кабела към гнездо 1 и т.н. Тъй като се използва само един от четирите външни гнезда RJ45, маркирайте съответно кабелния контакт, за да избегнете смущаващи грешки по -късно.

По същия начин USB конекторът е свързан с помощта на жертвен USB 2 свързващ кабел, жичен щифт 1 към пин 1 и т.н. USB конекторът на външния свят е горещо залепен на мястото си върху кутията, като се използва отворът в кутията, оставен от контакта на телефонната линия.

Стъпка 5: Бележки на предавателя

Бележки за предавателя
Бележки за предавателя
Бележки за предавателя
Бележки за предавателя
Бележки за предавателя
Бележки за предавателя

Платките за предаване и приемане на 433MHz, които използвах, са повсеместни в интернет и тъй като са толкова евтини, поръчах по два чифта от всеки (за да се даде възможност за експериментални издигания). Открих, че приемниците са надеждни, но предавателят, който използвах, се нуждаеше от модификация, за да работи надеждно.

Схемата на предавателя FS1000A, който купих* е показана на диаграмата. Чрез опити и грешки установих, че 3pF кондензатор се нуждае от инсталиране в позиция C1 SoT (изберете при тест), за да работи нещо. Тъй като имам широколентов приемник, който обхваща 430MHz, беше сравнително лесно да отстраня това. Интересен въпрос е как можете да тествате без приемник …

*Забележка: Купих втора партида предаватели, след като не успях да накарам първите два да работят. Всички те липсваха колекторната бобина. Хммм!

Имах 3pF кондензатор в кутията си за боклуци, но това няма да е така за повечето хора, предполагам и във всеки случай необходимата стойност може да е повече, да речем 7pF. Груба подмяна може да се направи с два бита усукана тел (кабелът с усукана двойка от моя познат има капацитет от около 100pF на крак, за да ви даде указание за дължината), но не се препоръчва, тъй като могат да възникнат други проблеми. Дано да имате късмет и да нямате такъв проблем. Винаги можете да си купите по-скъп (и следователно вероятно) по-добре изработен предавател.

Обърнете внимание също, че честотата на предавателя не е много точна или стабилна, но на практика е била достатъчно добра, за да може надеждно да работи с отдалечените контакти.

Моля, обърнете внимание също, че пропластеният отвор в непосредствена близост до думата „ANT“на предавателя НЕ е антенната връзка - това е тази в ъгъла без маркировка (вижте снимката). Това беше първата ми грешка …

ПИН връзката, услужливо маркирана „ATAD“, всъщност трябва да чете „DATA“, разбира се.

Стъпка 6: Преглед на софтуера

Преглед на софтуера
Преглед на софтуера

Моля, имайте предвид, че не съм програмист. Както бе споменато по -рано, умните неща са код на други хора, но знам достатъчно, за да го прищипвам и адаптирам, за да работи заедно. Това е и първият Instructable, който публикувам с код, така че се извинявам, ако съм го направил погрешно! Ако имате въпроси, имайте предвид това …

Основният софтуер, който използвах, е следният:

  • Raspbian Stretch Lite
  • PiGPIO (фантастична библиотека за шофиране на серво и др.)
  • _433.py код (за кодиране и декодиране на RF контролни кодове) - свързан към уебсайта на PiGPIO.
  • Python3 (идва с Raspbian)

Допълнителен софтуер, който използвам:

  • pyephem (изчислява зори и здрач - полезно за превключване на светлината)
  • Отличните „Tasker“и „AutoTools SSH“за създаване на дистанционно управление на телефона ми с Android - вижте снимката (и двете са налични в магазина на Google Play). [Как да създадете „сцена“на Tasker е извън обхвата на тази инструкция, тъй като има доста стръмна крива на обучение, но аз съм щастлив да обсъдя какво направих]

Моят собствен код (в Python). Груб, но функционален:

  • tx.py - софтуер за аргументи в менюто и/или командния ред, който изпраща съответния код към предавателя на 433MHz.
  • зори -здрач - изчислява зори и здрач на моето местоположение и актуализира потребителския crontab (използва се за светлини на коледно дърво и т.н.)

Горният личен код може да бъде достъпен чрез GitHub:

Функционалността на проекта се осигурява от кода PiGPIO и _433.py. Последният има функция за приемане, която изслушва команди за дистанционно управление от вашето 433MHz RF дистанционно управление и декодира синхронизиращите импулси, произвеждайки изход, който може да се съхранява за по -късно използване от функцията за предаване. Това позволява на системата да научи всяко „нормално“433MHz RF дистанционно управление. По принцип може да се използва и за изучаване на RF дистанционното управление на вашия съсед. Бих препоръчал категорично против това, тъй като съседите рядко виждат смешната страна на произволно звъненето на звънеца на вратите. Не бих.

Настройвам

Тъй като Pi в това приложение се изпълнява „без глава“(т.е.) без монитор или клавиатура, трябва да говорите с него чрез ssh. Налични са много ръководства за това как да настроите Pi без глава, но за да опростя нещата, предполагам, че първо стартирате Pi с монитор и клавиатура. След като стартирате, стартирайте терминала и въведете „sudo raspi-config“. Изберете „5. Опции за взаимодействие “и след това„ P2 SSH “. Активирайте ssh сървъра и затворете raspi-config (което вероятно ще завърши с рестартиране).

Следващите комуникации с Pi могат да бъдат проведени от отдалечен терминал чрез ssh. Имайте предвид, че кодът не изисква фиксиран LAN IP адрес за Pi, но със сигурност помага (и със сигурност е необходим, ако се задълбочите в контрола на Tasker). Отново има много ръководства на линия, които обхващат как да направите това. Моят домашен рутер ми позволява да присвоя фиксиран IP адрес на MAC адреса на Pi, така че го правя по този начин, вместо да редактирам настройката на Pi.

Инсталиране на PiGPIO:

ssh в Pi и въведете следните команди:

sudo apt актуализация

sudo apt install pigpio python-pigpio python3-pigpio

sudo apt install git

git clone

sudo apt инсталирате python3-RPi. GPIO

За да стартирате PiGPIO при зареждане:

crontab -е

добавете следния ред:

Вземете кода на Python за предаване и декодиране на 433MHz RF дистанционни кодове:

wget

разархивирайте _433_py.zip

Преместете разархивирания _433.py в подходяща директория (напр.) ~/Software/apps

Въвеждане (в тази директория)

_433.py

поставя Pi в режим 433 rx, в очакване на демодулирани RF кодове за дистанционно управление на GPIO пин 38.

При свързан 433MHz приемник, когато наблизо се използва дистанционно управление 433MHz, на екрана ще се видят нещо като следните данни:

код = 5330005 бита = 24 (празнина = 12780 t0 = 422 t1 = 1236)

Тези данни се използват във вашата програма Python за регенериране на предаването от дистанционното управление.

За да предадете тези данни във файл за по -късна употреба, изпълнете:

_433.py> ~/software/apps/remotedata.txt

След като получите данните, следващата стъпка е да ги използвате, за да редактирате кода 'tx.py', който можете да копирате от моето хранилище на GitHub. Този код използва данните за генериране на вълнови форми, разбрани от отдалечения (ите) сокет (и), които да се предават от предавателя 433MHz. Надяваме се, че необходимите редакции ще бъдат достатъчно очевидни, а останалото зависи от вас …

Препоръчано: