Innehållsförteckning:
- Steg 1: Hämta alla nödvändiga artiklar
- Steg 2: Gör din Raspberry Pi redo
- Steg 3: Anslut allt tillsammans
- Steg 4: Skapa din databas
- Steg 5: Dags för koden
- Steg 6: Prova
Video: Fanair: en väderstation för ditt rum: 6 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:37
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ö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
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:
- 'sudo raspi-config'
- 'Gränssnittsalternativ'
- '1 tråd'
- Gör det möjligt
- 'sudo nano /boot/config.txt'
- Lägg till den här raden i filen: 'dtoverlay = w1-gpio'
- 'sudo reboot'
SPI:
- 'sudo raspi-config'
- 'Gränssnittsalternativ'
- 'SPI'
- Gör det möjligt
- 'sudo reboot'
- 'sudo nano /boot/config.txt'
- Sök efter 'dtparam = spi = on' och kommentera den genom att ta bort hashtaggen.
- 'sudo apt-get install python3-dev
Smbus:
- 'sudo raspi-config'
- 'Gränssnittsalternativ'
- 'I2C'
- Gör det möjligt
- 'sudo reboot'
- 'sudo apt-get install -y python-smbus'
- 'sudo apt-get install -y i2c-tools'
- 'sudo nano /boot/config.txt'
- 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:
SmartBox - Smart Home System för ditt rum: 6 steg
SmartBox - Smart Home System för ditt rum: Hej alla! I den här instruktören kommer jag att förklara för dig hur du skapar ett smart rumssystem. Detta system innehåller två enheter: en allmän enhet med en fuktsensor och temperatursensor som mäter den nuvarande livskvaliteten i ditt rum. Du w
Hur automatiserar du ditt rum med Arduino? Del 1: 5 steg
Hur automatiserar du ditt rum med Arduino? Del 1: Jag ville alltid fjärrstyra mitt rum, så jag bestämde mig för att skapa ett system som tillåter mig att göra det. Om du vill lära dig hur? då uppmanar jag dig att följa dessa steg nedan
Väderstation med Arduino, BME280 och display för att se trenden inom de senaste 1-2 dagarna: 3 steg (med bilder)
Väderstation Med Arduino, BME280 & Display för att se trenden under de senaste 1-2 dagarna: Hej! Här på instruerbara väderstationer har redan införts. De visar det aktuella lufttrycket, temperaturen och luftfuktigheten. Vad de saknade hittills var en presentation av kursen under de senaste 1-2 dagarna. Denna process skulle ha
Larmet: Påminnelse om att lämna ditt rum: 5 steg
Larmet: Påminnelse om att lämna ditt rum: Detta är ett larm för att tvinga dig att lämna ditt rum. När den inställda tiden har nått slocknar högtalaren i enheten och fortsätter att pipa tills du släcker lampan
Hur man automatiserar ditt rum med Google Assistant och Arduino ?: 7 steg
Hur man automatiserar ditt rum med Google Assistant och Arduino ?: Hej Instruktivt community, här är jag med ett annat automatiseringsprojekt, specifikt ett röststyrt system med Google Assistant, Arduino och några webbplattformar. Jag var en av de som inte gör det stöder röststyrning av enheter, eftersom