Taula de continguts:
- Subministraments
- Pas 1: connectar tots els aparells electrònics
- Pas 2: Configuració del Raspberry Pi
- Pas 3: creació de la base de dades
- Pas 4: Configuració del backend
- Pas 5: Configuració del frontend
- Pas 6: creació de la carcassa
Vídeo: Dispensador automàtic d'aigua per controlar el consum: 6 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:12
Hola!
Fa un parell de mesos, estava a la meva habitació pensant en quin tipus de projecte volia fer per a una tasca escolar. Volia fer alguna cosa que s’ajustés a mi i que em beneficiés en el futur. De sobte, la meva mare va entrar a l’habitació i va començar a queixar-se de no beure prou aigua. De seguida vaig tenir una epifania. Em va venir la idea de fabricar un dispensador d’aigua automàtic (com al cinema) que faci un seguiment del consum d’aigua diàriament.
Amb un Raspberry Pi, uns quants sensors, una bomba i poc coneixement, vaig intentar que això fos el millor possible.
Al final de tots els passos, disposareu d’un dispensador d’aigua en funcionament que us omple l’ampolla d’aigua i que connecta i interactua amb el vostre Raspberry Pi. No només podreu fer un seguiment del vostre consum d’aigua sobre la base d’un percentatge, sinó que també tindreu la possibilitat de veure la temperatura i el nivell d’aigua del contenidor d’aigua. Finalment, podreu consultar les vostres estadístiques. Si us sembla interessant, comproveu-ho i proveu-ho vosaltres mateixos.
El dipòsit de GitHub:
Subministraments
Microcontroladors
Raspberry Pi 4
Sensors i mòduls
He utilitzat 4 sensors:
Sensor d'ultrasons 2xHC-SR04
Els sensors ultrasònics mesuren la distància mitjançant l'ús d'ones ultrasòniques. El cap del sensor emet una ona ultrasònica i rep l'ona reflectida cap enrere des de l'objectiu. Els sensors d'ultrasons mesuren la distància a l'objectiu mesurant el temps entre l'emissió i la recepció. N’he utilitzat dos per comprovar si hi ha una ampolla a prop i mesurar la distància a l’aigua del dipòsit.
Fitxa de dades
1x sensor de temperatura DS18B20
El DS18B20 és un sensor de temperatura programable a 1 fil de màxima integració. S'utilitza àmpliament per mesurar la temperatura en entorns durs com en solucions químiques, mines o sòls, etc. La vaig utilitzar per mesurar la temperatura de l'aigua del dipòsit d'aigua.
Fitxa de dades
1 mòdul RFID RC522
El RC522 és un mòdul RFID de 13,56 MHz que es basa en el controlador MFRC522 de semiconductors NXP. El mòdul és compatible amb I2C, SPI i UART i normalment s’envia amb una targeta RFID i un porta-claus. S’utilitza habitualment en sistemes d’assistència i en altres aplicacions d’identificació de persones / objectes. En aquest projecte, s’utilitza per a un sistema d’identificació / inici de sessió.
Fitxa de dades
I 2 actuadors:
1x bomba peristàltica 12-24V
Vaig utilitzar una bomba peristàltica per fer arribar l’aigua del dipòsit a una ampolla d’aigua. La majoria de les bombes eren massa lentes, així que vaig optar per una versió de 24V que alimento amb un adaptador de corrent de 24V.
1x pantalla LCD
La pantalla LCD s’utilitza per mostrar l’adreça IP i els missatges importants. Una pantalla de cristall líquid (LCD) és una pantalla de pantalla plana o un altre dispositiu òptic modulat electrònicament que utilitza les propietats moduladores de la llum dels cristalls líquids combinats amb polaritzadors.
Fitxa de dades
Carcassa
Parlant de la carcassa, vaig fer un bricolatge amb subministraments d’un magatzem casolà (en el meu cas el Brico a Bèlgica). He utilitzat fusta contraxapada que he tallat a la mida adequada. Parlaré de com vaig presentar el meu cas en un pas més, però aquí teniu les coses que necessitareu:
- Taulers de fusta contraxapada 3x
- 1 x Embut petit
- 1x dipòsit d'aigua (podeu triar quina quantitat voleu, he anat per 10L)
- 1x safata de degoteig
Podeu trobar tots els materials i preus a la llista de material adjunta.
Pas 1: connectar tots els aparells electrònics
Ara que hem resumit tota l’electrònica, és hora de connectar-los. Vaig fer dos circuits Fritzing, un tauler de suport i un altre esquemàtic, per mostrar-vos com i on s’hauria de connectar tota l’electrònica. Podeu trobar l'enllaç de descàrrega de Fritzing aquí: https://fritzing.org/download/. Com es va esmentar anteriorment, vaig utilitzar un Raspberry Pi i vaig connectar un escàner RFID, dos sensors d’ultrasons, un sensor de temperatura, un LCD i una bomba peristàltica per a l’aigua.
He adjuntat els dos circuits en un PDF, si voleu aprofundir-hi.
Pas 2: Configuració del Raspberry Pi
Utilitzarem el nostre Raspberry Pi per executar i controlar tot: backend, frontend i base de dades.
Un Raspberry Pi no s’executa automàticament. Haurem de fer alguns passos per començar a utilitzar-lo.
Pas 1: Raspbian
Si utilitzeu un Raspberry Pi nou, necessitareu raspbian. L’enllaç de descàrrega i el tutorial es poden trobar aquí.
Pas 2: escriure la imatge a SD
Ara que teniu la vostra imatge Raspbian, necessitareu un programari d’escriptura d’imatges (us recomano win32diskimager) per escriure el fitxer d’imatge a la targeta SD. El tutorial complet es pot trobar aquí.
Pas 3: iniciar la sessió al Raspberry Pi
Obriu "Powershell" i escriviu "ssh [email protected]". Si tot va bé, us demanaran una contrasenya (la contrasenya per defecte sempre és raspberry). Normalment, això us hauria d’iniciar sessió al Raspberry Pi. Ara haurem de fer alguns canvis a la nostra configuració. Escriviu sudo raspi-config al terminal i premeu Retorn. Aneu a les opcions de localització> canvieu la zona horària i configureu-la a la vostra zona horària. També hauríeu de canviar el vostre país sense fil a la vostra ubicació. Finalment, aneu a les opcions d'interfície i activeu SPI, I2C i 1 cable. Això serà important per utilitzar correctament els sensors.
Pas 4: Configuració de la connexió a Internet
Farem servir una xarxa WiFi. Podeu afegir la vostra xarxa domèstica mitjançant:
wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
Haureu de reiniciar el Pi per establir una connexió. Per comprovar si ha funcionat, podeu utilitzar ifconfig per comprovar si hi ha una adreça IP.
Pas 5: Configuració del servidor web i de la base de dades
En primer lloc, és millor actualitzar i actualitzar el sistema amb la següent seqüència d’ordres:
- sudo apt dist-upgrade --auto-remove -y
- actualització sudo apt
- actualització sudo apt
- sudo apt autoremove
Un cop fet això, necessitarem els paquets següents per al nostre servidor web i la nostra base de dades:
Apatxe
sudo apt install apache2 -y
PHP
sudo apt install php
sudo apt install phpMyAdmin -y
No us oblideu d’establir una contrasenya segura de MySQL quan us demani establir una contrasenya.
MariaDB
sudo apt install mariadb-server mariadb-client -y
sudo apt install php-mysql -y
sudo systemctl reinicieu apache2.service
Pas 6: Instal·lació de biblioteques Python
Per al backend, necessitarem algunes biblioteques per a Python. Els instal·larem amb pip3, perquè utilitzem python3.
pip3 instal·la mysql-connector-python
pip3 instal·la flask-socketio
pip3 instal·lar flask-cors
pip3 install gevent
pip3 instal·la gevent-websocket
sudo apt install python3-mysql.connector -y
pip3 instal·la mfrc522! (ho necessitarem per fer ús de l'escàner RFID)
Pas 7: Preparació del codi de Visual Studio
Per executar el codi, recomano utilitzar Visual Studio Code per connectar el vostre Raspberry Pi. Podeu trobar l'enllaç de descàrrega per instal·lar VSC aquí.
Si encara no teniu instal·lat el desenvolupament remot mitjançant SSH, podeu trobar els passos per fer-ho aquí.
Pas 3: creació de la base de dades
Emmagatzemarem totes les dades del sensor i les dades dels usuaris en una base de dades.
La meva base de dades consta de 5 taules:
Dispositiu
El dispositiu de taula té un DeviceID, que fa referència al dispositiu mateix. DeviceName dóna el nom del dispositiu, en aquest cas sensor d'ultrasons, sensor de temperatura, … DeviceType dóna el tipus de dispositiu (sensor o actuador).
Història
L'historial de taules conté tot l'historial del sensor, juntament amb la data (HistoryDate) que es va afegir l'historial i el valor del moment a la història. També té dues claus estrangeres:
- DeviceID, per enllaçar un registre específic a un dispositiu
- UserID, per enllaçar un usuari específic a un registre (això es deu al fet que fem servir un RFID i volem afegir el registre d'historial a un usuari específic)
Usuari
L'usuari de taula s'utilitza per crear un sistema d'inici de sessió d'usuari amb l'escàner RFID. Consisteix en un àlies, nom, cognom, contrasenya i RFID (és el número RFID d'una etiqueta). Tots els usuaris estan enllaçats a un contenidor (watertank) i també porten el ContainerID com a clau estrangera.
Contenidor
El contenidor de taula consta de tots els contenidors. Té un identificador, un ContainerLocation (pot ser una empresa, casa o qualsevol altra cosa). Per últim, té un MaxLevel que representa el volum màxim que té el contenidor.
Configuració
La configuració de la taula té un ID de configuració i fa un seguiment del DailyGoal de cada usuari + la data en què l’usuari va afegir el DailyGoal. Això explica l'identificador d'usuari de clau estrangera.
Es pot trobar un buidatge de la base de dades al meu dipòsit GitHub a Base de dades.
Pas 4: Configuració del backend
No hi ha cap projecte sense un backend de treball.
El backend consta de 4 coses diferents:
ajudants
Els ajudants són totes les classes que s’utilitzen per als diferents sensors i actuadors. Hi ha un dispositiu auxiliar per al sensor de temperatura (DS18B20), per als sensors d’ultrasons (HCSR05) per poder mesurar la distància i perquè la pantalla LCD pugui escriure missatges a la pantalla.
repositoris
A la carpeta de repositoris, trobareu 2 fitxers Python:
- Database.py, que és un ajut per treure files de la vostra base de dades. Facilita l'execució i la lectura de la base de dades.
- DataRepository.py que conté totes les consultes SQL que s’utilitzen al codi principal (app.py). S'utilitzen per obtenir, actualitzar o eliminar dades de la base de dades.
app.py
Aquest és el codi principal principal del projecte. Fa la configuració definint tots els passadors i modes i conté el codi per fer funcionar la bomba, obtenir la temperatura, obtenir l’usuari, etc. També conté les rutes que s’utilitzen per recuperar dades de la base de dades i de tots els socketio.on. Per a cada pàgina HTML hi ha un socketio.on diferent per assegurar-vos que totes les funcions funcionen al moment correcte.
config.py
Ens queda un fitxer: config.py. Aquest és el fitxer amb les opcions de configuració per connectar amb la vostra base de dades. No oblideu establir les vostres credencials de base de dades.
El dorsal es pot trobar al meu dipòsit a Darrere fons.
Pas 5: Configuració del frontend
Per al Frontend, vaig començar fent un disseny de com hauria de ser el meu servidor web a AdobeXD. Vaig fer servir els colors del meu logotip, que són taronja i dos tons de blau diferents. Vaig intentar que el disseny fos el més senzill possible i vaig crear una gota d’aigua que mostri el percentatge en què heu assolit el vostre objectiu del dia.
Al meu dipòsit de GitHub, trobareu el meu Frontend a Codi> Frontend. És important que enganxeu això a la carpeta / var / html del vostre Raspberry Pi per fer-lo accessible des del servidor web.
Consisteix en un parell de fitxers HTML, que condueixen a les diferents pàgines. També trobareu el meu screen.css amb tot el CSS que necessiteu perquè sembli el meu projecte. Per últim, tindreu diferents fitxers JavaScript sota scripts. Aquests scripts es comuniquen amb el meu dorsal per mostrar dades de la meva base de dades o darrera.
El fons es pot trobar al meu dipòsit a Frontend.
Pas 6: creació de la carcassa
Si parlem del meu cas, hi ha dues parts principals:
Carcassa exterior
Vaig construir la caixa des de zero. Vaig utilitzar taulons de fusta contraxapada i els vaig serrar de les mides correctes. Vaig cargolar totes les taules juntes i vaig perforar forats per a la pantalla LCD, el botó, el sensor d'ultrasons per detectar si hi ha una ampolla d'aigua present i l'embut per distribuir l'aigua. Vaig dividir la meva caixa en diferents seccions per mantenir l'aigua i l'electrònica separats i vaig utilitzar una safata per protegir els cables de les fuites d'aigua. Al vídeo adjunt, podeu veure la majoria d’aspectes de la meva carcassa i com l’he creat. També he imprès en 3D un botó, que està enganxat a un botó normal. Finalment, he utilitzat una safata antigoteig per agafar tota l’aigua vessada. També vaig fer servir frontisses per poder obrir i tancar un tauler lateral per mirar la meva electrònica. Sempre podeu utilitzar un dispensador de segona mà o també podeu utilitzar altres materials.
Per a les mesures exactes de la meva construcció, he adjuntat un PDF amb totes les mides de les plaques utilitzades a la funda.
Tanc d'aigua
El dipòsit d’aigua no va ser una feina fàcil. Vaig aconseguir un dipòsit d’aigua amb un forat a la part inferior, de manera que vaig haver de gravar-lo amb cinta adhesiva per aturar la fuita. Necessitareu quatre forats: un per al sensor de temperatura i un per al tub de la bomba. un per al tub per omplir el tanc i un per al sensor d'ultrasons. Per a aquest darrer, vaig imprimir en 3D una funda que es pot trobar aquí. Això proporciona al sensor més protecció contra l’aigua. A continuació, he perforat un rectangle a la part superior del tanc, per recolzar-hi el sensor.
Recomanat:
Sistema d'alarma de consum d'aigua / Monitor de presa d'aigua: 6 passos
Sistema d'alarma per a consum d'aigua / Monitor de presa d'aigua: hauríem de beure una quantitat suficient d'aigua cada dia per mantenir-nos sans. També hi ha molts pacients als quals se'ls recepta per beure una quantitat específica d'aigua cada dia. Però, malauradament, ens vam perdre l’horari gairebé tots els dies. Així que dissenyo
Com mesurar correctament el consum d'energia dels mòduls de comunicació sense fils en l'era del baix consum d'energia ?: 6 passos
Com mesurar correctament el consum d’energia dels mòduls de comunicació sense fils a l’era del baix consum d’energia ?: El baix consum d’energia és un concepte extremadament important a la Internet de les coses. La majoria de nodes IoT han d’estar alimentats per bateries. Només mesurant correctament el consum d'energia del mòdul sense fils podem estimar amb precisió la quantitat de bateria que
Caixa d'aigua per a l'aigua: 6 passos
Caixa de plantes autoregants: tots els requisits: impressora WoodLasercutter3D Cola de fusta Arduino Sensor d'humitat del sòl Bomba d'aigua Transistor Ampolla d'aigua
Com fer un dispositiu IoT per controlar els electrodomèstics i controlar el temps mitjançant Esp8266: 5 passos
Com fer un dispositiu IoT per controlar els electrodomèstics i controlar el clima mitjançant Esp8266: Internet de les coses (IoT) és la interconnexió de dispositius físics (també anomenats "dispositius connectats" i "dispositius intel·ligents"), edificis, i altres elements integrats amb electrònica, programari, sensors, actuadors i
Dispensador d'aigua controlat per pedal de 5 galons: 3 passos
Dispensador d’aigua de 5 galons controlat per pedal: en alguns països com ara on visc (Turquia), ens molesten les bombes manuals per lliurar l’aigua d’un contenidor. Algunes bombes manuals són feixugues i els nens petits tenen problemes per proporcionar la potència necessària. Així que vaig pensar en fer servir un peu