Съдържание:

Как да контролирате изходите с помощта на Raspberry Pi: 6 стъпки
Как да контролирате изходите с помощта на Raspberry Pi: 6 стъпки

Видео: Как да контролирате изходите с помощта на Raspberry Pi: 6 стъпки

Видео: Как да контролирате изходите с помощта на Raspberry Pi: 6 стъпки
Видео: Turning Your Raspberry Pi Pico to Mitsubishi FX1N PLC 2024, Юли
Anonim
Как да контролирате изходите с помощта на Raspberry Pi
Как да контролирате изходите с помощта на Raspberry Pi
Как да контролирате изходите с помощта на Raspberry Pi
Как да контролирате изходите с помощта на Raspberry Pi
Как да контролирате изходите с помощта на Raspberry Pi
Как да контролирате изходите с помощта на Raspberry Pi

В тази инструкция ще ви демонстрирам как да създадете уеб интерфейс за контрол на търговските обекти във вашия дом с помощта на Raspberry Pi. Избрах да напиша този проект, когато видях конкурса за сензори и тъй като този проект включва използване на сензор за четене на кодове от дистанционното, предоставено с контактите, които купувате, мислех, че този проект ще бъде идеалният избор.

Ще работя, за да поддържам това възможно най -високо ниво и да предоставя код, за да работи всичко това. За всички вас кодирайте маймуни там, не се колебайте да ровите из кода и да ме разгледате внимателно в коментарите! Винаги гледам да се подобрявам. Има доста неща в това, така че ако имате въпроси относно някоя стъпка, моля, оставете коментар, за да мога да актуализирам Instructable с необходимите подробности.

Този проект използва радиочестотни контролирани изходи на 433MHz, съчетани с RF предавател, свързан към вашето малиново пи. Изходите идват с дистанционни, които могат да включват/изключват контакти, но това не е забавно! Вместо това ще използваме уеб сървър, работещ на raspberry pi, който позволява на всеки, свързан към мрежата, да включва или изключва определени контакти. Уеб интерфейсът на този проект е идеален, тъй като всяко свързано с мрежа устройство във вашата мрежа може да се използва като ваше дистанционно.

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

Консумативи

  • Raspberry Pi (използвах RPi 3 модел B+)
  • Предавател и приемник 433MHz (използвах този)
  • 433MHz изходи (използвах това)
  • Женски към женски джъмпери (купих този куп)
  • Компютър или ръчно устройство, което има достъп до интернет

Стъпка 1: Настройте вашия Raspberry Pi

Настройте своя Raspberry Pi
Настройте своя Raspberry Pi

Започнете, като инсталирате най -новата версия на Raspbian на новия си Raspberry Pi. Ако планирате да използвате съществуващ Pi (което можете напълно да направите), всичко, което трябва да направите, е да се уверите, че имате Python 3 на вашия Pi, тъй като това е написаното в целия изходен код, който предоставям. За да направите това, Тип

python3

в командния ред. Ако имате Python 3, трябва да видите терминала на python отворен. Излезте от терминала, като затворите или напишете

изход ()

След като потвърдите това, трябва да инсталирате колба на вашия Pi. Flask ни позволява да създадем нашия уеб сървър. Въведете от командния ред Pi

sudo pip3 инсталира колба

В случай, че нямате инсталиран pip на вашия Pi, ще трябва да въведете

sudo apt-get install python3-pip

Предпочитам да се развивам на моя Raspberry Pi от комфорта на настолния си компютър. Ако и вие предпочитате тази опция, трябва да инсталирате някаква среда за SSH в Pi. PuTTY ще работи, но аз предпочитам да имам графичен потребителски интерфейс (графичен потребителски интерфейс), което прави да изглежда, че сте директно на Pi. За опцията GUI ще искате да инсталирате VNC Viewer на компютъра, върху който планирате да работите. Има и настройки, които ще трябва да коригирате на вашия Pi. Инструкции за промяна на настройките можете да намерите тук.

Стъпка 2: Свързване на хардуера

Свързване на хардуера
Свързване на хардуера

На този етап е време да направите всички физически връзки, които ще трябва да направите, за да се подготвите за настройката на изходния код за този проект. Ще свържете щифтовете на предавателя и приемника към GPIO щифтовете на вашия Pi. Ще искате да се позовавате религиозно на схемата за извеждане на GPIO щифтовете. За да направите това, отворете терминала на вашия Pi и въведете

pinout

По -долу са връзките, които направих. Може да имате различна конфигурация, ако сте закупили различен хардуер за предавател/приемник, отколкото посочих във въведението. Ако решите да изберете различни пинови номера от посочените по -долу, не се страхувайте! Когато изтегляте изходния код, просто променете пин номерата според нуждите във файла RxTx.py.

Приемник (голям чип):

  • GND - Всеки определен щифт за заземяване
  • ДАННИ - Пин 11
  • DER - Не е свързан
  • +5V - Всеки определен щифт +5V
  • ------
  • +5V - Всеки определен щифт +5V
  • GND - Всеки определен щифт за заземяване
  • GND - Не е свързан
  • ANT - Не е свързан

Забележка: Възможно е да свържете антена според нуждите, но открих, че не е необходимо. Този малък чип беше изненадващо чувствителен и вярно открива сигнали на поне 50 фута от мястото, където е седял, и през поне две стени.

Предавател:

  • P - щифт 3.3V
  • DA - Пин 7
  • G - Всеки определен щифт за заземяване
  • AN - не е свързан

Забележка: Отново може да свържете антена към предавателя, ако е необходимо, но установих, че не е необходимо. Обхватът е повече от достатъчен (50+фута).

Стъпка 3: Добавяне на кода

Това е частта, върху която прекарвах по -голямата част от времето си, когато разработвах този проект. Опитвам се да коментирам колкото е възможно повече, но вероятно оставих пропуски, които може да изискват обяснение, ако някой от вас прекарва време, опитвайки се да го разбере. Ако това се случи с вас, моля, оставете коментар!

Езиците, които са включени тук са:

  • Python
  • CSS
  • Javascript
  • HTML
  • JQuery/Ajax

Python се използва във флаш сървъра и в

RxTx.py

файл, който обработва предаването и получаването на кода. CSS се използва за генериране на стила на уеб страницата. Кой иска скучен уебсайт !? Javascript се използва при всяко обработване на събития (натискане на бутон и т.н.). HTML е основният градивен елемент на уеб страницата. И накрая, JQuery/Ajax се използва за комуникация между уеб страницата и бекенда на Python.

Ако всички тези езици звучат плашещо, не се притеснявайте! Знаех само, че Python влиза в този проект, който се оказа езикът, който включваше най -малкото кодиране, отидете на фигура … Достатъчно е да кажем, че отделете време да разчетете кода, ако това решите да направите. Ако не искате, не е нужно!

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

Изходен превключвател-> comm-DataRW.py-keys.py-RxTx.py-> уеб страница-статичен ----- favicon.ico ----- style.css-шаблони ----- index.html ----- schedule.html-- app.py-- data.file

Можете да поставите папката Outlet Switch навсякъде на вашия Pi. Когато сте готови да стартирате уеб сървъра си, отворете терминала на вашия Pi и

cd

(промяна на директория) в директорията на уеб страницата. След това напишете

python3 app.py

в терминала. Ако нямаше грешки, трябва да сте готови!

P. S. Моля, бъдете търпеливи, ако срещнете грешки. Опитах се да ги смачка преди да кача.

Стъпка 4: Пробвайте

Опитай!
Опитай!

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

  • Можете да добавите толкова търговски обекти, колкото искате, като използвате уеб интерфейса.
  • Изтриването е толкова просто, колкото щракнете върху редактиране, изберете магазините, които искате да изтриете, и щракнете върху изтриване.

Горното видео в YouTube демонстрира как всъщност да добавите нов изход към списъка си. За да обобщим какво показва:

  • Първо въведете заглавието на търговския обект в полето Заглавие
  • Щракнете или докоснете извън полето заглавие, за да позволите на програмата да провери дали заглавието вече не съществува. Не можете да имате заглавия със същото име
  • След като бъдат потвърдени, бутоните ON Code и OFF Code са активирани.
  • Натиснете и задръжте бутона ON на предоставеното от вас дистанционно управление и бързо щракнете върху бутона ON Code на интерфейса. Задръжте бутона на дистанционното, докато двоичният ви код запълни съседното поле.
  • Повторете предишната стъпка за кода за изключване.
  • Щракнете върху OK и сега сте готови да превключите този контакт!

Както бе споменато във въведението, проектът не е 100% завършен за мои собствени нужди. Най -големият компонент, който предстои да завърша и внедря, е възможността за планиране. Планирам да позволя на потребителя да изгради график, който би позволил автоматично да се включват и изключват търговските обекти в определено време.

Стъпка 5: Отстраняване на грешки и файла RxTx.py

Отстраняване на грешки и файла RxTx.py
Отстраняване на грешки и файла RxTx.py
Отстраняване на грешки и файла RxTx.py
Отстраняване на грешки и файла RxTx.py
Отстраняване на грешки и файла RxTx.py
Отстраняване на грешки и файла RxTx.py
Отстраняване на грешки и файла RxTx.py
Отстраняване на грешки и файла RxTx.py

Единственото известно ограничение на системата е, че има вероятност от несъвместимост между различните търговски обекти. Кодовите съобщения за включване и изключване са 25 бита за моята система и ако системата има различна дължина на съобщението, тя не е съвместима веднага с този проект. Ако сте изпълнили точно инструкциите и продължавате да имате проблеми с това да работи, следното би било най -добрият начин да отстраните проблема.

  • Уверете се, че имате инсталиран matplotlib на вашия Pi. Можете да направите това, като въведете следното в терминала на Pi:

    • python3

    • импортирайте matplotlib

    • Ако получите грешка, трябва да инсталирате matplotlib.
    • Излезте от черупката на python с помощта

      изход ()

  • За да инсталирате matplotlib, въведете

    sudo pip3 инсталирайте matplotlib

  • в терминала
  • Изтеглете прикачения файл test.py и го поставете до файла RxTx.py на вашия Pi
  • Отворете терминала на python и променете директорията в папката comm.
  • Тип

    python3 test.py

  • Когато пише „** Записът е започнал **“, натиснете и задръжте бутона ON или OFF на дистанционното, докато записът приключи.
  • Програмата ще зареди matplotlib фигура, която изглежда подобна на горната. Увеличете мащаба, докато видите повтарящия се сигнал, както е показано на снимките по -горе.
  • Пребройте общия логически 1 и логически 0 за всяко съобщение, където съобщението е една итерация на повтарящия се сигнал, видян по -горе. Ако общата сума е 25, файлът RxTx.py вероятно няма вина. Ако срещнете нещо различно от 25, не забравяйте да коментирате по-долу и аз ще преработя файла RxTx.py, за да бъде по-отворен (или не се колебайте да опитате ръката си).

Ами ако не виждам повтарящ се сигнал?

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

Стъпка 6: Насладете се

Знаете, че имате възможността да включвате/изключвате контакти от телефона, таблета, компютъра или друго устройство с интернет! Кажете ми какво мислите в коментарите!

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