Indholdsfortegnelse:

Fanair: en vejrstation til dit værelse: 6 trin (med billeder)
Fanair: en vejrstation til dit værelse: 6 trin (med billeder)

Video: Fanair: en vejrstation til dit værelse: 6 trin (med billeder)

Video: Fanair: en vejrstation til dit værelse: 6 trin (med billeder)
Video: Flugt fra hackere Tilbage til opgaven grind.. Dead pmc's inc 2024, November
Anonim
Fanair: en vejrstation til dit værelse
Fanair: en vejrstation til dit værelse

Der er utallige måder at finde ud af det aktuelle vejr på, men så kender du kun vejret udenfor. Hvad hvis du vil vide vejret i dit hus, inde i et bestemt rum? Det er det, jeg forsøger at løse med dette projekt.

Fanair bruger flere sensorer til at registrere:

  • temperatur
  • fugtighed
  • lys
  • visse gasser
  • lufttryk

Det er meget kompakt og gør brug af Raspberry Pi 3 B, til at hente værdierne, gemme dem i en MySQL -database og derefter gøre dem let tilgængelige på et websted. Inkluderet i koden og webstedet er muligheden for at få faktiske vejrdata for din placering, så webstedet også kan bruges til at kontrollere vejret udefra.

Trin 1: Få alle de nødvendige varer

Få alle de nødvendige varer
Få alle de nødvendige varer

Først og fremmest får du brug for grundlæggende elektronik som ledninger / jumperkabler. Hvis du planlægger at lodde alt sammen som et permanent projekt, skal du naturligvis også bruge et loddejern, lodde og for din egen komfort et printkort til at lodde alt til.

For mere specifikke varer lavede jeg denne stykliste.

  • Raspberry Pi 3 B
  • MPC3008-8-kanals 10-bit ADC
  • AM2301 Termometer temperatur- og luftfugtighedssensor
  • WR Rademacher WR-tyoe 930-1 PCB
  • ABS -kuffert til prototyping (sort)
  • LDR
  • MQ135 gassensor
  • 2x BC517 Darlington -transistor
  • RGB LED
  • Modstandspakke
  • Summer
  • Ledninger
  • BMP280 Barometer
  • Stille USB -blæser (5V)

Alt sammen bør dette koste omkring € 110. Husk på, at den samlede pris er en tilnærmelse. Mit projekt har også en LCD -skærm på billedet, men det er ikke forbundet, da der ikke var nok plads i mit tilfælde, så det er ikke inkluderet i den instruerbare.

Trin 2: Gør din Raspberry Pi klar

Få din Raspian Jessie med Pixel -operativsystem fra det officielle Raspberry Pi -websted, og når det er downloadet, skal du pakke det ud. Du får en billedfil. For at få det på Pi skal du skrive det til SD-kortet ved hjælp af Win32 Disk Imager. Når den er installeret, skal du vælge billedfilen og det drev, som du har SD-kort i. Tryk derefter på skrive og vent, indtil den er færdig.

Når den er færdig, skal du klikke på dit SD-kort i File Explorer og åbne filen kaldet 'cmdline.txt', gå til slutningen af tekstfilen lige før rootwait og skrive 'ip = 254.169.10.2' med mellemrum selvfølgelig. Når du har gemt det, skal du højreklikke et sted inde i vinduet og oprette en ny fil kaldet 'ssh'. Bemærk, at denne fil ikke har en filtypenavn. For at sikre, at den ikke har en udvidelse, skal du klikke på 'vis' i filudforskeren og markere 'skjulte filer'. Hvis den omdøber den og sletter udvidelsen, så den bare læser 'ssh'.

Når det er gjort, kan du endelig lægge dit SD-kort i Raspberry Pi. Download en ssh -klient (jeg anbefaler MobaXterm). Og opret forbindelse med ssh med den IP, du tidligere har angivet '254.169.10.2'. Brugernavnet er 'pi', adgangskoden 'hindbær'. Hvis du vil, kan du ændre adgangskoden ved at skrive kommandoen 'sudo passwd' i terminalen og følge instruktionerne. Da vi vil bruge en god del af SD-kortet til Fanair, bør du udvide den tilgængelige lagerplads ved at skrive 'sudo rapi-config' ved at vælge 'Avancerede indstillinger' og derefter 'Udvid filsystem'. Hvis du bliver bedt om det, skal du genstarte.

Vi vil bruge 1-wire, SPI og I2C interface. For at kunne bruge dem skal du først konfigurere dem!

Trin 3: Tilslut alt sammen

Forbind alt sammen
Forbind alt sammen
Forbind alt sammen
Forbind alt sammen

Det er tid til at lave et kredsløb! Første gang skal du nok prøve det på et brødbræt, men hvis du ikke har tid til det, kan du prøve at lodde det sammen.

Kredsløbet, du skal bruge, ligner ovenstående, for nemheds skyld er der også en brødbrætversion inkluderet.

Trin 4: Opret din database

For effektivt at gemme alle de data, du modtager, vil vi bruge en TSQL MySQL -database. Inden du installerer MySQL, lad os sikre os, at alt er opdateret ved at skrive et par kommandoer i terminalen:

  • 'sudo apt-get update'
  • 'sudo apt-get upgrade'
  • 'sudo apt-get dist-upgrade'

Accepter hver prompt ved at skrive 'y' og indtast.

Sådan installeres MySQL -type:

  • 'sudo apt-get install mysql-server'
  • 'sudo apt-get install mysql-client'

Opret en root -adgangskode efter eget valg.

Når det er færdigt med at installere login ved hjælp af:

'mysql -uroot -p'

Og indtaster din adgangskode.

Få Fanair -koden fra My Github! Klik på 'Klon eller download' og derefter på 'Download ZIP'. Pak koden ud i en mappe efter eget valg. Forespørgslen efter oprettelse af den fuldt operationelle database findes i databasemappen. Åbn filen, kopier koden og indsæt den i terminalen med MySQL åben. Klik derefter på enter, og databasen er færdig!

Trin 5: Tid til koden

For at gøre brug af alle sensorerne skal du naturligvis køre et program. Heldigvis er koden allerede udført (for det meste), og vi downloadede den allerede, da vi fik databasen SQL -forespørgsel.

Som jeg sagde, er der et par ting, der stadig skal ændres / tilføjes, for at programmet fungerer korrekt. Først og fremmest bruger programmet Darksky API til at få vejrdata baseret på længdegrad og breddegrad. For at gøre brug af det skal du tilmelde dig. De første 1000 opkald er gratis, og bagefter koster det $ 0,0001 pr. Opkald. Jeg har hørt, at hvis du ikke betaler, bliver din konto blokeret. For at være fair $ 0.0001 pr. Opkald er ret billigt. Fanair kalder de nyeste data hver time, hvilket betyder, at det på et år, hvis det køres på fuld tid, kun vil koste dig 0,876 $. Du får også 41 dage gratis, hvis Fanair kører på fuld tid.

Når du er tilmeldt, skal du kigge efter din API -nøgle. Se efter din placerings længde- og breddegrad på google maps, eller prøv at google den. Opret en ny tekstfil Fanair's rodmappe (med klasser, main.py …). Navngiv filen 'key_location.txt'. Åbn tekstfilen, og indsæt din Darksky API -nøgle på første linje. På den anden linje skal du indsætte din længdegrad og på den tredje linje indsætte din breddegrad (begge i decimalformat). Når du er færdig med at gemme filen.

I den samme mappe skal du oprette en anden tekstfil kaldet 'database_dsn.txt'. Den første linje skal sige 'localhost'. Den anden linje er 'root'. På den tredje linje skal du skrive din adgangskode, som du tidligere lavede til databasen, og den fjerde og sidste linje skulle du skrive 'fanair'.

Højreklik på main.py -filen, og vælg rediger. 'Fanair = Fanair (5, 26, 17, 27, 22, 4, "AM2301", 1, 0, 0, 0, "key_location.txt", "database_dsn.txt")' skal ændres. Hvis du fulgte billedet, skulle de første 5 værdier ændres fra '5, 26, 17, 27, 22, 4' til '20, 21, 26, 19, 13 '. '/home/muhsin/Applications/Fanair' bør også ændres til din Fanair -rodsti (hvor main.py er). Sørg for at sætte et skråstreg foran 'hjem', men ikke efter 'Fanair'.

Nu er det hele fantastisk, men koden skal komme i Pi. Heldigvis for os eksisterer sftp -protokollen. For at sætte filerne på Pi skal du bruge en sftp -klient som FileZilla, eller hvis du besluttede at bruge MobaXterm, kan du nemt uploade filerne i sftp -grænsefladen til venstre for terminalen.

Efter min erfaring får jeg ikke altid den rigtige dato og det rigtige tidspunkt i Raspberry Pi. For at sikre, at du modtager den korrekte datetime, foreslår jeg at følge denne vejledning: Raspberry Pi -synkroniseringsdato og -tidspunkt.

Og sidst men ikke mindst skal et par biblioteker installeres, og et par grænseflader skal aktiveres:

'sudo apt-get install build-essential python-dev'

Adafruit DHT:

'pip3 installer adafruit_python_dht'

1-Wire:

  1. 'sudo raspi-config'
  2. 'Grænsefladeindstillinger'
  3. '1 Wire'
  4. Aktiver
  5. 'sudo nano /boot/config.txt'
  6. Tilføj denne linje i filen: 'dtoverlay = w1-gpio'
  7. 'sudo genstart'

SPI:

  1. 'sudo raspi-config'
  2. 'Grænsefladeindstillinger'
  3. 'SPI'
  4. Aktiver
  5. 'sudo genstart'
  6. 'sudo nano /boot/config.txt'
  7. Søg efter 'dtparam = spi = on', og kommenter det ved at fjerne hashtagget.
  8. 'sudo apt-get install python3-dev

Smbus:

  1. 'sudo raspi-config' '
  2. 'Grænsefladeindstillinger'
  3. 'I2C'
  4. Aktiver
  5. 'sudo genstart'
  6. 'sudo apt-get install -y python-smbus'
  7. 'sudo apt-get install -y i2c-tools'
  8. 'sudo nano /boot/config.txt'
  9. Søg efter dtparam = i2c_arm = on, og kommenter det ved at fjerne hashtagget.

kolbe

pip3 installere kolbe

mysql stik

'pip3 install -Iv mysql -connector == 2.1.4'

spidev

'pip3 installer py-spidev'

darksky

'pip3 installer darkskylib'

Trin 6: Prøv det

Hvis du har nået det så langt, skal du trykke på dig selv på bagsiden. Nu er alt gjort for at få Fanair til at fungere ordentligt. Så for at teste det, skriv 'cd ""' '. Filplacering er "/home/pi" for eksempel hvis du lige har indsat i din hjemmekatalog. Skriv derefter 'python3 main.py' og lad den hvile i 15 minutter, så den vil have data i databasen, når den er færdig. Tryk derefter på 'ctrl + c' stop stop programmet og skriv 'python3 Flask.py'. For at se, om dit websted fungerer, skal du surfe til din Pi's IP -adresse, du lavede med ': 5000' efter det (som dette: 169.254.10.1:5000 ').

Sådan får du det til at køre automatisk efter opstart:

'sudo nano /etc/rc.local'

I slutningen af filen MEN FØR afslut 0:

'sudo python3 "/main.py" &'

'sudo python3 "/Flask.py" &'

Tillykke nu skal scriptet køre fra opstart og DU ER FÆRDIG! Hvis du planlægger at holde projektet kørende og ikke allerede har gjort det, vil jeg foreslå, at du lodder alt sammen, bare for at sikre, at alt bliver ved med at være. Selvom hvis du ikke spiller for at flytte det meget rundt, fungerer et brødbræt selvfølgelig også.

Anbefalede: