Inhoudsopgave:

Mini Serre: 11 stappen
Mini Serre: 11 stappen

Video: Mini Serre: 11 stappen

Video: Mini Serre: 11 stappen
Video: Советы и Хитрости Мастеров по Дому, Которые Действительно Помогают▶11 2024, Juli-
Anonim
Mini Serre
Mini Serre
Mini Serre
Mini Serre

Als student heb ik de slechte gewoonte om dingen te vergeten. Daarom, als ik een bepaald type plant wil laten groeien, vergeet ik het meestal en sterft het omdat er niemand is om ervoor te zorgen.

Ik zal proberen dit probleem op te lossen met Mini-Serre. Mini-Serre is een geautomatiseerd monitoringsysteem voor tuinieren dat gegevens van de verschillende soorten sensoren die zijn geïnstalleerd naar een webserver op de Raspberry Pi stuurt. Op deze manier kan de gebruiker zijn planten overal op een website volgen. Dit concept wordt uitgewerkt als afstudeerproject binnen het eerste jaar multimedia- en communicatietechnologie in Howest Kortrijk, België.

Stap 1: De materialen

De materialen
De materialen

Om dit project te bouwen, hebt u de volgende items nodig:

Elektronica

  1. Raspberry pi 3 - kit
  2. Breadboard
  3. Mannelijk-naar-mannelijk connectoren
  4. Mannelijke-naar-vrouwelijke connectoren
  5. Dallas 18B20 (temperatuursensor)
  6. Fotoresistordetectie Lichtgevoelige lichtsensor
  7. MCP3008
  8. Potentiometer
  9. LCD scherm
  10. Weerstanden
  11. Blauwe LED
  12. RGB-LED

Behuizing:

13. Central Park kweekkas (https://www.brico.be/nl/tuin-buitenleven/moestuin/…) 14. Houten plaat (bodem van de kist) 15. Spijkers 16. Schroeven

Gereedschap:

17. Hamer 18. Zaag 19. Schroevendraaier 20. Boor

Stap 2: Het circuit maken

Het circuit maken
Het circuit maken
Het circuit maken
Het circuit maken

In stap 2 gaan we de schakeling maken voor dit project. Dit is het absolute minimum dat je nodig hebt als je wilt dat het werkt. Gebruik de frituurtabel en het schema om een kopie van de schakeling te maken. Hier heb je alle elektrische materialen uit stap 1 nodig.

Informatie over de schakeling:

We hebben 2 sensoren aangesloten op de MCP3008 namelijk de lichtsensor en de bodemvochtsensor. De temperatuursensor heeft een digitale uitgang en maakt gebruik van een GPIO-pin op de Raspberry Pi.

Extra:

Ik heb ook een LCD-scherm geïmplementeerd dat het later gemakkelijker maakt om verbinding te maken met de Raspberry Pi zonder dat je verbinding hoeft te maken met je laptop. Dit is niet nodig, maar het wordt sterk aanbevolen.

Stap 3: Maak een database

Een database maken
Een database maken

Het is erg belangrijk om je data van de sensoren overzichtelijk maar ook veilig op te slaan. Daarom heb ik besloten om mijn gegevens op te slaan in een database. Op deze manier kan alleen ik toegang krijgen tot deze database (met een persoonlijk account) en het georganiseerd houden. In de afbeelding hierboven vind je mijn schema uit mijn database en hieronder een bestand om de database te exporteren naar een databaseprogramma, bijvoorbeeld MySQL.

Database-programmaHet is belangrijk dat onze database zelfstandig kan werken vanaf onze Raspberry Pi. U kunt dit doen door MySQL of MariaDB voor de Raspberry Pi te downloaden. U wilt eerst de database op uw computer maken in MySQL Workbench. Vervolgens exporteert u deze database als een op zichzelf staand bestand. Maak nu verbinding met de database van je Raspberry Pi via MySQL Workbench en herstel de database hier. Nu heb je de database op je Raspberry Pi!

Stap 4: De sensorgegevens naar de database schrijven

Nadat de database op uw Raspberry Pi draait, willen we dat onze sensoren hun gegevens daarin kunnen opslaan. We kunnen dit doen door 3 aparte scripts te maken (wat in PyCharm wordt gedaan). Een leuke functie van PyCharm is dat je verbinding kunt maken met je Pi en op deze manier toegang hebt tot je database en er rechtstreeks naar kunt schrijven. De gegevens worden ook direct gelezen door de Raspberry Pi en de LED's lichten op naargelang wat je nodig hebt.

Blauwe LED brandt: De grond is niet vochtig genoeg. RGB-LED brandt groen: alles is in orde. RGB-LED brandt rood: het is te warm, open het dak om het wat af te koelen. RGB-LED brandt blauw: het is te koud, sluit het dak als het open is.

Je kunt alle scripts downloaden van mijn github-repository:

Opmerking: ik heb mijn persoonlijke inloggegevens voor de databases gebruikt, dus het kan zijn dat u deze moet aanpassen aan de uwe.

Opmerking: De map DB1 bevat een klasse 'database' die wordt geïmporteerd in de code die verbinding maakt met uw database.

Stap 5: Uw IP op het display weergeven

Uw IP op het scherm weergeven
Uw IP op het scherm weergeven

Het display toont het IP-adres waar je Raspberry Pi op draait, op deze manier kun je eenvoudig en draadloos verbinding maken met je Raspberry Pi. Ik heb hier ook een script voor geschreven dat het IP-adres van je pi leest en op het scherm weergeeft (merk op dat je GPIO-pinnen overeenkomen, anders werkt het misschien niet). De Raspberry Pi voert dit script automatisch uit bij het opstarten. U kunt dit doen door wat code toe te voegen aan het rc.local-bestand op uw Raspberry Pi. Je kunt daar komen door 'sudo nano /etc/rc.local' te typen, vóór de laatste regel code die je wilt toevoegen 'Python3.5 /home/user/filelocation &'.

Je vindt het script hier:

Let op: de '&' aan het einde, dit zorgt ervoor dat het script één keer wordt uitgevoerd en onmiddellijk stopt, zodat andere scripts ook kunnen worden uitgevoerd.

Stap 6: de sensoren elke 10 minuten meten

De sensoren elke 10 minuten meten
De sensoren elke 10 minuten meten

We willen niet dat onze database wordt gevuld met sensordata ooit 0,001 seconden, anders wordt het veel te moeilijk voor de database om alle gegevens die binnenkomen bij te houden en kan het crashen. Daarom heb ik een scrapt toegevoegd aan 'crontab' op de Raspberry Pi. Crontab is een programma dat geplande taken bijhoudt, zodat u het script eenvoudig elke 10 minuten maar één keer kunt uitvoeren.

Hoe het in te stellen:

U kunt dit instellen door eerst in de Raspberry Pi-opdrachtregel 'crontab -e' te typen, dit opent de editor voor crontab. Scroll naar beneden naar de onderkant van het bestand en voeg 3 regels toe, één voor elke sensor.

'*/10 * * * * python3.5 /home/user/filepath/sensor1'

Let op: De '*/10' is de 10 minuten die we tussen elke meting willen zitten. De code die ik daarna typte, is de python-versie die je gebruikt en het bestand dat je wilt uitvoeren, dus je moet één regel schrijven voor elke sensor omdat ze uit 3 verschillende bestanden bestaan.

Stap 7: De website maken

De website maken
De website maken

Ik heb mijn website gemaakt in een programma genaamd Atom. Het is een heel eenvoudig te gebruiken programma en aan te raden als je net als ik vrij nieuw bent in het schrijven van HTML en CSS.

U kunt alle gebruikte code en afbeeldingen vinden via deze link:

Ik heb de voorkant van de website gemaakt in Visual Studio Code, dus als je niet van plan bent om de HTML & CSS zelf te maken, kun je de bestanden gewoon toevoegen aan een nieuwe map in Visual Studio Code in plaats van Atom.

Stap 8: De back-end maken

De back-end en front-end zullen de dingen zijn die daadwerkelijk iets laten gebeuren op de website die we zojuist hebben gemaakt. In de back-end maken we opnieuw verbinding met onze database en in plaats van gegevens in de database te plaatsen. We gaan nu alle data van de verschillende sensoren uitlezen en met behulp van Socket. IO sturen we deze naar onze front-end zodat we deze op de website kunnen tonen.

De code naar de back-end vind je hier:

Opmerking: we gebruiken de databaseklasse die we eerder gebruikten, dus ik heb deze niet in deze repository opgenomen.

Stap 9: De front-end maken

De front-end is waar we onze HTML & CSS-code combineren met JavaScript en onze Back-end. Het JavaScript dat ik heb geschreven, probeert een verbinding te maken met de back-end die moet worden uitgevoerd. Nu zal de back-end ons alle gegevens van de sensoren sturen en we kunnen een paar functies in JavaScript maken die het HTML-bestand bewerken zodat het past bij onze huidige waarden.

Het JavaScript is hier te vinden:

Let op: zorg ervoor dat je in je HTML linkt naar de juiste map van de plaats van je JavaScript, anders werkt het mogelijk niet.

Stap 10: De kas maken

De kas maken
De kas maken
De kas maken
De kas maken

Ik kocht een kant-en-klaar pakket van Brico:

Volg gewoon de stappen die bij het pakket worden geleverd. Nadat dit is gebeurd, zijn we nog niet helemaal klaar om onze Raspberry Pi erin te plaatsen. Eerst moeten we een 'vloer' of bodem maken voor de Kas, dit doe je door een houten plaat te nemen en uit te meten hoe groot deze moet zijn om het passend te maken. Ik heb eerst een houten frame gemaakt zodat de houten plaat iets heeft om op te rusten.

Stap 11: Alles samenbrengen

Alles bij elkaar zetten
Alles bij elkaar zetten
Alles bij elkaar zetten
Alles bij elkaar zetten
Alles bij elkaar zetten
Alles bij elkaar zetten

We zijn bijna klaar! Nog deze laatste stap en je bent klaar om te gaan. Neem de Raspberry Pi en de kas, maak een paar gaten zodat je de LED's er doorheen kunt steken, maak een gat voor het display en een gat voor de Raspberry Pi-voeding. Zet alles in de kas, sluit de Pi aan en je bent helemaal klaar! Je hebt je eigen serre!

Aanbevolen: