Съдържание:
- Консумативи
- Стъпка 1: Настройка на Rasbian
- Стъпка 2: Вземете кода и го настройте
- Стъпка 3: Комуникация с Arduino
- Стъпка 4: Окабеляване Switch-it
- Стъпка 5: Стартирайте кода
- Стъпка 6: (ОПЦИОНАЛНО) жилището
Видео: Switch-it, автоматичен контакт с измерване на тока в реално време: 6 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:50
Много харесвам автоматизацията, способността да контролирам кога нещо трябва да се случи. Това ме накара да дойда на тази идея: самостоятелно изработен автоматичен контакт. Може да се използва за планиране, когато светлините трябва да бъдат включени, когато телефоните трябва да се зареждат или когато екранът трябва да се захранва. В допълнение към всичко това имате възможност да видите колко ток преминава през изхода.
Компонентите, необходими за този проект, са:
Консумативи
Преди да започнем, това са нещата, които определено ще трябва да изградите Switch-IT кутия като моята. Тези доставки ще струват около 50 до 100 евро в зависимост от вашия регион и текущите цени.
Хардуер
Електроника
- Малина пи 4
- 16 GB (или повече) Micro SD карта
- Arduino Uno
- 5V-3.3V Ниво превключвател
- 5V релеен модул
- ACS712 20A - текущ модул
- 1838 IR-приемник 37,9 kHz модул
- IR дистанционно (използвам едно Elegoo)
- общ катод RGB
- 3 * 330Ω резистори
- Натисни бутона
- RFID-RC522
- LCD 1602A-1
- Нико стенен контакт
- 10K Ω потметър
- Захранване от 230 до 5V - 7A
Кабели
- USB-B към USB-A кабел
- USB-C захранващ кабел
- Ethernet кабел
Различни
- Мъжко-женски джъмпери
- Мъжко-мъжки джъмпери
- Калай за запояване
- Свиваща се тръба
Части, специфични за калъфа (ОПЦИОНАЛНО)
- 50 * гайки и получер шрифт
- метален калъф 40х40х5 см с капак
- двустранна касета
- 6 * 1 см високи дистанционери
- LED-държач
- Велкро лента
- кабелни водачи
Софтуер
- balenaEtcher:
- PuTTy
- расиан
- Код на Visual Studio
- Arduino IDE
Стъпка 1: Настройка на Rasbian
Първо, ще прехвърлим Rasbian на SD-картата. Ще направим това с помощта на balenaEtcher.
- Отворете balenaEtcher
- Изберете изображението на Rasbian
- Изберете вашата SD-карта
- Натиснете Flash и изчакайте няколко минути, докато премигне
Добавяне на APIPA в зареждащата директория: Ще използваме APIPA адрес за програмиране и конфигуриране на настройките на RPI. Да го направя:
- Осъществява достъп до зареждащата директория на SD-картата
- Отворете „cmdline.txt“
- Добавете „169.254.10.1“в края на документа и го запазете
- Добавете файл, наречен "ssh", в зареждащата директория (НЕ ДАВАЙТЕ НА ТОЗИ ФАЙЛ РАЗШИРЕНИЕ)
- След като направите това, можете да извадите SD картата от вашия компютър.
Достъп до RPI с помощта на PuTTy
Сега можем да включим SD картата в нашия RPI, да свържем RPI към вашия компютър с помощта на Ethernet кабел.
За да се свържем с RPI, ще използваме PuTTy с нашия APIPA адрес.
- Отворете PuTTy
- Попълнете нашия APIPA адрес като име на хост (169.254.10.1)
- Уверете се, че портът е 22 и е избран SSH
- Сега можете да отворите връзката
- Потребителското име по подразбиране е: pi
- С парола по подразбиране: малинка
настройки на raspi-config
Отворете raspi-config, като използвате:
sudo raspi-config
- Променете потребителската парола
- В опциите за локализация изберете вашата часова зона
- Настройте WiFi, като използвате мрежови опции, след това опция Wi-Fi, където трябва да попълните своя SSID и парола.
Инсталирайте Python 3
В този проект използваме Python, затова ще зададем по подразбиране Python3 insteat на Python2, като използваме следните команди
update-alternatives --install/usr/bin/python python /usr/bin/python2.7 1
update-alternatives --install/usr/bin/python python/usr/bin/python3 2
Пакети на Python
Ще ни трябват няколко пакета, за да работи всичко правилно, главно пакетите Flask и един, за да осъществим връзка с нашата база данни. Можем да инсталираме тези пакети, като използваме следните команди:
pip install Flask
pip install Flask_cors pip install Flask_socketio pip install Python-mysql-connecton
База данни
След това ще инсталираме нашата система за управление на бази данни (MariaDB), което ще направим, като използваме:
sudo apt инсталирате mariadb-сървър
Въведете „Y“и Enter, за да продължите. След няколко секунди процесът на инсталиране е завършен и MariaDB е почти готов за употреба.
За да зададете парола на базата данни, използвайте командата:
sudo mysql_secure_installation
След това натиснете Enter, тъй като текущата парола е празна. След това натиснете „Y“, за да зададете парола, сега можете да попълните всяка парола, която искате, не забравяйте да я запомните, защото имаме нужда от нея, за да осъществим правилна връзка между back-and-front-end.
Сега натиснете „Y“3 пъти, за да: премахнете анонимни потребители, да забраните отдалечено влизане в root и да премахнете тестовата база данни. Накрая натиснете отново „Y“, за да презаредите привилегиите.
Сега MariaDB и всички необходими пакети са успешно инсталирани.
Стъпка 2: Вземете кода и го настройте
Сега, когато сме инсталирали всички пакети, можем да вземем кода.
Кодът е достъпен в Github, така че можете да го клонирате, като използвате:
git clone
Това е фронтендът
git clone
Това е бекенда
Инсталиране на самата база данни
За да инсталирате базата данни, отидете на.sql файла, който е в задната папка, като използвате следните команди (уверете се, че сте го задали по свой собствен път.
mysql
създаване на комутатор на база данни Изход от mysql -u root -p switchit <Your_Path_to_Backend_Repo/switchit.sql
Инсталиране на Apache
Сега, когато имаме целия код и настройката на базата данни, можем да инсталираме Apache и да стартираме нашия бекенд върху него. Ще направим това, като използваме:
apt -get инсталирайте apache2 -y
След това заменете файловете в/var/ww/html с тези в папката от папката frontend.
Ако всичко е наред, трябва да можете да се свържете с вашия уебсайт, използвайки адреса на APIPA: 169.254.10.1 във вашия браузър.
Стъпка 3: Комуникация с Arduino
За да прочетете нашия текущ сензор и нашия RFID сензор, използваме arduino, за да направите това, използвайте кода arduino, даден по -долу. Качете го с помощта на USB-A към USB-B кабел и софтуера arduino IDE. Когато се качи, частта arduino е готова.
Сега трябва да намерим името на серийното устройство на PI. За да направите това, уверете се, че в /boot/config.txt "enable_uart = 1" е зададено правилно. Също така се уверете, че "console = serial0, 115200" е премахната от cmdline.txt.
След това проверете портовете с помощта
ls -l /dev
Тогава едно от серийните имена трябва да бъде Arduino. Попълнете това име във функцията arduinocom в app.py
ser = serial. Serial ('/dev/ttyS0', 9600)
Правете това само ако серийната комуникация не работи.
Стъпка 4: Окабеляване Switch-it
Окабеляването на всичко е доста лесно, въпреки че трябва да имате предвид следните неща:
- Внимавайте с контакта, 230 волта може да бъде смъртоносен.
- Уверете се, че използвате конвертор на ниво за комуникация между RPI и Arduino.
- Преди запояване на RGB, уверете се, че използвате червения и зеления щифт. Тествайте това предварително!
- Проверете дали няма късо съединение ПРЕДИ да включите веригата.
Стъпка 5: Стартирайте кода
Сега всичко е свързано правилно, можем да стартираме нашата програма.
За да го стартирате автоматично при стартиране, създайте файл, като използвате:
sudo nano myscript.service
След това поставете (не забравяйте да използвате своя собствена директория app.py:
[Единица] Описание = Switchit After = network.target [Service] ExecStart =/usr/bin/python3 -u app.py WorkingDirectory = // промяна в директория app.py // StandardOutput = наследяване StandardError = наследяване Рестартиране = винаги Потребител = pi [Инсталиране] WantedBy = многопотребителска цел
След това натиснете "ctrl + X" и го копирайте в/etc/systemd/system.
След това командата follwing за автоматично стартиране:
sudo systemctl активира myscript.service
Можете да намерите повече информация за това на сайта RaspBerry Pi.
Рестартирайте и готово
Сега рестартирайте PI, като използвате:
sudo рестартиране -h сега
Ето как правите Switch-it!
Благодаря за проследяването, надявам се това да е било полезно. Ако имате някакви съвети или обратна връзка, не се колебайте да оставите коментар.
Стъпка 6: (ОПЦИОНАЛНО) жилището
Можете да построите жилището изцяло по ваш вкус. Използвах метален корпус с размери 40х40х5 см с капак. Тъй като използвах метален, трябваше да пробивам дупки и да използвам дистанционни елементи, за да сваля всичко от земята. Избрах да използвам централна точка, където са налични 5V, 3.3V и gnd. Всяка електрическа връзка е запоена с парче свиваща се тръба отгоре. За управление на кабелите използвах подложки с носещи ленти.
Препоръчано:
Как да използвате модул с часовник в реално време (DS3231): 5 стъпки
Как да използвате модул с часовник в реално време (DS3231): DS3231 е евтин, изключително точен I2C часовник в реално време (RTC) с интегриран температурно компенсиран кристален осцилатор (TCXO) и кристал. Устройството включва вход за батерия и поддържа точно отчитане на времето, когато основното захранване
Ръководител на кубика на Рубик със затворени очи в реално време, използващ Raspberry Pi и OpenCV: 4 стъпки
Решавач на куб Рубик в реално време със завързани очи, използващ Raspberry Pi и OpenCV: Това е втората версия на инструмента за куб на Рубик, създаден за решаване на завързани очи. Първата версия е разработена от javascript, можете да видите проекта RubiksCubeBlindfolded1 За разлика от предишната, тази версия използва OpenCV библиотека за откриване на цветовете и
Измервател на нивото на водата в кладенец в реално време: 6 стъпки (със снимки)
Измервател на нивото на водата в кладенец в реално време: Тези инструкции описват как да се изгради евтин водомер в реално време за използване в изкопани кладенци. Измервателят на нивото на водата е проектиран да виси в изкопан кладенец, да измерва нивото на водата веднъж на ден и да изпраща данните чрез WiFi или клетъчна връзка
Измервател на температурата на водата, проводимостта и нивото на водата в кладенец в реално време: 6 стъпки (със снимки)
Измервател на температурата на водата, проводимостта и нивото на водата в кладенец в реално време: Тези инструкции описват как да се изгради евтин водомер в реално време за мониторинг на температурата, електропроводимостта (EC) и нивата на водата в изкопани кладенци. Уредът е проектиран да виси в изкопан кладенец, да измерва температурата на водата, EC и
Разпознаване на устройства в реално време с помощта на ЕМ стъпки: 6 стъпки
Разпознаване на устройства в реално време с помощта на ЕМ стъпки: Това устройство е предназначено да класифицира различни електронни устройства според техните ЕМ сигнали. За различните устройства те имат различни ЕМ сигнали, излъчвани от него. Ние разработихме решение за IoT за идентифициране на електронните устройства, използващи частици