Innehållsförteckning:

Fanair: en väderstation för ditt rum: 6 steg (med bilder)
Fanair: en väderstation för ditt rum: 6 steg (med bilder)

Video: Fanair: en väderstation för ditt rum: 6 steg (med bilder)

Video: Fanair: en väderstation för ditt rum: 6 steg (med bilder)
Video: Formación URSA en Fanair 2023 2024, November
Anonim
Fanair: en väderstation för ditt rum
Fanair: en väderstation för ditt rum

Det finns otaliga sätt att ta reda på det aktuella vädret, men då vet du bara vädret utanför. Vad händer om du vill veta vädret i ditt hus, inuti ett specifikt rum? Det är vad jag försöker lösa med det här projektet.

Fanair använder flera sensorer för att känna av:

  • temperatur
  • fuktighet
  • ljus
  • vissa gaser
  • lufttryck

Den är mycket kompakt och använder Raspberry Pi 3 B för att få värdena, spara dem i en MySQL -databas och sedan göra dem lättillgängliga på en webbplats. Inkluderat i koden och webbplatsen är möjligheten att få faktiska väderdata för din plats så att webbplatsen kan användas för att kontrollera väder också.

Steg 1: Hämta alla nödvändiga artiklar

Få alla nödvändiga artiklar
Få alla nödvändiga artiklar

Först och främst behöver du grundläggande elektronik som kablar / bygelkablar. Om du planerar att lödda ihop allt som ett permanent projekt kommer du självklart också att behöva ett lödkolv, löd, och för din egen bekvämlighet ett PCB att lödda allt till.

För mer specifika artiklar gjorde jag den här materialförteckningen.

  • Raspberry Pi 3 B
  • MPC3008-8-kanals 10-bitars ADC
  • AM2301 Termometer temperatur- och luftfuktighetssensor
  • WR Rademacher WR-tyoe 930-1 PCB
  • ABS -fodral för prototyper (svart)
  • LDR
  • MQ135 gassensor
  • 2x BC517 Darlington -transistor
  • RGB LED
  • Motståndspaket
  • Summer
  • Trådar
  • BMP280 Barometer
  • Tyst USB -fläkt (5V)

Sammantaget borde detta kosta cirka € 110. Tänk på att det totala priset är en approximation. Mitt projekt har också en LCD -skärm på fotot men det är inte anslutet eftersom det inte var tillräckligt med utrymme i mitt fall, så det ingår inte i instruktionsboken.

Steg 2: Gör din Raspberry Pi redo

Skaffa din Raspian Jessie med Pixel -operativsystem från den officiella Raspberry Pi -webbplatsen och ladda ner den när du har laddat ner den. Du får en bildfil. För att få det på Pi måste du skriva det till SD-kortet med Win32 Disk Imager. När den är installerad väljer du bildfilen och enheten där du har SD-kortet. Tryck sedan på skriv och vänta tills det är klart.

När det är klart klickar du på ditt SD-kort i File Explorer och öppnar filen som heter 'cmdline.txt', gå i slutet av textfilen strax före rootwait och skriv 'ip = 254.169.10.2' med blanksteg runt förstås. När du har sparat det ska du högerklicka någonstans i fönstret och skapa en ny fil som heter 'ssh'. Observera att den här filen inte har ett filtillägg. För att se till att det inte har ett tillägg, klicka på "visa" i filutforskaren och markera "dolda filer". Om det byter namn på det och tar bort tillägget så det bara läser 'ssh'.

När det är klart kan du äntligen lägga ditt SD-kort i Raspberry Pi. Ladda ner en ssh -klient (jag rekommenderar MobaXterm). Och anslut med ssh med IP -adressen du ställde in tidigare '254.169.10.2'. Användarnamnet är 'pi', lösenordet 'hallon'. Om du vill kan du ändra lösenordet genom att skriva kommandot 'sudo passwd' i terminalen och följa instruktionerna. Eftersom vi kommer att använda en bra bit av SD-kortet för Fanair bör du utöka det tillgängliga lagringsutrymmet genom att skriva 'sudo rapi-config' genom att välja 'Avancerade alternativ' och sedan 'Expand File System'. Om du uppmanas starta om.

Vi kommer att använda gränssnittet med 1 tråd, SPI och I2C. För att kunna använda dem måste du först konfigurera dem!

Steg 3: Anslut allt tillsammans

Anslut allt tillsammans
Anslut allt tillsammans
Anslut allt tillsammans
Anslut allt tillsammans

Det är dags att göra en krets! Första gången borde du förmodligen prova det på en brödbräda, men om du inte har tid för det kan du försöka löda ihop det.

Kretsen du behöver ser ut som ovan, för enkelhets skull ingår också en brödbrädaversion.

Steg 4: Skapa din databas

För att effektivt spara all data du får kommer vi att använda en TSQL MySQL -databas. Innan du installerar MySQL, låt oss se till att allt är uppdaterat genom att skriva några kommandon i terminalen:

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

Acceptera varje prompt genom att skriva 'y' och ange.

För att installera MySQL -typ:

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

Skapa ett rotlösenord efter eget val.

När det är klart att installera inloggning med:

'mysql -uroot -p'

Och skriva ditt lösenord.

Få Fanair -koden från My Github! Klicka på "Klona eller ladda ner" och sedan på "Ladda ner ZIP". Packa upp koden i en valfri mapp. Frågan för att skapa den fullständigt operativa databasen finns i databasmappen. Öppna filen, kopiera koden och klistra in den i terminalen med MySQL öppen. Klicka sedan på enter och databasen är klar!

Steg 5: Dags för koden

För att kunna använda alla sensorer måste du självklart köra ett program. Lyckligtvis är koden redan klar (för det mesta), och vi laddade ner den redan när vi fick databasens SQL -fråga.

Som jag sa finns det några saker som fortfarande måste ändras / läggas till för att programmet ska fungera korrekt. Först och främst använder programmet Darksky API för att få väderdata baserat på longitud och latitud. För att använda den måste du registrera dig. De första 1000 samtalen är gratis och efteråt kostar det $ 0,0001 per samtal. Jag har hört att om du inte betalar blir ditt konto blockerat. För att vara rättvis är $ 0,0001 per samtal ganska billigt. Fanair ringer de senaste uppgifterna varje timme vilket innebär att om ett år körs på heltid kommer det bara att kosta dig 0,876 dollar. Du får också 41 dagar gratis om Fanair kör heltid.

När du har registrerat dig letar du efter din API -nyckel. Leta efter din plats longitud och latitud på google maps eller försök googla den. Skapa en ny textfil rotkatalogen för Fanair (med klasser, main.py …). Namnge filen 'key_location.txt'. Öppna textfilen och klistra in din Darksky API -nyckel på första raden. Klistra in din longitud på den andra raden och på den tredje raden klistra in din latitud (båda i decimalformat). Spara filen när du är klar.

Skapa en annan textfil i samma katalog som heter 'database_dsn.txt'. Den första raden ska säga "localhost". Den andra raden är "root". På den tredje raden ska du skriva ditt lösenord som du skapade för databasen tidigare, och den fjärde och sista raden ska du skriva 'fanair'.

Högerklicka på main.py -filen och välj redigera. 'Fanair = Fanair (5, 26, 17, 27, 22, 4, "AM2301", 1, 0, 0, 0, "key_location.txt", "database_dsn.txt")' måste ändras. Om du följde bilden bör de första 5 värdena ändras från '5, 26, 17, 27, 22, 4' till '20, 21, 26, 19, 13 '. '/home/muhsin/Applications/Fanair' bör också ändras till din Fanair -rotväg (där main.py är). Se till att sätta ett snedstreck framför "hem" men inte efter "Fanair".

Nu är det här bra men koden måste komma in i Pi. Lyckligtvis för oss finns sftp -protokollet. För att lägga filerna på Pi använder du en sftp -klient som FileZilla eller om du bestämde dig för att använda MobaXterm kan du enkelt ladda upp filerna i sftp -gränssnittet till vänster om terminalen.

Enligt min erfarenhet får jag inte alltid rätt datum och tid i Raspberry Pi. För att se till att du får rätt datetime föreslår jag att du följer den här guiden: Raspberry Pi -synkroniseringsdatum och -tid.

Och sist men inte minst måste några bibliotek installeras och några gränssnitt måste aktiveras:

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

Adafruit DHT:

'pip3 installera adafruit_python_dht'

1-tråd:

  1. 'sudo raspi-config'
  2. 'Gränssnittsalternativ'
  3. '1 tråd'
  4. Gör det möjligt
  5. 'sudo nano /boot/config.txt'
  6. Lägg till den här raden i filen: 'dtoverlay = w1-gpio'
  7. 'sudo reboot'

SPI:

  1. 'sudo raspi-config'
  2. 'Gränssnittsalternativ'
  3. 'SPI'
  4. Gör det möjligt
  5. 'sudo reboot'
  6. 'sudo nano /boot/config.txt'
  7. Sök efter 'dtparam = spi = on' och kommentera den genom att ta bort hashtaggen.
  8. 'sudo apt-get install python3-dev

Smbus:

  1. 'sudo raspi-config'
  2. 'Gränssnittsalternativ'
  3. 'I2C'
  4. Gör det möjligt
  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 efter dtparam = i2c_arm = on och kommentera den genom att ta bort hashtaggen.

flaska

pip3 installera kolv

mysql -kontakt

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

spidev

'pip3 installera py-spidev'

mörk himmel

'pip3 installera darkskylib'

Steg 6: Prova

Om du har lyckats ta dig så långt, tryck på dig själv på baksidan. Nu är allt gjort för att Fanair ska fungera ordentligt. Så för att testa det skriver du "cd" "". Filplatsen är "/home/pi" till exempel om du just klistrade in i din hemkatalog. Skriv sedan 'python3 main.py' och låt den vila i 15 minuter så att den kommer att ha data i databasen när den är klar. Efter det, tryck på 'ctrl + c' stoppa stoppa programmet och skriv 'python3 Flask.py'. För att se om din webbplats fungerar måste du surfa till din Pi: s IP -adress som du skapade med ': 5000' efter den (så här: 169.254.10.1:5000 ').

Så här kör du det automatiskt efter start:

'sudo nano /etc/rc.local'

I slutet av filen MEN INNAN avsluta 0:

'sudo python3 "/main.py" &'

'sudo python3 "/Flask.py" &'

Grattis nu, ditt manus ska köras från start och du är klar! Om du planerar att hålla projektet igång och inte redan har gjort det skulle jag föreslå att du lödde ihop allt, bara för att se till att allt stannar kvar. Även om du inte spelar för att flytta runt det mycket fungerar en brödbräda naturligtvis också.

Rekommenderad: