INHOUDSOPGAWE:

Fanair: 'n weerstasie vir u kamer: 6 stappe (met foto's)
Fanair: 'n weerstasie vir u kamer: 6 stappe (met foto's)

Video: Fanair: 'n weerstasie vir u kamer: 6 stappe (met foto's)

Video: Fanair: 'n weerstasie vir u kamer: 6 stappe (met foto's)
Video: Злые Призраки Обитают В Этом Доме | Evil Ghosts Inhabit This House 2024, November
Anonim
Fanair: 'n weerstasie vir u kamer
Fanair: 'n weerstasie vir u kamer

Daar is talle maniere om die huidige weer uit te vind, maar dan weet jy net die weer buite. Wat as u die weer in u huis, in 'n spesifieke kamer, wil weet? Dit is wat ek probeer oplos met hierdie projek.

Fanair gebruik verskeie sensors om te bepaal:

  • temperatuur
  • humiditeit
  • lig
  • sekere gasse
  • lugdruk

Dit is baie kompak en maak gebruik van die Raspberry Pi 3 B om die waardes te kry, dit in 'n MySQL -databasis op te slaan en dit dan maklik op 'n webwerf beskikbaar te stel. In die kode en webwerf is die moontlikheid om werklike weerdata vir u ligging te kry, sodat die webwerf ook gebruik kan word om weer buite te kontroleer.

Stap 1: Kry al die benodigde items

Kry al die benodigde items
Kry al die benodigde items

Eerstens benodig u basiese elektronika soos drade / springkabels. As u van plan is alles saam te soldeer as 'n permanente projek, het u natuurlik ook 'n soldeerbout, soldeer nodig, en vir u eie gemak 'n PCB om alles aan te soldeer.

Vir meer spesifieke items het ek hierdie materiaalbrief gemaak.

  • Framboos Pi 3 B
  • MPC3008-8-kanaals 10-bis ADC
  • AM2301 Termometer Temperatuur- en humiditeitsensor
  • WR Rademacher WR-tyoe 930-1 PCB
  • ABS -omhulsel vir prototipering (swart)
  • LDR
  • MQ135 gassensor
  • 2x BC517 Darlington -transistor
  • RGB LED
  • Weerstandspakket
  • Gonser
  • Drade
  • BMP280 Barometer
  • Stil USB -waaier (5V)

Dit alles kos ongeveer € 110. Hou in gedagte dat die totale prys 'n benadering is. My projek het ook 'n LCD -skerm op die foto, maar dit is nie verbind nie, want daar was nie genoeg ruimte in my geval nie, dus dit is nie ingesluit in die instruksies nie.

Stap 2: Maak u Raspberry Pi gereed

Haal u Raspian Jessie met Pixel -bedryfstelsel van die amptelike Raspberry Pi -webwerf af en pak dit uit sodra dit afgelaai is. U kry 'n prentlêer. Om dit op die Pi te kry, moet u dit met die Win32 Disk Imager op die SD-kaart skryf. Sodra dit geïnstalleer is, kies die prentlêer en die stasie waarin u SD-kaart is. Druk dan op skryf en wag totdat dit klaar is.

As dit klaar is, klik op u SD-kaart in File Explorer en maak die lêer met die naam 'cmdline.txt' oop, gaan aan die einde van die tekslêer net voor rootwait en skryf 'ip = 254.169.10.2' met spasies natuurlik. Nadat u dit gestoor het, moet u met die rechtermuisknop êrens in die venster klik en 'n nuwe lêer met die naam 'ssh' skep. Let daarop dat hierdie lêer nie 'n lêeruitbreiding het nie. Om seker te maak dat dit nie 'n uitbreiding het nie, klik op 'view' in lêerverkenner en merk 'verborge lêers'. As dit die naam hernoem en die uitbreiding verwyder, lees dit net 'ssh'.

Nadat dit klaar is, kan u u SD-kaart uiteindelik in die Raspberry Pi plaas. Laai 'n ssh -kliënt af (ek beveel MobaXterm aan). En maak verbinding met ssh met die IP wat u vroeër '254.169.10.2' gestel het. Die gebruikersnaam is 'pi', die wagwoord 'framboos'. As u wil, kan u die wagwoord verander deur die opdrag 'sudo passwd' in die terminaal te tik en die instruksies te volg. Aangesien ons 'n goeie deel van die SD-kaart vir Fanair gaan gebruik, moet u die beskikbare berging uitbrei deur 'sudo rapi-config' te tik, 'Advanced Options' te kies en dan 'File File System' uit te brei. As dit gevra word, herbegin.

Ons maak gebruik van die 1-draads-, SPI- en I2C-koppelvlak. Om dit te kan gebruik, moet u dit eers opstel!

Stap 3: Verbind alles saam

Verbind alles saam
Verbind alles saam
Verbind alles saam
Verbind alles saam

Dit is tyd om 'n baan te maak! Die eerste keer moet u dit waarskynlik op 'n broodbord probeer, maar as u nie tyd daarvoor het nie, kan u dit saam soldeer.

Die stroombaan wat u benodig, lyk soos hierbo, maar gerieflikheidshalwe bevat ook 'n broodbordweergawe.

Stap 4: Skep u databasis

Om alle data wat u ontvang, doeltreffend te stoor, gebruik ons 'n TSQL MySQL -databasis. Voordat u MySQL installeer, moet u seker maak dat alles op datum is deur 'n paar opdragte in die terminale in te tik:

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

Aanvaar elke aanwysing deur 'y' te tik en voer in.

Om MySQL -tipe te installeer:

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

Skep 'n wortelwagwoord van u keuse as u gevra word.

Nadat u klaar is met die installering van aanmelding met behulp van:

'mysql -uroot -p'

En tik jou wagwoord.

Kry die Fanair -kode van My Github! Klik op 'Kloon of aflaai' en dan op 'Laai zip af'. Pak die kode uit in 'n gids van u keuse. Die navraag om die volledig operasionele databasis te skep, is in die databasismap. Maak die lêer oop, kopieer die kode en plak dit in die terminale met MySQL oop. Klik dan op enter en die databasis is klaar!

Stap 5: Tyd vir die kode

Om van al die sensors gebruik te maak, moet u natuurlik 'n program uitvoer. Gelukkig is die kode reeds (meestal) klaar, en ons het dit reeds afgelaai toe ons die databasis -SQL -navraag gekry het.

Soos ek gesê het, is daar 'n paar dinge wat nog verander / bygevoeg moet word sodat die program behoorlik kan werk. In die eerste plek gebruik die program die Darksky API om die weerdata op grond van lengte- en breedtegraad te kry. Om dit te kan gebruik, moet u aanmeld. Die eerste 1000 oproepe is gratis en daarna kos dit $ 0,0001 per oproep. Ek het gehoor as u nie betaal nie, word u rekening geblokkeer. Om eerlik te wees, $ 0.0001 per oproep is redelik goedkoop. Fanair bel die mees onlangse data elke uur, wat beteken dat dit binne 'n jaar voltyds slegs $ 0,876 kos. U kry ook 41 dae gratis as Fanair voltyds werk.

Sodra u aangemeld het, soek u API -sleutel. Soek die lengte- en breedtegraad van u ligging op google maps of probeer om dit te google. Skep 'n nuwe tekslêer, die hoofmap van Fanair (met klasse, main.py …). Noem die lêer 'key_location.txt'. Maak die tekslêer oop en plak die Darksky API -sleutel op die eerste reël. Plak u lengte op die tweede reël en plak op die derde reël u breedtegraad (beide in desimale formaat). Stoor die lêer as u klaar is.

Skep in dieselfde gids nog 'n tekslêer genaamd 'database_dsn.txt'. Die eerste reël moet 'localhost' sê. Die tweede reël is 'wortel'. In die derde reël moet u u wagwoord wat u vroeër vir die databasis gemaak het, tik, en die vierde en laaste reël moet u 'fanair' tik.

Klik met die rechtermuisknop op die main.py -lêer en kies wysig. Die 'fanair = Fanair (5, 26, 17, 27, 22, 4, "AM2301", 1, 0, 0, 0, "key_location.txt", "database_dsn.txt")' moet verander word. As u die prentjie gevolg het, moet die eerste 5 waardes verander word van '5, 26, 17, 27, 22, 4' na '20, 21, 26, 19, 13 '. '/home/muhsin/Applications/Fanair' moet ook verander word na u Fanair -wortelpad (waar main.py is). Maak 'n skuinsstreep voor 'huis', maar nie na 'Fanair' nie.

Dit is alles wonderlik, maar die kode moet in die Pi kom. Gelukkig bestaan die sftp -protokol vir ons. Om die lêers op die Pi te plaas, gebruik 'n sftp -kliënt soos FileZilla, of as u besluit het om MobaXterm te gebruik, kan u die lêers maklik oplaai in die sftp -koppelvlak links van die terminale.

Volgens my ervaring kry ek nie altyd die regte datum en tyd in die Raspberry Pi nie. Om seker te maak dat u die regte datatyd ontvang, stel ek voor om hierdie gids te volg: datum en tyd van die framboos Pi.

En laastens moet 'n paar biblioteke geïnstalleer word en 'n paar koppelvlakke moet geaktiveer word:

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

Adafruit DHT:

'pip3 installeer adafruit_python_dht'

1-draad:

  1. 'sudo raspi-config'
  2. 'Koppelvlakopsies'
  3. '1 draad'
  4. Aktiveer
  5. 'sudo nano /boot/config.txt'
  6. Voeg hierdie reël by in die lêer: 'dtoverlay = w1-gpio'
  7. 'sudo herlaai'

SPI:

  1. 'sudo raspi-config'
  2. 'Koppelvlakopsies'
  3. 'SPI'
  4. Aktiveer
  5. 'sudo herlaai'
  6. 'sudo nano /boot/config.txt'
  7. Soek 'dtparam = spi = on' en gee 'n opmerking deur die hutsmerk te verwyder.
  8. 'sudo apt-get install python3-dev

Smbus:

  1. 'sudo raspi-config'
  2. 'Koppelvlakopsies'
  3. 'I2C'
  4. Aktiveer
  5. 'sudo herlaai'
  6. 'sudo apt-get install -y python-smbus'
  7. 'sudo apt-get install -y i2c-tools'
  8. 'sudo nano /boot/config.txt'
  9. Soek dtparam = i2c_arm = aan en gee 'n opmerking deur die hutsmerk te verwyder.

fles

pip3 installeer Flask

mysql -aansluiting

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

spidev

'pip3 installeer py-spidev'

darksky

'pip3 installeer darkskylib'

Stap 6: Probeer dit

As u dit tot dusver reggekry het, tik uself op die rug. Nou is alles gedoen om Fanair behoorlik te laat werk. Tik dus 'cd ""' om dit te toets. Die ligging van die lêer is "/home/pi", byvoorbeeld as u pas in u tuisgids geplak het. Tik dan 'python3 main.py' en laat dit vir 15 minute rus, sodat dit data in die databasis sal hê as dit klaar is. Druk daarna 'ctrl + c' stop, stop die program en tik 'python3 Flask.py'. Om te sien of u webwerf werk, moet u na die IP -adres van u Pi gaan wat u met ': 5000' daarna gemaak het (soos hierdie: 169.254.10.1:5000 ').

Om dit outomaties te laat loop na die opstart:

'sudo nano /etc/rc.local'

Aan die einde van die lêer MAAR VOOR verlaat 0:

'sudo python3 "/main.py" &'

'sudo python3 "/Flask.py" &'

Baie geluk nou, u script moet van die begin af loop en u is klaar! As u van plan is om die projek aan die gang te hou en dit nog nie is nie, stel ek voor dat u alles aanmekaar soldeer, net om seker te maak dat alles in orde bly. Alhoewel 'n broodbord natuurlik ook werk as u nie speel om dit te laat rondbeweeg nie.

Aanbeveel: