Innehållsförteckning:
- Steg 1: Tillbehör
- Steg 2: Fritzing Schematic
- Steg 3: Förbered Raspberry Pi
- Steg 4: Databasmodell - MySQL
- Steg 5: Frontend: Konfigurera webbservern
- Steg 6: Backend
- Steg 7: Placering av LED -remsan
- Steg 8: Placera rören
- Steg 9: Placera LCD -skärmen
- Steg 10: Placera sensorerna och anslut LED -remsan
- Steg 11: Anslut Pi
- Steg 12: Gör en behållare för vatten
- Steg 13: Slutresultat
Video: Automatiserad växtkruka - Little Garden: 13 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:40
Jag är student från Multimedia och kommunikationsteknik på Howest Kortrijk. För vårt sista uppdrag var vi tvungna att utveckla ett IoT -projekt efter eget val.
När jag letade efter idéer bestämde jag mig för att göra något användbart för min mamma som älskar att odla växter och började arbeta med en automatisk växtkruka.
Huvuduppgifterna för denna automatiska växtkruka, Little Garden, är att:
-
Mät
- Temperatur
- Ljusintensitet
- Fuktighet
- Markfuktighet
Spara mätningarna i en databas
Förbättra förutsättningarna för växttillväxten om ett visst värde är för lågt
Låt enheten övervakas och hanteras via en webbplats
Inte varje steg måste följas till märket. Mycket av det som händer kan vara din personliga preferens eller förbättras. Denna konstruktion gjordes på ett sätt så att delar kunde återhämtas efteråt, så du kanske vill närma dig din iteration annorlunda för att göra den mer permanent
Steg 1: Tillbehör
De flesta förnödenheter för detta projekt är inte särskilt svåra att skaffa, men i mitt fall arbetade jag med mycket återvunnet material. Jag var också tvungen att se till att jag kunde återhämta mig lite material efteråt.
Kärnkomponenter:
- Raspberry Pi 4 modell B
- Raspberry Pi strömförsörjning
- Hallon Pi T-skomakare
- 16 GB micro SD -kort
- Brödbräda strömförsörjning med 3.3V och 5V
- Bakbord
- 12V strömförsörjning
Sensorer:
- DHT11: Luftfuktighets- och temperatursensor
- BH1750: Ljussensor
- Jordfuktighetssensor
- MCP3008
Ställdonets komponenter:
- 220V vattenpump
- 12V LED -remsa
- Relämodul Velleman
- TIPS 50: NPN -transistor
- 16X2 LCD-moduke display
- PCF8574a
Motstånd:
- 3 x 330 Ohm motstånd
- 1 x 5k Ohm motstånd
- 2 x 10k Ohm motstånd
- 1 x 1k Ohm motstånd
- 1 x 10k Potentio -motstånd
Material:
- Prefabricerat växthus/växtkruka
- Kopplingsdosa
- Vattenflaska i plast
- Vridbara
- Bygeltrådar + vanlig tråd
- Skruvar
- Lödtenn + värmekrympslang
- Dubbelsidig dukband
- Måla
Verktyg:
- Limpistol
- Borra
- Sågblad
- Lödkolv
- Kartongkniv
- Pensel
Det fina med det här projektet är att det kan utökas eller förenklas genom att lägga till/ta bort komponenter och justera koden något. Till exempel, genom att byta ut 220V -pumpen mot en 12V -pump, kan du ta bort en nätadapter från enheten.
Steg 2: Fritzing Schematic
Brödbrädan och elektriska scheman för enheten visas ovan. Här kan du se hur alla komponenter är sammankopplade.
En allmän förklaring av hur komponenterna fungerar:
- DHT11 mäter luftfuktigheten i % och temperaturen i ° C. Kommunikationen med den hanteras av en I2C bu.
- BH1750 mäter ljusintensiteten i lux. Kommunikationen hanteras av en I2C -buss
- Jordfuktighetssensorn skapar en digital signal som omvandlas av MCP3008 till en läsbar digital signal för Raspberry Pi
- 16x2 LCD-modulen visar IP-adresserna från Pi, den ena efter den andra. Den är ansluten till en PCF8574a som tar emot en signal från Raspberry Pi som kommer att konvertera den till ett antal signaler för skärmens bitstift. E- och RS -stiften från LCD -skärmen är anslutna direkt till Pi. Potentiomotståndet bestämmer skärmens ljusstyrka.
- Vattenpumpen är ansluten till ett relä som är mellan den och dess 220V strömförsörjning/uttag. Raspberry Pi kan skicka en signal till reläet för att stänga den elektriska kretsen och slå på pumpen.
- LED -remsan är ansluten till 12V -strömförsörjningen och TIP 50 (NPN -transistorn) som växlar den elektriska strömmen. 1k Ohm -motståndet används för att begränsa dragkraften från Raspberry Pi, annars skulle det stekas extra krispigt.
Steg 3: Förbered Raspberry Pi
Om du inte har en än måste du lägga en av Raspberry Pi OS -bilderna på SD -kortet. Jag rekommenderar inte att använda Lite, eftersom det orsakade problem i början. Efteråt måste du se till att din Pi är uppdaterad genom att använda följande kommandon medan Pi är ansluten till internet:
- sudo apt-get uppdatering
- sudo apt-get uppgradering
Därefter kan du aktivera eller installera paketen för att projektet ska fungera, antingen genom raspi-config eller kommandon.
- SPI
- I2C
- MySQL: nästa steg
- SocketIO: pip installera kolv-socketio
Efter installationen kan du lägga till nödvändiga filer som är skrivna i html, CSS, Javascript och Python. All min kod finns på mitt github -arkiv.
Steg 4: Databasmodell - MySQL
Ovan kan du se ERD -diagrammet som är värd via MariaDB. Jag rekommenderar att du följer denna MariaDB installationsguide, inte bara för att installera MariaDB, utan också för att se till att din Pi är skyddad.
För personer som vill förstå fungerar databasen enligt följande:
Mätningarna och ställdonets växlar lagras som rader i Metingen -tabellen.
- metingId = ID för mät-/växlingsraden
- deviceId = ID för enheten som är ansvarig för denna rad i tabellen
-
waarde = värdet på sensormätningen eller ställdonets växling
- sensor: mätvärdet i motsvarande enheter
- ställdon: 0 = AV och 1 = PÅ
- commentaar = kommentarer som används för att lägga till extra information, till exempel fel
- datum = datum och tid då mätningen/växlingen inträffade
Inställningarna för enheten lagras i Inställningar.
- settingId = ID för denna rad och inställningsvärdet
- deviceID = ID för motsvarande enhet/sensor
- waarde = värde för inställningen
- typ = typ av setin, är det maximalt eller minimum?
Sist men inte minst innehåller tabellen Enheter information om sensorer och ställdon.
- deviceId = ID för enheten i denna tabell
- naam = enhetens/komponentens namn
- märke = märke
- pris = komponentens pris
- beschrijving = sammanfattning av komponenten
- enhet = enhet för de uppmätta värdena
- typeDevice = anger om komponenten är en sensor eller ställdon
Steg 5: Frontend: Konfigurera webbservern
Pi kräver att du installerar Apache -webbservern för att köra webbservern för den här enheten. Detta kan göras med följande kommando:
sudo apt-get install apache2.
När detta är gjort kan du navigera till mappen:/var/www/html. Här måste du placera all kod för frontend. Efteråt kan du komma åt webbplatsen genom att bläddra till IP -adressen.
Steg 6: Backend
För att köra backend måste du köra filen app.py, antingen manuellt eller genom att skapa en tjänst för den på Pi så att den startar automatiskt.
Som du kanske märker finns det ganska många filer. Jag separerade koden så mycket jag kunde för att få en tydlig översikt och organisation av koden.
En kort förklaring:
app.py: Huvudfilen där databasen, maskinvarukoden och backendkoden är sammanfogade
config.py: Konfigurationsfilen för databaseRepositories
Lagringsplatser: För åtkomst till datalageret
-
Hjälpare
- devices_id: klasser för att identifiera enhetsinformationen i databasen
- lcd: för att köra PCF och LCD
- Ställdon: klasser för drift av ställdon
- Sensorer: klasser för att köra sensorerna
Steg 7: Placering av LED -remsan
Jag klippte en bit av LED -remsan och limmade den på toppen av växthusboxen. Remsan jag använde kunde klippas på flera positioner och återanslutas, så att du kan placera flera remsor och ansluta dem igen efteråt genom ledningar, så att mer utrymme kan lysa upp.
Steg 8: Placera rören
Rören kan placeras på ett antal olika sätt, men i mitt fall har jag fäst dem på sidan av botten, håll dem så långt från den andra elektroniken som möjligt och låt vattnet helt enkelt rinna ut i smutsen.
Steg 9: Placera LCD -skärmen
Jag skar en hel i locket på kopplingsdosan med en sågklinga och skapade en öppning som var tillräckligt stor för att skärmen skulle ta sig igenom, men tillräckligt liten för att kretskortet skulle ligga bakom det. Efteråt fästes det på locket med skevheter.
LCD -skärmen visar Raspberry Pi: s IP -adresser, vilket gör det möjligt att veta vilken adress du kan använda för att surfa till webbplatsen.
Steg 10: Placera sensorerna och anslut LED -remsan
Med hjälp av fritz -scheman löd jag anslutningar mellan trådarna och placerade motstånden inuti trådarna med hjälp av värmekrymprör för att isolera dem.
Hål skars i sidorna av växthusets lock och botten för att fästa svängarna, genom vilka jag drog trådarna för sensorerna och LED -remsan.
Jag grupperade ledningarna efter funktion. Spänningen från ledningarna och krymprören i sig höll sensorerna. Jag var bara tvungen att använda lim på trådarna för DHT11 eftersom detta förlängdes ytterligare.
Steg 11: Anslut Pi
Jag skar hål i sidan av kopplingsdosan för att låta trådarna komma igenom senare.
Efter det placerade jag brödbrädan (med T-skomakaren, PCF8574a, MCP3008, justerbart motstånd och TIP50), relä och hallon Pi på botten av kopplingsdosan, som var täckt med dubbelsidig duktape. Strömförsörjningen passade inte på brödbrädan, så jag var tvungen att lägga den på sidan och använde bygelkablar för att ansluta den till brödbrädan.
Slutligen drog jag adaptern, sensorn och ställdonstrådarna genom hålen som kopplade ledningarna till brödbrädan, Raspberry Pi och andra komponenter. Pumpens ledning klipptes upp så att jag kunde placera ändarna inuti reläet så att den kunde användas som omkopplare.
Steg 12: Gör en behållare för vatten
Jag gjorde en vattenbehållare av en 1l plastvattenflaska genom att klippa toppen av med en lådskärare och måla den för ett bättre utseende. Vattenpumpen placerades sedan inuti. Orsaken till regeln att kommunicera kärl kan vattnet eventuellt rinna genom rören på egen hand, men att hålla röret upp löser problemet.
Steg 13: Slutresultat
Det ögonblick du har väntat på. Nu kan du placera smuts och frön inuti växthuslådan och låta enheten ta över. Du kan övervaka enhetens status från webbplatsen och ställa in de optimala värdena för belysning och markförhållanden.
Jag rekommenderar att vattna jorden först manuellt, eftersom lite smuts kan vara ganska torrt först. Vissa pumpar verkar också vattna ganska långsamt, men du måste vara mycket försiktig eftersom det kommer att fyllas upp snabbare än du förväntar dig. En mättnad på över 80% kan göra marken mycket fuktig. Och se till att jordfuktighetssensorn är tillräckligt djup.
Rekommenderad:
Akvariedesign med automatiserad kontroll av grundparametrar: 4 steg (med bilder)
Akvariedesign med automatiserad kontroll av grundparametrar: Introduktion Idag är marin akvariumvård tillgänglig för alla akvarister. Problemet med att skaffa ett akvarium är inte svårt. Men för invånarnas fulla livsstöd, skydd mot tekniska fel, enkelt och snabbt underhåll och vård,
Automatiserad vattenmotor med nivåindikator: 6 steg (med bilder)
Automatiserad vattenmotor med nivåindikator: Hej alla, välkommen till ännu en instruerbar. I det här projektet kommer vi att lära oss hur man skapar en helautomatisk vattentanknivåkontroll med vattennivåindikatorfunktion med Arduino Nano. Arduino är hjärnan i detta projekt. Det kommer att ta input från
Modelljärnvägslayout med automatiserad passering (V2.0): 13 steg (med bilder)
Modelljärnvägslayout med automatiserad passagerarkörning (V2.0): Detta projekt är en uppdatering av ett av de tidigare modelljärnvägsautomatiseringsprojekten, modelljärnvägslayouten med automatiskt sidospår. Denna version lägger till funktionen för koppling och avkoppling av loket med rullande materiel. Driften av
Automatiserad Point to Point -modelljärnväg med Yard Siding: 10 steg (med bilder)
Automatiserad järnvägsmodell med järnvägssida: Arduino -mikrokontroller öppnar stora möjligheter för modelljärnvägsspår, särskilt när det gäller automation. Detta projekt är ett exempel på en sådan applikation. Det är en fortsättning på ett av de tidigare projekten. Detta projekt består av en poäng
Automatisk smart växtkruka - (DIY, 3D -tryckt, Arduino, självvattning, projekt): 23 steg (med bilder)
Automatisk smart växtkruka - (DIY, 3D -tryckt, Arduino, Självvattning, Projekt): Hej, ibland när vi går hemifrån i några dagar eller är riktigt upptagna så lider husväxterna (orättvist) för att de inte vattnas när de behöver det. Detta är min lösning. Det är en smart växtkruka som innehåller: Inbyggd vattenbehållare. En senso