Inhoudsopgave:
- Stap 1: Bereid de Pi. voor
- Stap 2: Sluit alles aan
- Stap 3: Test je I2C
- Stap 4: Installeer MySQL en PhpMyAdmin
- Stap 5: Python-modules installeren
- Stap 6: Code om in te loggen op database
- Stap 7: Codeer om Temp weer te geven
- Stap 8: 3D-geprinte behuizing
- Stap 9: Dingen om te doen
Video: Raspberry Pi Barometer Weerklok - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
In deze instructable laat ik je zien hoe je een basisthermometer / barometerklok kunt bouwen met behulp van een Raspberry Pi 2 met een BMP180 I2C-sensor die wordt weergegeven op een Adafruit 4-cijferig 7-segment I2C-display. De Pi gebruikt ook een DS3231 realtime I2C-klokmodule om de tijd bij te houden wanneer de Pi opnieuw wordt opgestart.
De klok loopt door 4 fasen van elk 5 seconden. Eerst toont het de temperatuur in Celsius, dan in Fahrenheit, dan de barometrische druk in kPa * (het loopt dit getal naar links vanwege een beperkt aantal cijfers) en ten slotte toont het een trend van barometrische drukverandering tussen nu en het gemiddelde van de vorige uur.
Wat deze klok anders maakt dan de meeste, is dat hij een MySQL-database op de Pi gebruikt om elke minuut gegevens van de BMP180 te loggen. Omdat de huidige luchtdruk niet zo waardevol is als de beweging omhoog of omlaag over een bepaalde periode, gebruikt het deze database om een gemiddelde te berekenen voor een uur tussen 2 uur en 1 uur geleden en dat te vergelijken met de huidige druk. Een significante toename van de luchtdruk duidt meestal op een verbetering van de weersomstandigheden versus een grote daling zou kunnen waarschuwen voor een naderende storm.
De klok is gehuisvest in een 3D-geprinte ABS-behuizing met de BMP180 in een geventileerde dop aan de achterkant van de klok om te voorkomen dat de warmte die door de Pi wordt gegenereerd de temperatuurmetingen beïnvloedt. Ik zal het Autodesk 123D Design-schema leveren als u uw eigen schema wilt afdrukken.
De klok wordt gevoed met een standaard USB-muurwrat en trekt in totaal ongeveer 450 mA.
Ik zal niet te veel ingaan op de basisconfiguratie van de Pi en I2C, omdat dit is behandeld in veel andere instructables waarnaar ik links zal geven.
Stap 1: Bereid de Pi. voor
Stel uw Raspberry Pi in - Details op Raspberrypi.org
- Download en installeer uw geselecteerde Linux-distributie op een SD-kaart - ik gebruikte Raspbian
- Sluit de pi aan en start hem op
- Ik heb een micro-WiFi-adapter gebruikt om de pi op mijn router aan te sluiten, omdat de klokbehuizing de Ethernet-poort verduistert.
- Ik gebruikte de headless-modus waarbij je verbinding maakt met de pi via SSH, dus alles wat je nodig hebt, is de stroomvoorziening.
- Configureer I2C op de Pi - Ik volgde deze instructies op de Adafruit-site.
Stap 2: Sluit alles aan
Alle modules die ik in dit project gebruik, zijn 5V-tolerant en gebruiken I2C, een 2-draads protocol dat wordt gebruikt om IC's met elkaar te laten communiceren, dus de bedrading is vrij eenvoudig. Verbind alle VCC met 5V, alle Grounds samen en alle SCA- en SCL-lijnen samen volgens het schema. Klus geklaard.
Stap 3: Test je I2C
Een deel van de I2C-installatie is om i2cdetect uit te voeren, dat eruit zou moeten zien als de bijgevoegde afbeelding als alles correct is aangesloten.
Hieronder staan de overeenkomende adressen
- 0x70 = 7-segmentsweergave
- 0x77 = BMP180 Thermometer / Barometersensor
- 0x68 = DS3231 Real Time Clock-module
- 0x57 = DS3231 aan boord van EEPROM voor het opslaan van alarmgegevens.
Stap 4: Installeer MySQL en PhpMyAdmin
Het installeren van mySQL is vrij eenvoudig als je de tutorial hier volgt
sudo apt-get install mysql-server
Ik heb ook phpMyAdmin geïnstalleerd, een website die op Apache draait en die u kunt gebruiken om mySQL-databases te maken en te beheren. Tutorial hier
sudo apt-get install phpmyadmin
Eenmaal geïnstalleerd heb ik een database opgezet met de naam BP180 met behulp van phpMyAdmin met de structuur volgens de afbeelding.
Ik maak ook gebruik van een python-module genaamd mysqlDB die je kunt installeren met
sudo apt-get install python-mysqldb
Stap 5: Python-modules installeren
Download en installeer de onderstaande python-modules die u gaat gebruiken om verbinding te maken met de sensoren.
- Adafruit_BMP085-module
- SDL_DS3231-module
- Adafruit 7 Segment-module
Stap 6: Code om in te loggen op database
Het onderstaande codefragment wordt gebruikt om de temperatuur en luchtdruk te loggen en wordt aangeroepen vanuit een cron-script (Linux-geplande taken) dat elke 5 minuten wordt uitgevoerd. Bekijk deze tutorial om te leren hoe je crond kunt gebruiken.
NB! Doe geen moeite om mijn codeervaardigheden te vernietigen, ik ben geen ontwikkelaar, dus ja, er zijn waarschijnlijk een miljoen betere, snellere, soepelere, schonere manieren om dit te doen
Je zult in de code zien dat de temperatuur met 7 graden wordt verlaagd, wat overeenkomt met de warmte die door de Raspberry Pi wordt gegenereerd, zelfs als de BMP180 aan de buitenkant van de behuizing is gemonteerd. Toen ik het oorspronkelijk in de behuizing had, was het ongeveer 15 graden heter dan omgevingstemperatuur. Het lijkt vrij lineair te zijn, maar ik heb niet de kans gehad om extremen te testen. Feedback van uw ervaringen wordt op prijs gesteld.
Stap 7: Codeer om Temp weer te geven
Deze code wordt aangeroepen om door het display te bladeren volgens de inleiding.
Nogmaals, ik ben geen ontwikkelaar, dus de code is erg ruw, maar het werkt
Stap 8: 3D-geprinte behuizing
Het volgende is het ontwerp van de behuizing. Dit was een behoorlijke uitdaging omdat de vorm vatbaar is voor kromtrekken omdat delen van de buitenschaal slechts 2 mm dik zijn. Ik tekende eerst mock-ups van de Pi en alle onderdelen en ontwierp vervolgens de behuizing eromheen. De afdruk duurde ongeveer 7 uur op mijn RapMan 3.2 (wat een vrij langzame printer is) met een diepte van 0,25 laag.
Het bijgevoegde schema is gemaakt in Autodesk 123D Design, wat volgens mij een fantastisch stuk gratis software is.
Merk op dat sommige van de gaten, zoals die nodig zijn om de Pi te monteren, niet in het ontwerp zitten, omdat het beter is om deze achteraf te boren voor het geval je print een beetje kromtrekt. Vaste hand een boortje van 3 mm is alles wat je nodig hebt. Markeer de diepte op het bit met wat plakband, zodat je niet per ongeluk dwars door je 7-uurs print gaat zoals ik deed.
Stap 9: Dingen om te doen
- De realtimeklok was een toevoeging nadat de behuizing voor de 5e keer was afgedrukt, dus het is momenteel heet gelijmd op de zijkant van de behuizing, wat er niet goed uitziet, dus ik zou het ontwerp opnieuw willen doen en er een plek voor willen toevoegen.
- De helderheid van het 7-segments display is momenteel op het lichtst ingesteld, wat niet optimaal is voor sterke lichtomstandigheden. Ik wil graag een fotoweerstand toevoegen aan de bovenkant van de behuizing en de helderheid van 7 segmenten aanpassen op basis van het omgevingslicht.
- Er zijn enkele kleine ontwerpproblemen met het kraken van de basis, die ook zullen worden verholpen.
- Alle ideeën zijn welkom.
Ik hoop dat je dit instructable leuk vond en vond het inspirerend genoeg om je op weg te helpen. Het idee is om een platform te bieden dat u kunt gebruiken om uw eigen ideeën toe te voegen. Veel plezier!
Aanbevolen:
IoT-barometer: 5 stappen (met afbeeldingen)
IoT-barometer: Meet en registreer temperatuur en atmosferische druk met deze IoT-barometer. Ik wil een IoT-barometer presenteren. Het maakt het mogelijk om temperatuur- en drukgegevens te meten en op te slaan in het Adafruit IoT Platform. Ik heb een soortgelijk project gepubliceerd dat m
Getijden- en weerklok: 9 stappen (met afbeeldingen)
Getijden- en weerklok: Hoewel je analoge getijdenklokken kunt kopen die een enkele wijzer hebben die aangeeft of het tij hoog of laag is of ergens daartussenin, wilde ik iets dat me zou vertellen hoe laat het laagwater zal zijn. Ik wilde iets waar ik een blik op kon werpen
Raspbian installeren in Raspberry Pi 3 B zonder HDMI - Aan de slag met Raspberry Pi 3B - Uw Raspberry Pi instellen 3: 6 stappen
Raspbian installeren in Raspberry Pi 3 B zonder HDMI | Aan de slag met Raspberry Pi 3B | Je Raspberry Pi 3 instellen: Zoals sommigen van jullie weten, zijn Raspberry Pi-computers best geweldig en kun je de hele computer op een klein bordje krijgen. De Raspberry Pi 3 Model B heeft een quad-core 64-bit ARM Cortex A53 geklokt op 1,2 GHz. Dit zet de Pi 3 ongeveer 50
Weerklok: 11 stappen (met afbeeldingen)
Weerklok: update met elektrisch schema en Fritzing-schema Ik maak twee premissen: dit is mijn eerste Instructable Ik ben een onwetende Italiaan die geen Engels heeft gestudeerd op school, en daarom heb ik om hulp gevraagd aan:https://translate.google.itStart met dank af
Weerklok: 15 stappen (met afbeeldingen)
Weerklok: geweldig uitziende desktopklok met datum & weerweergave