Innehållsförteckning:
- Steg 1: Förbered Pi
- Steg 2: Koppla upp allt
- Steg 3: Testa din I2C
- Steg 4: Installera MySQL och PhpMyAdmin
- Steg 5: Installera Python -moduler
- Steg 6: Kod för att logga till databas
- Steg 7: Kod för visningstemp
- Steg 8: 3D -tryckt hölje
- Steg 9: Saker att göra
Video: Raspberry Pi Barometer väderklocka: 9 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:41
I denna instruerbara visar jag dig hur du bygger en grundläggande termometer / barometerklocka med en Raspberry Pi 2 med en BMP180 I2C -sensor som visas på en Adafruit 4 -siffrig 7 -segment I2C -skärm. Pi använder också en DS3231 realtid I2C klockmodul för att hålla tiden när Pi startas om.
Klockan går igenom fyra steg i 5 sekunder vardera. Först visar det temperaturen i Celsius, sedan i Fahrenheit sedan barometertrycket i kPa *(det går detta nummer till vänster på grund av begränsat antal siffror) och slutligen visar det en trend med barometriskt tryckförändring mellan nu och genomsnittet av föregående timme.
Det som gör den här klockan annorlunda än de flesta är att den använder en MySQL -databas på Pi för att logga data från BMP180 varje minut. Eftersom det nuvarande barometriska trycket inte är lika värdefullt som dess rörelse upp eller ner under en viss tidsperiod, använder den denna databas för att beräkna ett genomsnitt för en timme mellan 2 timmar och 1 timme sedan och jämför det med det aktuella trycket. En signifikant ökning av barometertrycket indikerade vanligtvis en förbättring av väderförhållandena jämfört med ett stort fall kan varna för en överhängande storm.
Klockan är inrymd i ett 3D -tryckt ABS -hus med BMP180 i ett ventilerat lock på baksidan av klockan för att förhindra att värmen som genereras av Pi påverkar temperaturavläsningarna. Jag tillhandahåller Autodesk 123D Design -schemat om du vill skriva ut din egen.
Klockan drivs med en vanlig USB -väggvarta och drar sammanlagt cirka 450 mA.
Jag kommer inte gå in på för mycket detaljer om den grundläggande installationen av Pi och I2C eftersom detta har täckts i många andra instruktioner som jag kommer att ge länkar till.
Steg 1: Förbered Pi
Ställ in din Raspberry Pi - Detaljer på Raspberrypi.org
- Ladda ner och installera din valda Linux -distribution på ett SD -kort - jag använde Raspbian
- Anslut pi och starta upp den
- Jag använde en mikro WiFi -adapter för att ansluta pi till min router när klockhuset höljer Ethernet -porten.
- Jag använde huvudlöst läge där du ansluter till pi med SSH så allt du behöver ansluta är strömmen.
- Konfigurera I2C på Pi - jag följde dessa instruktioner på Adafruit -webbplatsen.
Steg 2: Koppla upp allt
Alla moduler jag använder i detta projekt är 5V -toleranta och använder I2C som är ett 2 -trådsprotokoll som används för IC: er för att kommunicera med varandra, så ledningarna är ganska enkla. Anslut alla VCC till 5V, alla Grounds tillsammans och alla SCA- och SCL -linjerna tillsammans enligt schemat. Jobbet färdig.
Steg 3: Testa din I2C
En del av I2C -installationen är att köra i2cdetect som ska se ut som den bifogade bilden om allt är korrekt anslutet.
Nedan visas matchande adresser
- 0x70 = 7 segmentvisning
- 0x77 = BMP180 Termometer / barometersensor
- 0x68 = DS3231 modul i realtid
- 0x57 = DS3231 ombord på EEPROM för lagring av larmdata.
Steg 4: Installera MySQL och PhpMyAdmin
Att installera mySQL är ganska rakt fram om du följer handledningen här
sudo apt-get installera mysql-server
Jag installerade också phpMyAdmin som är en webbplats som körs på Apache som du kan använda för att skapa och hantera mySQL -databaser. Handledning här
sudo apt-get install phpmyadmin
När den väl installerades skapade jag en databas som heter BP180 med hjälp av phpMyAdmin med strukturen enligt bilden.
Jag använder också en python -modul som heter mysqlDB som du kan installera med
sudo apt-get install python-mysqldb
Steg 5: Installera Python -moduler
Ladda ner och installera nedanstående python -moduler som du kommer att använda för att ansluta till sensorerna.
- Adafruit_BMP085 modul
- SDL_DS3231 -modul
- Adafruit 7 segment modul
Steg 6: Kod för att logga till databas
Nedanstående kodavsnitt används för att logga temperatur och barometriskt tryck och anropas från ett cron -skript (Linux -schemalagda uppgifter) som körs var 5: e minut. För att lära dig hur du använder crond, kolla in den här självstudien.
OBS! Bry dig inte om att slänga mina kodningskunskaper, jag är ingen utvecklare så ja det finns nog en miljon bättre, snabbare, smidigare, renare sätt att göra detta
Du kommer att märka i koden temperaturen sjunker med 7 grader vilket motsvarar värmen som genereras av Raspberry Pi även med BMP180 monterad på utsidan av huset. När jag ursprungligen hade det inne i huset var det cirka 15 grader varmare än omgivande. Det verkar vara ganska linjärt, men jag har inte haft möjlighet att testa några ytterligheter. Återkoppling av dina erfarenheter uppskattas.
Steg 7: Kod för visningstemp
Denna kod kallas för att cykla genom displayen enligt introduktionen.
Återigen, jag är ingen utvecklare så koden är riktigt grov, men det fungerar
Steg 8: 3D -tryckt hölje
Nästa är utformningen av höljet. Detta var ganska utmanande eftersom formen är benägen att vrida sig eftersom delar av det yttre skalet bara är 2 mm tjocka. Jag ritade först mock -ups av Pi och alla delar och designade sedan höljet runt det. Utskriften tog cirka 7 timmar på min RapMan 3.2 (vilket är en ganska långsam skrivare) på 0,25 lager djup.
Den bifogade schemat är gjort i Autodesk 123D Design som jag tycker är en fantastisk gratis mjukvara.
Observera att några av hålen som de som behövs för att montera Pi inte är i designen, eftersom det är bättre att borra dessa efteråt om ditt tryck snedvrider lite. Stadig hand en 3 mm borr är allt du behöver. Markera djupet på biten med lite maskeringstejp så att du inte råkar gå rakt igenom ditt 7 timmars tryck som jag gjorde.
Steg 9: Saker att göra
- Realtidsklockan var ett tillägg efter att höljet trycktes för femte gången så det är för närvarande varmt limt på sidan av höljet vilket inte ser bra ut så jag skulle vilja göra om designen och lägga till en plats för den.
- Ljusstyrkan på 7 -segmentskärmen är för närvarande inställd på den lättaste, vilket inte är optimalt för starka ljusförhållanden. Jag skulle vilja lägga till ett fotomotstånd på toppen av höljet och justera ljusstyrkan på 7 segment baserat på omgivande ljusförhållanden.
- Det finns några mindre designproblem med bassprickorna som också kommer att åtgärdas.
- Alla idéer är välkomna.
Jag hoppas att du tyckte om detta instruerbara och tyckte att det var tillräckligt inspirerande för att få dig att gå. Tanken är att tillhandahålla en plattform som du kan använda för att lägga till dina egna idéer. Ha så kul!
Rekommenderad:
Tidvatten- och väderklocka: 9 steg (med bilder)
Tidvatten- och väderklocka: Även om du kan köpa analoga tidvattenklockor som har en enda hand som anger om tidvattnet är högt eller lågt eller någonstans däremellan, var det jag ville ha något som skulle berätta för mig vid vilken tidvatten. Jag ville ha något jag kunde titta på
Raspi-Nextion väderklocka: 7 steg
Raspi-Nextion väderklocka: Att se så många olika klockor byggda med arduino och hallon Pi inspirerade mig. Jag ville också göra en. Jag började med att använda en arduino mega med en ESP8266 men fann att 8266 wifi hade för många hicka. Jag bestämde mig för att använda en extra Pi som jag hade (Raspb
Väderklocka: 11 steg (med bilder)
Väderklocka: Uppdatering med elschema och Fritzing -schemaJag gör två premisser: Det här är min första instruktör Jag är en okunnig italienare som inte har studerat engelska i skolan, och det är därför jag bad om hjälp till: https: //translate.google.itStart med tack
Väderklocka: 15 steg (med bilder)
Väderklocka: Snygg skrivbordsklocka med datum & vädervisning
ESP8266 väderklocka: 6 steg (med bilder)
ESP8266 Weather Clock: Jag är mycket stolt över din ankomst och välkommen till dig