Inhoudsopgave:

Zonne-weerstation: 5 stappen
Zonne-weerstation: 5 stappen

Video: Zonne-weerstation: 5 stappen

Video: Zonne-weerstation: 5 stappen
Video: Setting Up Bresser 5-in-1 Weather Station - Backyard Meteorology 2024, November
Anonim
Zonne-weerstation
Zonne-weerstation

Heb je ooit realtime weersinformatie uit je achtertuin willen hebben? Nu zou je een weerstation in de winkel kunnen kopen, maar die hebben meestal batterijen nodig of moeten op een stopcontact worden aangesloten. Dit weerstation hoeft niet aangesloten te worden op het net omdat het zonnepanelen heeft die naar de zon draaien voor meer efficiëntie. Met zijn RF-modules kan hij gegevens van het station buiten naar een Raspberry Pi in je huis overbrengen. De Raspberry Pi host een website waarop u de gegevens kunt bekijken.

Stap 1: Verzamel materialen

Materialen

  • Raspberry Pi 3 model B+ + adapter + Micro SD-kaart 16GB
  • Arduino Uno
  • Arduino Pro Mini + FTDI basisuitbraak
  • 4 6V 1W zonnepanelen
  • 4 18650 batterijen
  • Booster 5v
  • 4 TP 4056 batterijladers
  • Adafruit DHT22 temperatuur- en vochtigheidssensor
  • BMP180 Luchtdruksensor
  • 4 LDR
  • RF 433 ontvanger en zender
  • 2 Nema 17 Stappenmotoren
  • 2 DRV8825 Stappenmotordrivers
  • lcd 128*64
  • Veel draden

Gereedschappen en materialen

  • Lijm
  • Houten planken
  • Zaag
  • Schroeven + schroevendraaier
  • Duck tape
  • 2 aluminium strips

Stap 2: Mechanisch ontwerp

Mechanisch ontwerp
Mechanisch ontwerp
Mechanisch ontwerp
Mechanisch ontwerp
Mechanisch ontwerp
Mechanisch ontwerp
Mechanisch ontwerp
Mechanisch ontwerp

De behuizing van het weerstation is gemaakt van multiplex. Je hoeft geen hout te gebruiken, je kunt het maken van elk materiaal dat je wilt. Voor de motorsteunen heb ik een geheel in een blok hout geboord en vervolgens een platte schroef op de as van de motor geschroefd, wat beter werkt dan ik had verwacht. Zo hoef je geen motorsteun 3d te printen en is het makkelijk te maken. Daarna heb ik 2 aluminium strips gebogen om de motoren stevig vast te houden. Ik heb toen een plank uitgesneden en er gaten in geboord voor de zonnepanelen. Lijm er vervolgens de zonnepanelen op en soldeer draden op de zonnepanelen. Dan moet je ook een kruisje maken van zwart materiaal. Als je niets zwarts hebt, kun je zwarte tape gebruiken. Dit kruis houdt in elke hoek een LDR vast, zodat de Arduino de metingen van de LDR kan vergelijken en kan berekenen in welke richting hij moet draaien. Dus boor in elke hoek kleine gaatjes zodat je er een LDR in kunt doen. Het enige wat je nu nog hoeft te doen is een grondplaat maken en iets om de elektronica in te doen. Voor de grondplaat moet je een geheel boren om alle draden er doorheen te leiden. Voor de afmetingen zal ik je er geen geven, want het is echt aan jou hoe je dit wilt ontwerpen. Als u andere motoren of andere zonnepanelen heeft, moet u zelf de afmetingen berekenen.

Stap 3: Elektrisch ontwerp

Stroom

Het hele systeem werkt op batterijen (behalve de Raspberry Pi). Ik heb 3 batterijen in serie geplaatst. 1 Batterij is gemiddeld 3,7V, dus 3 in serie geeft je ongeveer 11V. Dit 3s batterijpakket wordt gebruikt voor de motoren en de RF-zender. De andere batterij die over is, wordt gebruikt om de Arduino Pro Mini en de sensoren van stroom te voorzien. Om de batterijen op te laden, heb ik 4 TP4056-modules gebruikt. Elke batterij heeft 1 TP4056 module, elke module is aangesloten op een zonnepaneel. Omdat de module B(in) en B(out) heeft, kan ik ze apart opladen en in serie ontladen. Zorg ervoor dat je de juiste TP4056-modules koopt, want niet alle modules hebben B(in) en B(out).

controle

De Arduino Pro Mini stuurt de sensoren en de motoren aan. De onbewerkte en geaarde pin van de Arduino is verbonden met de 5V-booster. De 5V-booster wordt aangesloten op de enkele batterij. De Arduino Pro Mini heeft een zeer laag stroomverbruik.

Componenten

DHT22: Ik heb deze sensor aangesloten op de VCC en Ground, ik heb vervolgens de datapin aangesloten op digitale pin 10.

BMP180: Ik heb deze sensor aangesloten op de VCC en Ground, ik heb SCL op SCL aangesloten op de Arduino en SDA op SDA op de Arduino. Wees voorzichtig, want de SCL- en SDA-pinnen op de Arduino Pro Mini bevinden zich in het midden van het bord, dus als je pinnen op het bord hebt gesoldeerd en in een breadboard hebt geplaatst, zal het niet werken omdat je interferentie van andere pinnen zult hebben. Ik heb die 2 pinnen op de bovenkant van het bord gesoldeerd en er rechtstreeks een draad op aangesloten.

RF-zender: ik heb dit aangesloten op het 3s-batterijpakket voor een beter signaal en een groter bereik. Ik heb geprobeerd het aan te sluiten op de 5V van de Arduino, maar dan is het RF-signaal superzwak. Ik heb toen de data-pin aangesloten op digitale pin 12.

LDR: Ik heb de 4 LDR's aangesloten op analoge pinnen A0, A1, A2, A3. Ik heb de LDR's bij elkaar gezet met een 1K weerstand.

Motoren: De motoren worden aangedreven door 2 DRV8825 besturingsmodules. Deze zijn erg handig omdat ze slechts 2 invoerlijnen (richting en stap) nodig hebben en tot 2A per fase naar de motoren kunnen produceren. Ik heb ze aangesloten op digitale pinnen 2, 3 en 8, 9.

LCD: Ik heb het lcd aangesloten op de Raspberry Pi om het IP-adres te tonen. Ik heb een trimmer gebruikt om de achtergrondverlichting te regelen.

RF-ontvanger: ik heb de ontvanger aangesloten op de Arduino Uno op 5V en aarde. De ontvanger mag niet meer dan 5V opnemen. Vervolgens heb ik de data-pin aangesloten op digitale pin 11. Als je een bibliotheek voor deze RF-modules kunt vinden die werkt op de Raspberry Pi, hoef je de Arduino Uno niet te gebruiken.

Raspberry Pi: De Raspberry Pi is via een USB-kabel verbonden met de Arduino Uno. De Arduino geeft de RF-signalen via een seriële verbinding door aan de Raspberry Pi.

Stap 4: Laten we beginnen met coderen

Om de Arduino Pro Mini te coderen, heb je de FTDI-programmeur nodig. Omdat de Pro Mini geen USB-poort heeft (om stroom te besparen), heb je dat breakout-bord nodig. Ik heb de code in de Arduino IDE geprogrammeerd, ik denk dat dit de gemakkelijkste manier is om het te doen. Upload de code uit het bestand en het zou goed moeten zijn om te gaan.

Om de Arduino Uno te coderen, heb ik hem via een USB-kabel op mijn computer aangesloten. Nadat ik de code had geüpload, verbond ik hem met de Raspberry Pi. Ik was ook in staat om de code op de Raspberry Pi te wijzigen omdat ik de Arduino IDE had geïnstalleerd en dus van daaruit kon programmeren. De code is heel eenvoudig, hij neemt de invoer van de ontvanger en stuurt deze via de seriële poort naar de Raspberry Pi.

Om de Raspberry Pi te coderen, heb ik Raspbian geïnstalleerd. Ik heb toen Putty gebruikt om er verbinding mee te maken via een SSH-verbinding. Ik configureer dan de Raspberry zodat ik er via VNC verbinding mee kan maken en dus een GUI heb. Ik installeerde een Apache-webserver en begon de backend en frontend voor dit project te coderen. Je kunt de code vinden op github:

Stap 5: Database

Om de gegevens op te slaan gebruik ik een SQL database. Ik heb de database gemaakt in MySQL Workbench. De database bevat de sensormetingen en sensorgegevens. Ik heb 3 tabellen, een voor het opslaan van de sensorwaarden met tijdstempels, de andere voor het opslaan van informatie over de sensoren en de laatste om informatie over gebruikers op te slaan. Ik gebruik de tabel Gebruikers niet omdat ik dat deel van het project niet heb gecodeerd omdat het niet in mijn MVP stond. Download het SQL-bestand en voer het uit en de database zou goed moeten zijn om te gebruiken.

Aanbevolen: