Innholdsfortegnelse:

Fanair: en værstasjon for rommet ditt: 6 trinn (med bilder)
Fanair: en værstasjon for rommet ditt: 6 trinn (med bilder)

Video: Fanair: en værstasjon for rommet ditt: 6 trinn (med bilder)

Video: Fanair: en værstasjon for rommet ditt: 6 trinn (med bilder)
Video: Escape from Hackers Tilbake til oppgaven grind.. Dead pmc's inc 2024, November
Anonim
Fanair: en værstasjon for rommet ditt
Fanair: en værstasjon for rommet ditt

Det er utallige måter å finne ut gjeldende vær, men da vet du bare været utenfor. Hva om du vil vite været inne i huset ditt, inne i et bestemt rom? Det er det jeg prøver å løse med dette prosjektet.

Fanair bruker flere sensorer for å registrere:

  • temperatur
  • luftfuktighet
  • lys
  • visse gasser
  • Lufttrykk

Den er veldig kompakt og bruker Raspberry Pi 3 B for å få verdiene, lagre dem i en MySQL -database og deretter gjøre dem lett tilgjengelige på et nettsted. Inkludert i koden og nettstedet er muligheten til å få faktiske værdata for posisjonen din, slik at nettstedet også kan brukes til å kontrollere vær utenfor.

Trinn 1: Få alle de nødvendige elementene

Få alle de nødvendige elementene
Få alle de nødvendige elementene

Først av alt trenger du grunnleggende elektronikk som ledninger / jumperkabler. Hvis du planlegger å lodde alt sammen som et permanent prosjekt, vil du åpenbart også trenge et loddejern, loddetinn, og for din egen komfort en PCB å lodde alt til.

For mer spesifikke varer lagde jeg denne materialliste.

  • Raspberry Pi 3 B
  • MPC3008-8-kanals 10-biters ADC
  • AM2301 Termometer temperatur- og fuktighetssensor
  • WR Rademacher WR-tyoe 930-1 PCB
  • ABS -deksel for prototyping (svart)
  • LDR
  • MQ135 gassensor
  • 2x BC517 Darlington -transistor
  • RGB LED
  • Motstandspakke
  • Summer
  • Ledninger
  • BMP280 Barometer
  • Stille USB -vifte (5V)

Til sammen bør dette koste ca € 110. Husk at den totale prisen er en tilnærming. Prosjektet mitt har også en LCD -skjerm på bildet, men det er ikke tilkoblet siden det ikke var nok plass i mitt tilfelle, så det er ikke inkludert i instruksjonsboken.

Trinn 2: Gjør din Raspberry Pi klar

Få Raspian Jessie med Pixel -operativsystemet fra det offisielle Raspberry Pi -nettstedet, og når det er lastet ned, pakker du det ut. Du får en bildefil. For å få den på Pi må du skrive den til SD-kortet ved hjelp av Win32 Disk Imager. Når den er installert, velger du bildefilen og stasjonen der du har SD-kortet. Trykk deretter på skrive og vent til det er ferdig.

Når den er ferdig, klikker du på SD-kortet i File Explorer og åpner filen som heter 'cmdline.txt'. Gå til slutten av tekstfilen like før rootwait og skriv 'ip = 254.169.10.2' med mellomrom selvfølgelig. Etter at du har lagret det, bør du høyreklikke et sted inne i vinduet og opprette en ny fil som heter 'ssh'. Legg merke til at denne filen ikke har filtypen. For å sikre at den ikke har en utvidelse, klikker du på "visning" i filutforskeren og merker av for "skjulte filer". Hvis den gir nytt navn til den og sletter utvidelsen, slik at den bare leser 'ssh'.

Etter at det er gjort kan du endelig sette SD-kortet i Raspberry Pi. Last ned en ssh -klient (jeg anbefaler MobaXterm). Og koble til med ssh med IP -en du angav tidligere '254.169.10.2'. Brukernavnet er 'pi', passordet 'bringebær'. Hvis du vil, kan du endre passordet ved å skrive kommandoen 'sudo passwd' i terminalen og følge instruksjonene. Siden vi skal bruke en god del av SD-kortet for Fanair, bør du utvide tilgjengelig lagringsplass ved å skrive 'sudo rapi-config' ved å velge 'Avanserte alternativer' og deretter 'Utvid filsystem'. Hvis du blir bedt om det, start på nytt.

Vi bruker grensesnittet 1-wire, SPI og I2C. For å kunne bruke dem må du først sette dem opp!

Trinn 3: Koble alt sammen

Koble alt sammen
Koble alt sammen
Koble alt sammen
Koble alt sammen

Det er på tide å lage en krets! Første gang bør du sannsynligvis prøve det på et brødbrett, men hvis du ikke har tid til det, kan du prøve å lodde det sammen.

Kretsen du trenger ser ut som den ovennevnte. For enkelhets skyld er en brødbrettversjon også inkludert.

Trinn 4: Lag din database

For effektivt å lagre alle dataene du mottar, bruker vi en TSQL MySQL -database. Før du installerer MySQL, la oss kontrollere at alt er oppdatert ved å skrive inn noen få kommandoer i terminalen:

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

Godta hver ledetekst ved å skrive 'y' og skriv inn.

Slik installerer du MySQL -type:

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

Når du blir bedt om det, oppretter du et rotpassord etter eget valg.

Etter at det er installert pålogging ved å bruke:

'mysql -uroot -p'

Og skriver inn passordet ditt.

Få Fanair -koden fra My Github! Klikk på 'Klon eller last ned' og deretter på 'Last ned ZIP'. Pakk ut koden i en mappe du ønsker. Spørringen om å opprette den fullt operative databasen er i databasemappen. Åpne filen, kopier koden og lim den inn i terminalen med MySQL åpen. Klikk deretter enter og databasen er ferdig!

Trinn 5: Tid for koden

For å bruke alle sensorene må du åpenbart kjøre et program. Heldigvis er koden allerede utført (for det meste), og vi lastet den allerede ned når vi fikk databasen SQL -spørring.

Som jeg sa er det noen få ting som fortsatt må endres / legges til for at programmet skal fungere skikkelig. Først og fremst bruker programmet Darksky API for å få værdataene basert på lengdegrad og breddegrad. For å bruke det må du registrere deg. De første 1000 samtalene er gratis, og etterpå koster det $ 0,0001 per samtale. Jeg har hørt at hvis du ikke betaler, blir kontoen din blokkert. For å være rettferdig er $ 0,0001 per samtale ganske billig. Fanair ringer de nyeste dataene hver time, noe som betyr at hvis du kjører på heltid, vil det bare koste deg 0,876 dollar. Du får også 41 dager gratis hvis Fanair kjører på heltid.

Når du har registrert deg, se etter API -nøkkelen din. Se etter posisjonens lengdegrad og breddegrad på google maps, eller prøv å google den. Lag en ny tekstfil rotkatalogen til Fanair (med klasser, main.py …). Gi filen navnet "key_location.txt". Åpne tekstfilen og lim inn Darksky API -nøkkelen på første linje. Lim inn lengdegraden din på den andre linjen og på den tredje linjen lim inn breddegraden (begge i desimalformat). Når du er ferdig, lagrer du filen.

Opprett en annen tekstfil i samme katalog som heter 'database_dsn.txt'. Den første linjen skal si 'localhost'. Den andre linjen er 'root'. På den tredje linjen bør du skrive inn passordet ditt som du laget for databasen tidligere, og den fjerde og siste linjen bør du skrive 'fanair'.

Høyreklikk på main.py -filen og velg rediger. 'Fanair = Fanair (5, 26, 17, 27, 22, 4, "AM2301", 1, 0, 0, 0, "key_location.txt", "database_dsn.txt")' må endres. Hvis du fulgte bildet, bør de første 5 verdiene endres fra '5, 26, 17, 27, 22, 4' til '20, 21, 26, 19, 13 '. '/home/muhsin/Applications/Fanair' bør også endres til Fanair -rotbanen din (der main.py er). Sørg for å sette en skråstrek foran "hjem", men ikke etter "Fanair".

Nå er alt bra, men koden må komme inn i Pi. Heldigvis for oss eksisterer sftp -protokollen. For å sette filene på Pi bruker du en sftp -klient som FileZilla, eller hvis du bestemte deg for å bruke MobaXterm kan du enkelt laste opp filene i sftp -grensesnittet til venstre for terminalen.

Etter min erfaring får jeg ikke alltid riktig dato og klokkeslett i Raspberry Pi. For å være sikker på at du mottar riktig datotid, foreslår jeg at du følger denne guiden: Raspberry Pi -synkroniseringsdato og -tid.

Og sist men ikke minst må noen få biblioteker installeres, og noen få grensesnitt må aktiveres:

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

Adafruit DHT:

'pip3 installer adafruit_python_dht'

1-ledning:

  1. 'sudo raspi-config'
  2. 'Grensesnittalternativer'
  3. '1 ledning'
  4. Muliggjøre
  5. 'sudo nano /boot/config.txt'
  6. Legg til denne linjen i filen: 'dtoverlay = w1-gpio'
  7. 'sudo reboot'

SPI:

  1. 'sudo raspi-config'
  2. 'Grensesnittalternativer'
  3. 'SPI'
  4. Muliggjøre
  5. 'sudo reboot'
  6. 'sudo nano /boot/config.txt'
  7. Søk etter 'dtparam = spi = on' og kommenter den ved å fjerne hashtaggen.
  8. 'sudo apt-get install python3-dev

Smbus:

  1. 'sudo raspi-config' '
  2. 'Grensesnittalternativer'
  3. 'I2C'
  4. Muliggjøre
  5. 'sudo reboot'
  6. 'sudo apt-get install -y python-smbus'
  7. 'sudo apt-get install -y i2c-tools'
  8. 'sudo nano /boot/config.txt'
  9. Søk etter dtparam = i2c_arm = på og kommenter den ved å fjerne hashtaggen.

kolbe

pip3 installere kolbe

mysql -kontakt

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

spidev

'pip3 install py-spidev'

mørk himmel

'pip3 installer darkskylib'

Trinn 6: Prøv det

Hvis du har klart å komme så langt, kan du trykke på deg selv på baksiden. Nå er alt gjort for å få Fanair til å fungere skikkelig. Så for å teste det, skriv 'cd ""' '. Filplasseringen er "/home/pi" for eksempel hvis du nettopp limte inn i hjemmekatalogen din. Skriv deretter 'python3 main.py' og la den hvile i 15 minutter, så den vil ha data i databasen når den er ferdig. Etter det trykker du på 'ctrl + c' stopp stopp programmet og skriver 'python3 Flask.py'. For å se om nettstedet ditt fungerer, må du surfe til Pi -IP -adressen du lagde med ': 5000' etter det (som dette: 169.254.10.1:5000 ').

Slik får du det til å kjøre automatisk etter oppstart:

'sudo nano /etc/rc.local'

På slutten av filen MEN FØR avslutt 0:

'sudo python3 "/main.py" &'

'sudo python3 "/Flask.py" &'

Gratulerer nå, skriptet ditt bør kjøres fra oppstart, og du er ferdig! Hvis du planlegger å fortsette prosjektet og ikke allerede har gjort det, vil jeg foreslå at du lodder alt sammen, bare for å være sikker på at alt holder seg. Selv om du ikke spiller for å flytte det rundt mye, fungerer også et brødbrett selvfølgelig.

Anbefalt: