Съдържание:
- Консумативи
- Стъпка 1: Свързване на цялата електроника
- Стъпка 2: Настройване на Raspberry Pi
- Стъпка 3: Създаване на база данни
- Стъпка 4: Настройване на бекенда
- Стъпка 5: Настройване на Frontend
- Стъпка 6: Създаване на корпуса
Видео: Автоматичен дозатор за проследяване на консумацията: 6 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:51
Здрасти!
Преди няколко месеца бях в стаята си и мислех какъв проект искам да направя за училищна задача. Исках да направя нещо, което ме устройва и което ще ми бъде от полза в бъдеще. Изведнъж майка ми влезе в стаята и започна да се оплаква, че не пие достатъчно вода. Веднага имах богоявление. Идеята ми дойде да направя автоматичен разпределител на вода (като в киното), който проследява ежедневно консумацията на вода.
С Raspberry Pi, няколко сензора, помпа и малко познания се опитах да направя това възможно най -добро.
В края на всички стъпки ще имате работещ дозатор за вода, който пълни вашата бутилка с вода и който се свързва и взаимодейства с вашия Raspberry Pi. Не само ще можете да проследявате консумацията на вода въз основа на процент, но също така ще имате възможност да видите температурата и нивото на водата в контейнера за вода. И накрая, ще можете да проверите статистиката си. Ако това ви звучи интересно, не забравяйте да го проверите и да опитате сами!
Хранилището на GitHub:
Консумативи
Микроконтролери
Малина Пи 4
Сензори и модули
Използвах 4 сензора:
2xHC-SR04 ултразвуков сензор
Ултразвуковите сензори измерват разстоянието с помощта на ултразвукови вълни. Сензорната глава излъчва ултразвукова вълна и приема вълната, отразена обратно от целта. Ултразвуковите сензори измерват разстоянието до целта, като измерват времето между излъчването и приемането. Използвах две от тях, за да проверя дали има бутилка наблизо и да измеря разстоянието до водата в резервоара.
Информационен лист
1x Температурен сензор DS18B20
DS18B20 е 1-жичен програмируем температурен сензор от интегриран максимум. Той се използва широко за измерване на температурата в твърди среди като химически разтвори, мини или почва и др. Използвах го за измерване на температурата на водата в резервоара за вода.
Информационен лист
1x RC522 RFID модул
RC522 е 13.56MHz RFID модул, който се базира на контролера MFRC522 от полупроводници NXP. Модулът може да поддържа I2C, SPI и UART и обикновено се доставя с RFID карта и ключодържател. Обикновено се използва в системите за присъствие и други приложения за идентификация на лице/обект. В този проект се използва за система за идентификация/влизане.
Информационен лист
И 2 задвижвания:
1x перисталтична помпа 12-24V
Използвах перисталтична помпа, за да прекарам водата от резервоара до бутилка с вода. Повечето помпи бяха твърде бавни, затова отидох за 24V версия, която захранвам с 24V захранващ адаптер.
1x LCD дисплей
LCD дисплеят се използва за показване на IP адреса и важните съобщения. Течнокристалният дисплей (LCD) е плосък дисплей или друго електронно модулирано оптично устройство, което използва светлинно-модулиращите свойства на течните кристали, комбинирани с поляризатори.
Информационен лист
Корпус
Говорейки за корпуса, направих си сам с доставки от домашно депо (в моя случай Brico в Белгия). Използвах шперплат, който нарязах на правилния размер. Ще говоря за това как направих моята теза в следваща стъпка, но ето нещата, от които ще се нуждаете:
- 3x дъски от шперплат
- 1x малка фуния
- 1x резервоар за вода (можете да изберете коя сума искате, аз отидох за 10L)
- 1x тава за капене
Можете да намерите всички материали и цени в приложената спецификация.
Стъпка 1: Свързване на цялата електроника
Сега, когато обобщихме цялата електроника, е време да ги свържем. Направих две вериги на Fritzing, една макет и една схематична, за да ви покажа как и къде трябва да бъде свързана цялата електроника. Можете да намерите връзката за изтегляне на Fritzing тук: https://fritzing.org/download/. Както бе споменато по -рано, използвах Raspberry Pi и свързах RFID скенер, два ултразвукови сензора, един температурен сензор, LCD и перисталтична помпа за водата.
Прикачих двете вериги в PDF, ако искате да го разгледате по -отблизо.
Стъпка 2: Настройване на Raspberry Pi
Ще използваме нашия Raspberry Pi, за да изпълняваме и контролираме всичко: бекенд, интерфейс и база данни.
Raspberry Pi не работи автоматично. Ще трябва да преминем през някои стъпки, за да започнем да го използваме.
Стъпка 1: Raspbian
Ако използвате чисто нов Raspberry Pi, ще ви трябва raspbian. Връзката за изтегляне и урокът могат да бъдат намерени тук.
Стъпка 2: Запис на изображението в SD
Сега, когато имате вашето Raspbian изображение, ще ви е необходим софтуер за писане на изображения (препоръчвам win32diskimager), за да запишете файла с изображение на SD картата. Пълният урок може да бъде намерен тук.
Стъпка 3: Влизане в Raspberry Pi
Отворете „Powershell“и въведете „ssh [email protected]“. Ако всичко върви както трябва, те ще ви поискат парола (паролата по подразбиране винаги е малинова). Обикновено това трябва да ви влезе в Raspberry Pi. Сега ще трябва да направим някои промени в нашите настройки. Въведете sudo raspi-config в терминала и натиснете enter. Придвижете се до опциите за локализация> променете часовата зона и я задайте за вашата часова зона. Трябва също да промените държавата си на wi-fi на собствено местоположение. Накрая отидете на опциите за свързване и активирайте SPI, I2C и 1-проводник. Това ще бъде важно за правилното използване на сензорите.
Стъпка 4: Настройка на интернет връзката
Ще използваме WiFi мрежа. Можете да добавите домашната си мрежа чрез:
wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
Ще трябва да рестартирате своя Pi, за да установите връзка. За да проверите дали работи, можете да използвате ifconfig, за да проверите дали има IP адрес.
Стъпка 5: Настройване на уеб сървъра и базата данни
Първо, най -добре е да актуализирате и надстроите системата със следната последователност от команди:
- sudo apt dist-upgrade --auto-remove -y
- sudo apt ъпгрейд
- sudo apt актуализация
- sudo apt autoremove
След като това стане, ще ни трябват следните пакети за нашия уеб сървър и база данни:
Apache
sudo apt инсталирате apache2 -y
PHP
sudo apt инсталирате php
sudo apt install phpMyAdmin -y
Не забравяйте да зададете защитена парола за MySQL, когато тя поиска да зададете парола.
MariaDB
sudo apt install mariadb-server mariadb-client -y
sudo apt инсталирате php -mysql -y
sudo systemctl рестартирайте apache2.service
Стъпка 6: Инсталиране на библиотеки на Python
За бекенда ще ни трябват някои библиотеки за Python. Ще ги инсталираме с помощта на pip3, защото използваме python3.
pip3 инсталирайте mysql-конектор-python
pip3 инсталирайте flask-socketio
pip3 инсталирайте колба-кор
pip3 инсталирайте gevent
pip3 инсталирайте gevent-websocket
sudo apt инсталирате python3 -mysql.connector -y
pip3 инсталирайте mfrc522! (ще ни трябва това, за да използваме RFID скенера)
Стъпка 7: Подготовка на Visual Studio Code
За стартиране на кода препоръчвам да използвате Visual Studio Code, за да свържете вашия Raspberry Pi към. Връзката за изтегляне за инсталиране на VSC може да се намери тук.
Ако все още не сте инсталирали Remote Development с помощта на SSH, можете да намерите стъпките за това тук.
Стъпка 3: Създаване на база данни
Ще съхраняваме всички наши сензорни данни и потребителски данни в база данни.
Моята база данни се състои от 5 таблици:
Устройство
Табличното устройство има DeviceID, който препраща към самото устройство. DeviceName дава името на устройството, в този случай ултразвуков сензор, температурен сензор, … DeviceType дава типа на устройството (сензор или задвижващ механизъм).
История
Историята на таблицата съдържа цялата история на сензора, заедно с датата (HistoryDate), историята е добавена и стойността на момента в историята. Той също така има два чуждестранни ключа:
- DeviceID, за да свържете конкретен дневник с устройство
- UserID, за свързване на конкретен потребител с дневник (това е така, защото използваме RFID и искаме да добавим дневника на историята към един конкретен потребител)
Потребител
Таблица Потребител се използва за създаване на система за вход на потребител с RFID скенера. Състои се от псевдоним, първо име, фамилно име, парола и RFID (това е RFID номер на етикет). Всеки потребител е свързан с контейнер (воден резервоар) и също така носи ContainerID като чужд ключ.
Контейнер
Табличен контейнер се състои от всички различни контейнери. Има идентификатор, ContainerLocation (това може да е предприятие, дом или нещо друго). И накрая, той има MaxLevel, който означава максималния обем, който контейнерът има.
Настройки
Настройките на таблицата имат ID на настройките и проследяват DailyGoal на всеки потребител + датата, на която DailyGoal е добавен от потребителя. Това обяснява UserID на външния ключ.
Дъмп на базата данни може да бъде намерен в моето хранилище на GitHub под Database.
Стъпка 4: Настройване на бекенда
Няма проект без работещ бекенд.
Бекендът се състои от 4 различни неща:
помощници
Помощниците са всички класове, използвани за различните сензори и задвижвания. Има помощник за температурния сензор (DS18B20), за ултразвуковите сензори (HCSR05), за да може да измерва разстоянието и за LCD, за да може да пише съобщения на екрана.
хранилища
В папката хранилища ще намерите 2 Python файла:
- Database.py, който е помощник за изваждане на редове от вашата база данни. Улеснява изпълнението и четенето на базата данни.
- DataRepository.py, който съдържа всички SQL заявки, които се използват в основния код (app.py). Те се използват за получаване, актуализиране или изтриване на данни от базата данни.
app.py
Това е основният бекенд код на проекта. Той извършва настройката, като дефинира всички пинове и режими и съдържа кода за работа на помпата, получаване на температурата, получаване на потребителя и така нататък. Той също така съдържа маршрутите, използвани за извличане на данни от базата данни и всички socketio.on. За всяка HTML страница има различен socketio.on, за да се уверите, че всяка функция работи в правилното време.
config.py
Остава ни един файл: config.py. Това е файлът с опциите за конфигуриране за свързване с вашата база данни. Не забравяйте да зададете идентификационните си данни за базата данни.
Бекендът може да бъде намерен в моето хранилище под Backend.
Стъпка 5: Настройване на Frontend
За Frontend започнах с дизайн на това как трябва да изглежда уеб сървърът ми в AdobeXD. Използвах цветовете в логото си, които са оранжево и 2 различни нюанса на синьо. Опитах се да запазя дизайна възможно най -опростен и създадох капка, която показва процента до каква степен сте постигнали целта си за деня.
В моето хранилище на GitHub ще намерите моя Frontend под Code> Frontend. Важно е да поставите това във вашата /var /html папка на вашия Raspberry Pi, за да стане достъпна от уеб сървъра.
Състои се от няколко HTML файла, които водят до различните страници. Ще намерите и моя screen.css с целия CSS, който ви е необходим, за да изглежда като моя проект. И накрая, ще имате различни JavaScript файлове под скриптове. Тези скриптове комуникират с моя бекенд, за да покажат данни от моята база данни или бекенд.
Бекендът може да бъде намерен в моето хранилище под Frontend.
Стъпка 6: Създаване на корпуса
Ако говорим за моя случай, има две основни части:
Външен корпус
Изградих корпуса от нулата. Използвах дъски от шперплат и ги нарязах в правилните размери. Завих всички дъски и пробих дупки за LCD дисплея, бутона, ултразвуковия сензор, за да открия дали има бутилка с вода и фунията за разпределяне на водата. Разделих кутията си на различни секции, за да поддържам водата и електрониката разделени и използвах кабелна тава, за да предпазя кабелите от изтичане на вода. В прикаченото видео можете да видите повечето аспекти на корпуса ми и как го направих. Също така отпечатах 3D бутон, който е залепен за нормален бутон. Накрая използвах тава за отцеждане, за да настигна цялата разлята вода. Използвах и панти, за да мога да отварям и затварям страничен панел, за да разгледам електрониката си. Винаги можете да използвате дозатор втора употреба или можете да използвате други материали.
За точните измервания на моята конструкция прикачих PDF с всички размери на плочите, използвани в кутията.
Резервоар за вода
Резервоарът за вода не беше лесна работа. Взех резервоар за вода с дупка на дъното, така че трябваше да го залепя, за да спра изтичането. Ще ви трябват четири отвора: един за температурния сензор, един за тръбите на вашата помпа. един за тръбите за пълнене на резервоара и един за ултразвуковия сензор. За този последен 3D отпечатах калъф за него, който можете да намерите тук. Това дава на сензора повече защита срещу вода. След това пробих правоъгълник в горната част на резервоара, за да опирам сензора.
Препоръчано:
Направи си сам автоматичен дозатор за дезинфекция на ръце: 6 стъпки
Направи си сам автоматичен дозатор за дезинфекция на ръце: В този проект ние ще изградим автоматичен дозатор за дезинфекция на ръце. Този проект ще използва Arduino, ултразвуков сензор, водна помпа и дезинфектант за ръце. Ултразвуков сензор се използва за проверка на наличието на ръце под изхода на дезинфектанта
Автоматичен дозатор за алкохол с гел с Esp32: 9 стъпки
Автоматичен дозатор за алкохол с гел с Esp32: В урока ще видим как да направим пълен прототип, за да сглобим автоматичен дозатор за гел за алкохол с esp32, той ще включва поетапно сглобяване, електронна схема, както и изходния код, обяснен всички стъпки от стъпка
Автоматичен дозатор за лекарства: 5 стъпки
Автоматичен дозатор за лекарства: Този проект е за използване в медицинската област, където възрастните пациенти трябва да имат надежден начин за порциониране и отпускане на лекарства. Това устройство позволява да се порционират лекарства до 9 дни предварително и автоматично да се отпускат по желание
АВТОМАТИЧЕН ДОЗАТОР ЗА ХРАНИТЕЛНИ ХРАНИ: 9 стъпки
АВТОМАТИЧЕН ДОЗАТОР ЗА ХРАНИТЕЛНИ ХРАНИ: Някога чувствали ли сте се, че губите твърде много време в храненето на вашия домашен любимец? Случвало ли ви се е да се обадите на някого, за да нахрани вашите домашни любимци, докато сте на почивка? Опитах се да поправя и двата проблема с настоящия си училищен проект: Petfeed
Автоматичен дозатор за дезинфекция на ръце: 3 стъпки
Автоматичен дозатор за дезинфекция на ръце: Този автоматичен дозатор за дезинфекция на ръце е проектиран да бъде относително ниска цена, която е лесна за сглобяване. Повечето от необходимите артикули могат да бъдат закупени от местните търговци на хардуер и електроника. Има възможност за 3D отпечатване на