Indholdsfortegnelse:
- Trin 1: Valg af dele, værktøjer og materialer
- Trin 2: Tilslutning af vores hardware
- Trin 3: Tilslutning af alt: Opsætning af Pi
- Trin 4: Software / kode
- Trin 5: Vedlægget
Video: RPi Weatherstation med responsivt websted: 5 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
Til et skoleprojekt måtte vi lave en IoT -enhed med et websted til visualisering af de indsamlede oplysninger på en god måde. Jeg valgte at lave en vejrstation drevet af en Raspberry Pi 3 -kørselskolbe til det responsive websted, MySQL (MariaDB) til min database og et python -script til at indsamle info med alle mine sensorer. Det tog mig cirka 2 uger fra start til slut at fuldføre.
Vi blev opfordret til at gøre en instruerbar til at dele vores fremskridt med resten af DIY -fællesskabet, så her er det!
Trin 1: Valg af dele, værktøjer og materialer
Først skulle jeg finde ud af, hvilken slags sensorer der var afgørende for en vejrstation. Jeg besluttede, at jeg ville måle alle følgende data:
- Temperatur
- Lufttryk
- Fugtighed
- Vindhastighed
- UV -indeks
Her er alle de værktøjer, materialer og dele, jeg brugte
Dele:
- DHT22/AM2302 til temperatur- og fugtmålinger. (15 EUR)
- Adafruit BMP280 til barometrisk tryk og temperatur. (12 EUR)
- Adafruit SI1145 til måling af UV -indeks. (10 EUR)
- Adafruit Analog Anemometer til måling af vindhastighed (50 EUR)
- En MCP3008 til konvertering af analoge signaler til digitale.
- 10kOhm modstand som pull-up til min AM2302.
- En 9V adapter til 'strøm' til vindmåleren
- En 5V adapter til Raspberry Pi
- Raspberry Pi 3 (Enhver Pi burde være tilstrækkelig)
Materialer:
En plastbeholder til opbevaring af alt og gør det regntæt
Værktøjer:
- Loddejern og tin
- Multimeter
- Silikone
- Noget tape
Så i alt koster alle sensorer mig omkring 85 Euro, hvilket er ret stejlt, men jeg ville virkelig gerne inkludere en ordentlig vindhastighedsmåler, så jeg synes, det er det hele værd.
Du kan finde en mere detaljeret liste med butikker, du kan købe alt i, i pdf'en herunder:)
Trin 2: Tilslutning af vores hardware
Selvfølgelig bliver vi nødt til at forbinde vores sensorer til vores Raspberry Pi. Ovenfor kan du se den fritzing -skema, du kan følge for at forbinde alt korrekt.
På skematikken kan du se, at et 9V batteri bruges som strømkilde til vores vindmåler, dette bruges bedst bedst kun til test, da det ikke varer for længe, du kan udskifte 9V batteriet til enhver 7-12V strømkilde, du vælge.
Vores SI1145- og BMP280 -sensorer bliver begge styret ved hjælp af I2C -protokollen, da dette er det letteste at arbejde med og har brug for færre ledninger.
Vindmåleren på skematisk er vist som en LDR her, da den har stort set identiske ledninger som vindmåleren, og jeg ikke kunne finde et rigtigt vindmåler til at sætte på min fritzing skematisk:)
Trin 3: Tilslutning af alt: Opsætning af Pi
Først og fremmest skal vi sikre os, at vi har forbindelse til internettet.
For at gøre dette i terminalen kan du gå til din wpa_supplicant -fil ved at køre følgende kommando: sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
I filen kan du tilføje dette:
netværk = {ssid = "Your_Wifi_SSID" psk = "Your_Wifi_Password" key_mgmt = WPA-PSK
}
Du kan også vælge at indstille din IP-adresse til statisk for lettere adgang i fremtiden. For at gøre dette skal du gå til filen dhcpcd.conf ved at køre denne kommando: sudo nano /etc/dhcpcd.conf
Tilføj dette i filen:
interface wlan0static ip_address = 192.168.0.100/24
Derefter skal vi sikre os, at de pakker, der allerede er installeret på vores Pi, er fuldt opdaterede:
sudo apt-get update && sudo apt-get upgrade
Dette kan tage et stykke tid, så bare rolig
Du skal aktivere I2C- og SPI -protokollen inde i raspi config. Du kan dette ved at køre denne kommando:
sudo raspi-config
Gå derefter til grænseflademuligheder og aktiver både I2C og SPI
Først skal du oprette en mappe, du vil placere dit projekt i (vi vil kalde det 'weatherstation'):
cd ~ mkdir vejrstation cd vejrstation
Derefter konfigurerede vi vores virtuelle python3 -miljø:
python3 -m pip installation-opgrader pip setuptools hjul virtualenvpython3 -m venv-system-site-pakker envsource env/bin/activatepython -m pip installer mysql-connector-python kolbe-mysql mysql-connector-python passlib mysql-connector -python-rf
Derefter skal vi installere nogle andre pakker, der er nødvendige for at få alt til at fungere korrekt:
sudo apt installere -y python3-venv python3-pip python3-mysqldb mariadb-server uwsgi nginx uwsgi-plugin-python3
Nu skal vi lave vores database:
Vi har stadig brug for at oprette vores database. Du kan gøre dette ved at køre koden/sql -filen i mappen 'sql' sådan:
sudo mariadb <sql/db_init.sql
SQL -forespørgslen vil gøre de tabeller, vi har brug for, og også få et par brugere til at gøre vores database lidt mere sikker.
Dette vil også sætte nogle eksempler på historikdata i vores database for at sikre, at vores websted viser alt korrekt, når der ikke er indsamlet reelle data endnu.
For at installere Adafruit_GPIO og MyPyDHT skal du gøre nogle flere ting. Gå først tilbage til din brugsmappe og derefter:
git -klon https://github.com/adafruit/Adafruit_Python_GPIO.gitcd Adafruit_Python_GPIO sudo python3 setup.py installation
cd..git klon -rekursiv https://github.com/freedom27/MyPyDHTsudo python3 setup.py installation
Trin 4: Software / kode
Vi skal konfigurere back-end til vejrstationen, som omfatter:
- En mariadb-database til lagring af mine sensoraflæsninger og nogle andre mindre ting.- En kolbe-service til at køre webstedet.- En anden service, der kører Python-filen, der læser alle sensorer. Ovenfor kan du se min meget enkle databaseopsætning. Brugertabellen er unødvendigt, men da jeg ønskede et loginsystem, fordi jeg (selvom alle data er ens for alle brugere) besluttede jeg at inkludere i min database.
Du kan gå videre og klone mit projekts kode fra Github til din projektmappe. Gå til din brugermappe og kør: git klon https://github.com/BertVanhaeke/Weatherstation/ tempmv -v temp/* weatherstation/
Naviger derefter til conf -mappen i weatherstation og alle filerne i mappen.
Skift alle forekomster af 'USERNAME' til dit brugernavn
Du skal også kopiere begge.service -filerne til systemd og teste dem sådan:
sudo cp conf/weatherstation-*. service/etc/systemd/system/sudo systemctl daemon-reloadsudo systemctl start weatherstation-flask.servicesudo systemctl start weatherstation-sensor.service
sudo systemctl status weatherstation-*
Vi skal derefter redigere nginx -konfigurationen.
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 genstart nginx.servicesudo systemctl status nginx.service
Hvis noget gik godt, skulle du kunne køre dette og få udskrevet noget html i terminalen:
wget -qO - localhost
Alt burde fungere fint nu. Du kan surfe til din hindbær Pi's IP-adresse, vi satte i begyndelsen, og blive mødt med en login-skærm.
Trin 5: Vedlægget
Nu hvor alt virker, skal vi sætte det hele i noget.
Jeg valgte en simpel plastkasse med et gennemsigtigt låg. Vindmåleren er monteret oven på den, og det samme er en sekundær lille beholder, der indeholder DHT22 og BMP280 sensorer.
Disse sensorer er monteret inde i en separat beholder, fordi de skal være i det fri (uden at blive regnet på), men hindbærpi behøver ikke at være det.
Som du kan se tilføjede jeg lidt silikone rundt om kanterne for at gøre det vandtæt. Jeg borede også nogle huller i den øverste beholder for at få frisk luft i den.
Jeg håber, at du nød min guide til, hvordan du bygger en vejrstation, det kan være lidt hårdt rundt om kanterne, da det er første gang, jeg skriver en guide som denne, men jeg håber, at du alligevel kunne lide den:)
Anbefalede:
Træk og vis data i omgivelser fra ethvert websted via Wifi (nordlysindikator) med NodeMcu: 6 trin
Hent og vis data fra ethvert websted via wifi (nordlysindikator) med NodeMcu: Min motivation: Jeg har set MEGET af instruktioner om opsætning/ brug af en NodeMCU (bygget på ESP8266 -modulet) til at lave IoT (internet of things) -projekter . Meget få af disse selvstudier havde imidlertid alle detaljer/ kode/ diagrammer til en meget nybegynder
Sådan laver du et slankt og enkelt websted med Bootstrap 4: 7 trin
Sådan laver du et slankt og enkelt websted med Bootstrap 4: Formålet med denne instruks er at give dem, der er fortrolige med programmering - HTML eller på anden måde - en enkel introduktion til at lave en online portefølje med Bootstrap 4. Jeg vil gå dig igennem den første opsætning på webstedet, hvordan man opretter et par
Sådan opretter du et websted (en trin-for-trin vejledning): 4 trin
Sådan opretter du et websted (en trinvis vejledning): I denne vejledning viser jeg dig, hvordan de fleste webudviklere bygger deres websteder, og hvordan du kan undgå dyre webstedsbyggere, der ofte er for begrænsede til et større websted. hjælpe dig med at undgå nogle fejl, som jeg gjorde, da jeg startede
Input: Responsivt materiale: 12 trin (med billeder)
Inputs: Responsivt materiale: Kapacitans er et objekts evne til at lagre en elektrisk ladning. I denne tutorial vil vi designe og væve tekstilsensorer, der reagerer på vores krops kapacitans og bruger den elektricitet til at fuldføre et kredsløb.I denne tutorial lærer du ba
Overvejer et Ajax -websted med en asynkron loginformular: 6 trin (med billeder)
Overvejelse af et Ajax -websted med en asynkron loginformular: Problemet: Overvejelsesværktøjer tillader ikke AJAX -login -godkendelse. Denne instruktør viser dig, hvordan du logger ind via en AJAX -formular ved hjælp af Python og et modul kaldet Mechanize. Edderkopper er webautomatiseringsprogrammer, der bliver mere og mere populære