Indholdsfortegnelse:

RPi Weatherstation med responsivt websted: 5 trin
RPi Weatherstation med responsivt websted: 5 trin

Video: RPi Weatherstation med responsivt websted: 5 trin

Video: RPi Weatherstation med responsivt websted: 5 trin
Video: Google Engineer Salary Levels #shorts 2024, Juli
Anonim
RPi Weatherstation med responsivt websted
RPi Weatherstation med responsivt websted
RPi Weatherstation med responsivt websted
RPi Weatherstation med responsivt websted

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

Tilslutning af vores hardware
Tilslutning af vores hardware
Tilslutning af vores hardware
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

Tilslutning af alt: Opsætning af Pi
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

Software / kode
Software / kode
Software / kode
Software / kode
Software / kode
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

Indhegningen
Indhegningen
Indhegningen
Indhegningen
Indhegningen
Indhegningen

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: