INHOUDSOPGAWE:

Raspberry Pi Barometer Weerklok: 9 stappe (met foto's)
Raspberry Pi Barometer Weerklok: 9 stappe (met foto's)

Video: Raspberry Pi Barometer Weerklok: 9 stappe (met foto's)

Video: Raspberry Pi Barometer Weerklok: 9 stappe (met foto's)
Video: Amersfoort: Presentatie Raspberry Pi2 2024, November
Anonim
Framboos Pi Barometer Weerklok
Framboos Pi Barometer Weerklok

In hierdie instruksies sal ek jou wys hoe om 'n basiese termometer / barometerhorlosie te bou met 'n Raspberry Pi 2 met 'n BMP180 I2C -sensor wat op 'n Adafruit 4 -syfer -7 -segment I2C -skerm vertoon word. Die Pi gebruik ook 'n DS3231 intydse I2C -klokmodule om tyd te hou wanneer die Pi weer begin word.

Die klok loop 5 sekondes elk deur vier fases. Eerstens toon dit die temperatuur in Celsius, dan in Fahrenheit, dan die barometriese druk in kPa *(dit loop hierdie getal na links as gevolg van 'n beperkte aantal syfers) en laastens toon dit 'n tendens van barometriese drukverandering tussen nou en die gemiddelde van die vorige uur.

Wat hierdie horlosie anders as die meeste maak, is dat dit 'n MySQL -databasis op die Pi gebruik om elke minuut data van die BMP180 aan te meld. Aangesien die huidige barometriese druk nie so waardevol is as om oor 'n gegewe tydperk op of af te beweeg nie, gebruik dit hierdie databasis om 'n gemiddeld vir 'n uur tussen 2 uur en 1 uur gelede te bereken en vergelyk dit met die huidige druk. 'N Beduidende toename in barometriese druk dui gewoonlik op 'n verbetering in die weerstoestande teenoor 'n groot daling wat 'n dreigende storm kan waarsku.

Die horlosie is gehuisves in 'n 3D -gedrukte ABS -behuizing met die BMP180 in 'n geventileerde dop aan die agterkant van die klok om te verhoed dat die hitte wat deur die Pi opgewek word, die temperatuurmetings beïnvloed. Ek gee die Autodesk 123D Design skema as u u eie wil druk.

Die horlosie word aangedryf met 'n standaard USB -muurwrat en trek in totaal ongeveer 450 mA.

Ek gaan nie te veel inligting oor die basiese opstelling van die Pi en I2C nie, aangesien dit in baie ander instruksies behandel is waarna ek skakels sal verskaf.

Stap 1: Berei die Pi voor

Berei die Pi voor
Berei die Pi voor

Stel u Raspberry Pi op - Besonderhede op Raspberrypi.org

  1. Laai u gekose Linux -verspreiding af en installeer dit op 'n SD -kaart - ek het Raspbian gebruik
  2. Koppel die pi aan en start dit op
  3. Ek het 'n mikro -WiFi -adapter gebruik om die pi aan my router te koppel, aangesien die horlosiehuis die Ethernet -poort verduister.
  4. Ek het 'n koplose modus gebruik waar u via die SSH met die pi konnekteer, dus al wat u nodig het, is die krag.
  5. Stel I2C op die Pi op - ek het hierdie instruksies op die Adafruit -webwerf gevolg.

Stap 2: Sluit alles aan

Draad alles op
Draad alles op

Al die modules wat ek in hierdie projek gebruik, is 5V -verdraagsaam en gebruik I2C, 'n tweedraads -protokol wat vir IC's gebruik word om met mekaar te kommunikeer, so die bedrading is redelik eenvoudig. Koppel alle VCC aan 5V, alle gronde saam en al die SCA- en SCL -lyne saam volgens die skema. Werk gedoen.

Stap 3: Toets u I2C

Toets u I2C
Toets u I2C

'N Deel van die I2C -installasie is om i2cdetect uit te voer, wat soos die aangehegte prentjie moet lyk as alles reg is.

Hieronder is die ooreenstemmende adresse

  1. 0x70 = 7 segment vertoon
  2. 0x77 = BMP180 Termometer / Barometersensor
  3. 0x68 = DS3231 Real Time Clock -module
  4. 0x57 = DS3231 aan boord van EEPROM om alarmdata te stoor.

Stap 4: Installeer MySQL en PhpMyAdmin

Installeer MySQL en PhpMyAdmin
Installeer MySQL en PhpMyAdmin

Die installering van mySQL is redelik eenvoudig as u die tutoriaal hier volg

sudo apt-get installeer mysql-bediener

Ek het ook phpMyAdmin geïnstalleer, 'n webwerf wat op Apache gebruik word en wat u kan gebruik om mySQL -databasisse te skep en te bestuur. Tutoriaal hier

sudo apt-get install phpmyadmin

Nadat ek dit geïnstalleer het, het ek 'n databasis genaamd BP180 opgestel met phpMyAdmin met die struktuur volgens die prent.

Ek maak ook gebruik van 'n luislangmodule genaamd mysqlDB waarmee u dit kan installeer

sudo apt-get install python-mysqldb

Stap 5: Installeer Python -modules

Laai die onderstaande python -modules af en installeer dit wat u sal gebruik om aan die sensors te koppel.

  1. Adafruit_BMP085 module
  2. SDL_DS3231 module
  3. Adafruit 7 segment module

Stap 6: Kode om by die databasis aan te meld

Die onderstaande kodefragment word gebruik om die temperatuur en barometriese druk aan te meld en word gebel uit 'n cron -script (Linux -geskeduleerde take) wat elke 5 minute loop. Lees hierdie tutoriaal om te leer hoe om crond te gebruik.

NB! Moenie die moeite doen om my koderingsvaardighede te vernietig nie; ek is nie 'n ontwikkelaar nie, en ja, daar is waarskynlik 'n miljoen beter, vinniger, gladder en skoner maniere om dit te doen

U sal sien dat die temperatuur met 7 grade verlaag word, wat gelykstaande is aan die hitte wat deur die Raspberry Pi opgewek word, selfs met die BMP180 aan die buitekant van die behuizing. Toe ek dit oorspronklik in die huis gehad het, was dit ongeveer 15 grade warmer as die omgewing. Dit lyk redelik lineêr, maar ek het nie die geleentheid gehad om uiterstes te toets nie. Terugvoer van u ervarings sal waardeer word.

Stap 7: Kode vir vertoningstemp

Kode om temp te vertoon
Kode om temp te vertoon
Kode om temperatuur te vertoon
Kode om temperatuur te vertoon
Kode om temp te vertoon
Kode om temp te vertoon
Kode om temperatuur te vertoon
Kode om temperatuur te vertoon

Hierdie kode word volgens die inleiding deur die skerm vertoon.

Weereens, ek is nie 'n ontwikkelaar nie, so die kode is regtig rof, maar dit werk

Stap 8: 3D -gedrukte omhulsel

3D -gedrukte omhulsel
3D -gedrukte omhulsel
3D -gedrukte omhulsel
3D -gedrukte omhulsel
3D -gedrukte omhulsel
3D -gedrukte omhulsel
3D -gedrukte omhulsel
3D -gedrukte omhulsel

Die volgende is die ontwerp van die omhulsel. Dit was nogal 'n uitdaging, aangesien die vorm geneig is om te buig omdat dele van die buitenste dop slegs 2 mm dik is. Ek het eers 'n bespreking van die Pi en al die dele gemaak en toe die omhulsel daar rondom ontwerp. Die afdruk duur ongeveer 7 uur op my RapMan 3.2 (wat 'n redelik stadige drukker is) op 'n diepte van 0,25 lae.

Die aangehegte skema is uitgevoer in Autodesk 123D Design, wat ek dink 'n fantastiese stuk gratis sagteware is.

Let op dat sommige gate, soos die wat nodig is om die Pi te monteer, nie in die ontwerp is nie, aangesien dit beter is om dit later te boor as u druk effens krom raak. Bestaande hand 'n 3 mm boor is al wat jy nodig het. Merk die diepte op die stuk met 'n paar maskeerband, sodat u nie per ongeluk deur u afdruk van 7 uur gaan soos ek nie.

Stap 9: Dinge om te doen

Dinge om te doen
Dinge om te doen
  1. Die Real Time Clock was 'n toevoeging nadat die omhulsel vir die 5de keer gedruk is, sodat dit tans warm aan die kant van die omhulsel vasgeplak word, wat nie goed lyk nie, so ek wil die ontwerp weer doen en 'n plek daarvoor byvoeg.
  2. Die helderheid van die 7 -segment -skerm is tans die ligste, wat nie optimaal is vir sterk ligstoestande nie. Ek wil graag 'n fotoresistent aan die bokant van die omhulsel byvoeg en die helderheid van die 7 segmente aanpas op grond van die omgewingstoestande.
  3. Daar is 'n paar klein ontwerpprobleme met die basiese krake wat ook opgelos sal word.
  4. Enige idees is welkom.

Ek hoop dat u hierdie instruksies geniet het en dat dit inspirerend genoeg was om aan die gang te kom. Die idee is om 'n platform te bied wat u kan gebruik om u eie idees by te voeg. Hê pret!

Aanbeveel: