Turinys:
- 1 žingsnis: dalių pasirinkimas, įrankiai ir medžiagos
- 2 žingsnis: Prijunkite aparatūrą
- 3 žingsnis: visko prijungimas: „Pi“nustatymas
- 4 žingsnis: programinė įranga / kodas
- 5 žingsnis: gaubtas
Video: „RPi Weastherstation“su reaguojančia svetaine: 5 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
Mokyklos projektui turėjome sukurti IoT įrenginį su svetaine, kad būtų galima gražiai vizualizuoti surinktą informaciją. Aš nusprendžiau sukurti oro stotį, maitinamą „Raspberry Pi 3“veikiančia kolba, skirtai reaguojančiai svetainei, „MySQL“(„MariaDB“) mano duomenų bazei ir „python“scenarijų, skirtą rinkti informaciją su visais mano jutikliais. Nuo pradžios iki pabaigos man prireikė maždaug 2 savaičių.
Buvome paraginti pasidalinti savo pažanga su likusia „pasidaryk pats“bendruomene, taigi štai!
1 žingsnis: dalių pasirinkimas, įrankiai ir medžiagos
Pirmiausia turėjau išsiaiškinti, kokie jutikliai yra būtini oro stotyje. Nusprendžiau, kad noriu išmatuoti visus šiuos duomenis:
- Temperatūra
- Oro slėgis
- Drėgmė
- Vėjo greitis
- UV indeksas
Čia yra visi mano naudojami įrankiai, medžiagos ir dalys
Dalys:
- DHT22/AM2302 temperatūros ir drėgmės rodmenims. (15 EUR)
- Adafruit BMP280 skirtas barometriniam slėgiui ir temperatūrai. (12 EUR)
- Adafruit SI1145, skirtas UV indeksui matuoti. (10 EUR)
- Adafruit analoginis anemometras vėjo greičiui matuoti (50 EUR)
- MCP3008, skirtas analoginiams signalams konvertuoti į skaitmeninius.
- 10 kOhm rezistorius, kaip mano „AM2302“pritraukimas.
- 9 V adapteris, skirtas „maitinti“anemometrą
- 5V adapteris „Raspberry Pi“
- Raspberry Pi 3 (turėtų pakakti bet kurio Pi)
Medžiagos:
Plastikinė talpykla, skirta viskam laikyti ir apsaugoti nuo lietaus
Įrankiai:
- Lituoklis ir alavas
- Multimetras
- Silikonas
- Kažkokia juosta
Taigi iš viso visi jutikliai man kainavo apie 85 eurus, o tai yra gana kieta, bet aš tikrai norėjau įtraukti tinkamą vėjo greičio matuoklį, todėl manau, kad tai verta.
Išsamesnį sąrašą su parduotuvėmis, kuriose galite nusipirkti visko, rasite žemiau esančiame pdf:)
2 žingsnis: Prijunkite aparatūrą
Žinoma, mes turėsime prijungti savo jutiklius prie mūsų Raspberry Pi. Viršuje galite pamatyti šlifavimo schemą, kurią galite sekti, kad tinkamai prijungtumėte viską.
Schemoje matote, kad 9V baterija naudojama kaip mūsų anemometro maitinimo šaltinis, tai geriausiai tinka tik bandymams, nes ji truks ne per ilgai, galite pakeisti 9 V bateriją bet kokiam 7-12 V maitinimo šaltiniui. pasirinkti.
Mūsų SI1145 ir BMP280 jutikliai bus valdomi naudojant I2C protokolą, nes tai lengviausia dirbti ir reikia mažiau laidų.
Schemoje esantis anemometras čia rodomas kaip LDR, nes jo laidai yra beveik identiški, kaip anemometras, ir aš negalėjau rasti tikro anemometro, kuriuo galėčiau uždėti savo šlifavimo schemą:)
3 žingsnis: visko prijungimas: „Pi“nustatymas
Visų pirma, turime įsitikinti, kad esame prisijungę prie interneto.
Norėdami tai padaryti terminale, galite eiti į savo wpa_supplicant failą vykdydami šią komandą: sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Į failą galite pridėti:
tinklas = {ssid = "Your_Wifi_SSID" psk = "Your_Wifi_Password" key_mgmt = WPA-PSK
}
Taip pat galite pasirinkti, kad jūsų IP adresas būtų statinis, kad ateityje būtų lengviau pasiekti. Norėdami tai padaryti, turite eiti į failą dhcpcd.conf, vykdydami šią komandą: sudo nano /etc/dhcpcd.conf
Pridėkite tai prie failo:
sąsaja wlan0static ip_address = 192.168.0.100/24
Tada mes įsitikinsime, kad mūsų „Pi“jau įdiegti paketai yra visiškai atnaujinti:
sudo apt-get update && sudo apt-get upgrade
Tai gali užtrukti, todėl nesijaudinkite
Raspi konfigūracijoje turėsite įgalinti I2C ir SPI protokolą. Tai galite padaryti vykdydami šią komandą:
sudo raspi-config
Tada eikite į sąsajos parinktis ir įgalinkite tiek I2C, tiek SPI
Pirmiausia turite sukurti katalogą, į kurį norite įdėti savo projektą (mes jį pavadinsime „oro sąlygomis“):
cd ~ mkdir weatherstationcd oras
Tada mes sukūrėme savo „python3“virtualią aplinką:
python3 -m pip install-atnaujinti pip setuptools ratą virtualenvpython3 -m venv --system-site-paketai envsource env/bin/activepython -m pip install mysql-connector-python Kolbinė kolba-mysql mysql-jungtis-python passlib mysql-jungtis -python-rf
Tada turėsime įdiegti kitus paketus, kurių reikia, kad viskas tinkamai veiktų:
sudo apt install -y python3-venv python3-pip python3-mysqldb mariadb-server uwsgi nginx uwsgi-plugin-python3
Dabar mes sudarysime savo duomenų bazę:
Vis dar turime nustatyti savo duomenų bazę. Tai galite padaryti paleisdami kodą/sql failą, esantį aplanke „sql“, kaip šis:
sudo mariadb <sql/db_init.sql
„SQL“užklausa padarys mums reikalingas lenteles ir kelis vartotojus, kad mūsų duomenų bazė būtų šiek tiek saugesnė.
Taip pat kai kurie istorijos pavyzdžių duomenys bus įtraukti į mūsų duomenų bazę, kad mūsų svetainė viską rodytų tinkamai, kai dar nėra surinktų tikrų duomenų.
Norėdami įdiegti „Adafruit_GPIO“ir „MyPyDHT“, turėsite atlikti dar keletą veiksmų. Pirmiausia grįžkite į savo naudojimo aplanką ir tada:
git klonas https://github.com/adafruit/Adafruit_Python_GPIO.gitcd Adafruit_Python_GPIO sudo python3 setup.py install
cd..git klonas -rekursyvus https://github.com/freedom27/MyPyDHTsudo python3 setup.py install
4 žingsnis: programinė įranga / kodas
Turime sukurti oro sąlygų užnugarį, kurį sudaro:
- „Mariadb“duomenų bazė, skirta mano jutiklių rodmenims ir kai kuriems kitiems smulkiems dalykams saugoti.- Kolbos paslauga svetainei paleisti.- Kita paslauga, kurioje veikia „Python“failas, kuriame nuskaitomi visi jutikliai. Viršuje galite pamatyti mano labai paprastą duomenų bazės sąranką. Vartotojų lentelė yra nereikalingas, bet kadangi norėjau prisijungimo sistemos, nes aš (nors visi duomenys yra vienodi visiems vartotojams) nusprendžiau įtraukti į savo duomenų bazę.
Galite eiti į priekį ir klonuoti mano projekto kodą iš „Github“į savo projekto aplanką. Eikite į savo vartotojo aplanką ir paleiskite: git clone https://github.com/BertVanhaeke/Weatherstation/ tempmv -v temp/* weatherstation/
Tada eikite į „conf“aplanką oro sąlygomis ir visus aplanko failus.
Pakeiskite visus „USERNAME“įvykius į savo vartotojo vardą
Taip pat turėsite nukopijuoti abu.service failus į systemd ir išbandyti juos taip:
sudo cp conf/weatherstation-*. service/etc/systemd/system/sudo systemctl daemon-reloadsudo systemctl start weatherstation-flask.servicesudo systemctl start weatherstation-sensor.service
sudo systemctl būsenos oro sąlygos-*
Tada turime redaguoti „nginx“konfigūraciją.
sudo cp conf/nginx/etc/nginx/sites-available/weatherstationsudo rm/etc/nginx/sites-enabled/defaultsudo ln -s/etc/nginx/sites-available/weatherstation/etc/nginx/sites-enabled/weatherstationsudo systemctl {101} iš naujo paleiskite nginx.servicesudo systemctl būseną nginx.service
Jei viskas pavyko gerai, turėtumėte tai paleisti ir terminale atsispausdinti html:
wget -qO - vietinis šeimininkas
Viskas dabar turėtų veikti gerai. Galite naršyti savo „Raspberry Pi“IP adresą, kurį nustatėme pradžioje, ir būti pasveikinti prisijungimo ekrane.
5 žingsnis: gaubtas
Dabar, kai viskas veikia, turime viską į kažką įdėti.
Aš pasirinkau paprastą plastikinę dėžutę su permatomu dangteliu. Anemometras yra sumontuotas ant jo, taip pat antrinis mažas indas, kuriame yra DHT22 ir BMP280 jutikliai.
Šie jutikliai yra sumontuoti atskiro konteinerio viduje, nes jie turi būti lauke (be lietaus), tačiau aviečių pi nereikia.
Kaip matote, aš pridėjau šiek tiek silikono aplink kraštus, kad jis būtų atsparus vandeniui. Aš taip pat išgręžiau keletą skylių viršutiniame inde, kad gaučiau gryno oro.
Tikiuosi, kad jums patiko mano vadovas, kaip sukurti oro stotį, ji gali būti šiek tiek šiurkšti aplink kraštus, nes pirmą kartą rašau tokį vadovą, bet tikiuosi, kad jums vis dėlto patiko:)
Rekomenduojamas:
Kaip sukurti pagrindinę svetainę naudojant „Notepad“: 4 žingsniai
Kaip sukurti pagrindinę svetainę naudojant „Notepad“: ar kas nors susimąstė: „Kaip sukurti svetainę iš pagrindinės rašymo programos?“Na, aišku, ne konkrečiai … Bet kokiu atveju, čia aš jums parodysiu, kaip sukurti PAGRINDINĮ svetainę naudojant tik užrašų knygelę
Svetainė filmui su Shelly: 4 žingsniai
Gyvenamasis kambarys filmui su Shelly: projekto santrauka Kaip sukurti labai paprastą automatizavimą naudojant „Google“namų rutiną, kad mano kambario svetainė būtų patogi žiūrėti filmą
Medinė RC valtis, kurią galite valdyti rankiniu būdu arba per svetainę: 9 žingsniai
Medinė RC valtis, kurią galite valdyti rankiniu būdu arba per svetainę: Sveiki, aš esu „Howest“studentas ir aš sukūriau medinę RC valtį, kurią galite valdyti per valdiklį arba per svetainę. Aš pavargau nuo rc transporto priemonių gedimo taip greitai ir aš norėjau kuo nors pasimėgauti, kai gyvenau prie jūros
Sukurkite savo svetainę pradedantiesiems: 5 žingsniai
Sukurti savo svetainę pradedantiesiems: Nesvarbu, ar kada nors svajojote būti kompiuterių programuotoju, ar kada nors naudojotės svetaine, kuri, pripažinkime, yra beveik visi, informacinės technologijos tapo verslo pagrindu. Nors programavimas iš pradžių gali pasirodyti šiek tiek bauginantis, mano tikslas
„Bluetooth“garsiakalbis su muzika reaguojančia LED matrica: 12 žingsnių (su paveikslėliais)
„Bluetooth“garsiakalbis su muzika reaguojančia LED matrica: Šis projektas įtrauktas į belaidžio ryšio konkursą ir šviesos diodų konkursą-jei jums tai patinka, būčiau labai dėkingas už jūsų balsą. Ačiū! Aš suprojektavau ir sukūriau „pasidaryk pats“„Bluetooth“garsiakalbį su integruota LED matrica. LED matricoje yra keletas skirtingų