- Необходими компоненти
- Електрическа схема
- Настройка на колбата в Raspberry Pi за управление на гаражни врати
- Създаване на Python Script за Smart Garage Door Openner
- Създаване на HTML страница за Raspberry Pi Webserver
- {{pins.name}} {% ако pins.state == true%} в момента е отворено
В тази епоха на IoT (Интернет на нещата), където всичко може да се контролира дистанционно с помощта на вашия смартфон, защо да носите ключове със себе си. Има много технологии за поддържане на безжично управление на устройства като RFID, Bluetooth, Wi-Fi, LoRa. Преди това изградихме някои аларми за врати и верига за управление на вратите, за да отваряме и затваряме вратата безжично:
- Брава за врати Arduino RFID
- Автоматично отваряне на врати, използващо Arduino
- Алармена верига за магнитна врата, използваща сензор на Хол
- IoT аларма за защита на вратите, контролирана от Google Assistant
Тук в този урок ще изградим Smart Garage Door Openner с помощта на Raspberry Pi. Тук ще бъде създаден уеб сървър Raspberry Pi за отваряне и затваряне на гаражната врата с помощта на вашия смартфон.
Необходими компоненти
- Raspberry pi дъска с инсталиран Raspbian в нея
- Релеен модул
- Свързване на проводници
Предполага се, че вашият Raspberry Pi вече е флаширан с операционна система и е в състояние да се свърже с интернет. Ако не, следвайте урока Първи стъпки с Raspberry Pi, преди да продължите. Тук използваме инсталираната от Rasbian Jessie Raspberry Pi 3.
Тук външният монитор с помощта на HDMI кабел се използва като дисплей за свързване с Raspberry Pi. Ако нямате монитор, можете да използвате SSH клиент (Putty) или VNC сървър, за да се свържете с Raspberry pi с помощта на лаптоп или компютър. Научете повече за настройването на Raspberry Pi без глава тук.
Електрическа схема
Свържете механизма за отваряне на гаражната врата към изхода на релето. Тук току-що сме свързали светодиод с реле за демонстрационни цели.
Настройка на колбата в Raspberry Pi за управление на гаражни врати
Тук създадохме уеб сървър с помощта на Flask, който предоставя начин за изпращане на командите от уеб страница към Raspberry Pi за управление на робота по мрежата. Flask ни позволява да стартираме нашите python скриптове през уеб страница и можем да изпращаме и получаваме данни от Raspberry Pi до уеб браузър и обратно. Flask е микрорамка за Python. Този инструмент е базиран на Unicode с вграден сървър за разработка и дебъгер, интегрирана поддръжка на модулно тестване, поддръжка на сигурни бисквитки и лесен за използване, тези неща го правят полезен за любителя.
Изпълнете следните команди, за да инсталирате колбата във вашия Raspberry Pi:
sudo apt-get актуализация sudo apt-get инсталиране python-pip python-flask
Сега изпълнете командата pip, за да инсталирате Flask и неговите зависимости:
sudo pip инсталиране на колба
Можете да научите повече за програмирането с помощта на Flask тук, също така да проверите нашите предишни проекти, където сме използвали Flask за управление на робота чрез уеб сървър, да изпратим съобщението от уеб страницата до Raspberry Pi и да изпратим стойност на теглото до Raspberry Pi в Smart Container.
Сега ще напишем питон скрипт за нашия уеб сървър за гаражни врати.
Създаване на Python Script за Smart Garage Door Openner
Този скрипт ще взаимодейства с нашите Raspberry Pi GPIO и настройва уеб сървъра. И така, това е основният скрипт за нашето приложение. Пълният скрипт на Python за отваряне на врати е даден в края, тук обяснихме няколко части от него.
Първо направете папка. Всички останали необходими папки трябва да са само в тази папка. Изпълнете командите по-долу, за да направите папка и файла за създаване на python с име app.py вътре в тази папка.
mkdir garage_door cd garage_door nano app.py
Това ще отвори Nano редактора, където трябва да напишем сценария.
Започнете с включване на важни библиотеки.
импортиране на RPi.GPIO като GPIO от колба импорт колба, render_template, заявка app = колба (__ name__, static_url_path = '/ static')
Сега създайте речник като щифтове, за да съхранявате номера на пина, името и състоянието на щифта. Можете да използвате повече от един щифт според вашите нужди.
щифтове = { 14: {'name': 'Garage Door', 'state': GPIO.LOW} }
След това задайте щифта като изход и първоначално го намалете.
За щифт в щифтове: GPIO.setup (pin, GPIO.OUT) GPIO.output (pin, GPIO.LOW)
Сега направете основна функция за четене на състояние на ПИН и съхраняване на това състояние в променлива.
@ app.route ("/") def main (): за щифт в щифтове: щифтове = GPIO.input (щифт) ..
Трябва да предадем тези данни на нашата html страница, за да можем да контролираме състоянието на бутона за въвеждане.
връщане render_template ('main.html', ** templateData)
Сега направете функция за обработка на заявките от URL адреса с номера на пина и действието в него.
@ app.route ("/
Преобразувайте щифта от URL адреса в цяло число.
changePin = int (changePin)
Ако частта за действие на URL адреса е „отворена“, направете следното.
ако действие == "отворено": GPIO.output (changePin, GPIO.HIGH) ако действие == "затворено": GPIO.output (changePin, GPIO.LOW)
Можете да копирате пълния скрипт от края на този урок и да го запазите, като използвате ctrl + x и след това натиснете enter. Приключихме със скрипта на python. Сега трябва да направим HTML страница, за да взаимодействаме със скрипта на python.
Създаване на HTML страница за Raspberry Pi Webserver
В същата папка garage_door създайте друга папка с име шаблони и вътре в тази папка направете.html файл, като използвате командите по-долу.
mkdir шаблони cd шаблони nano main.html
В нано текстовия редактор напишете html кода. Можете да редактирате част от страницата и я оформете според вашия избор. Току-що използвах css схемата на трета страна, използвайки тагове за връзка. Пълният HTML код е даден по-долу:
Уеб сървър за гаражни врати
{% за щифт в щифтове%}{{pins.name}} {% ако pins.state == true%} в момента е отворено
Тук важната част е да създадете бутон за отваряне и затваряне на вратата и да зададете състояние за бутон за отваряне и затваряне . Бутонът ще изпрати и извлече състоянието GPIO от скрипта на python.
Можете да използвате горния HTML код в редактора и да го запазите. Сега уеб сървърът е готов за стартиране.
Отворете терминала и отворете папката garage_door и изпълнете командата по-долу
sudo python app.py
Отворете браузъра и въведете вашия Raspberry pi IP адрес и натиснете Enter. За да намерите вашия IP адрес, можете да изпълните командата по-долу в терминала.
име на хост -I
Ще видите страница като тази.
Уверете се, че релейният модул е свързан към малинов пи. Натиснете бутона Open, за да включите релето или да отворите гаражната врата. Можете също да видите състоянието на релето. Веднага щом включите релето, текстът на бутона ще бъде променен Затвори, за да изключите релето. Сега, когато щракнете отново върху бутона, релето ще бъде изключено и текстът на бутона ще бъде променен отново на Open .
За да спрете сървъра, натиснете ctrl + c.
Така че просто свържете това реле с някакъв механизъм за отваряне на врати, които са лесно достъпни на пазара, и започнете да контролирате гаражната врата с помощта на смартфон.
А демонстрация видео е дадена по-долу.