Taula de continguts:

RPi Weatherstation amb lloc web responsiu: 5 passos
RPi Weatherstation amb lloc web responsiu: 5 passos

Vídeo: RPi Weatherstation amb lloc web responsiu: 5 passos

Vídeo: RPi Weatherstation amb lloc web responsiu: 5 passos
Vídeo: ХАКСТЕР - КАК ПРОИЗНОШАЕТСЯ ХАКСТЕР? #хакер (HACKSTER - HOW TO PRONOUNCE HACKSTER? # 2024, Juliol
Anonim
RPi Weatherstation amb lloc web responsiu
RPi Weatherstation amb lloc web responsiu
RPi Weatherstation amb lloc web responsiu
RPi Weatherstation amb lloc web responsiu

Per a un projecte escolar, havíem de crear un dispositiu IoT amb un lloc web per visualitzar la informació recollida d’una manera agradable. Vaig optar per fer una estació meteorològica amb un Flask de Raspberry Pi 3 que funcionava per al lloc web responsiu, MySQL (MariaDB) per a la meva base de dades. i un script Python per recopilar informació amb tots els meus sensors. Em van trigar unes dues setmanes de principi a fi a completar-se.

Ens van animar a fer un instructiu per compartir el nostre progrés amb la resta de la comunitat de bricolatge, així que aquí ho teniu!

Pas 1: selecció de peces, eines i materials

Primer, calia esbrinar quin tipus de sensors eren essencials per a una estació meteorològica i vaig decidir que volia mesurar totes les dades següents:

  • Temperatura
  • Pressió de l'aire
  • Humitat
  • Velocitat del vent
  • Índex UV

Aquí teniu totes les eines, materials i peces que he utilitzat

Parts:

  • DHT22 / AM2302 per a lectures de temperatura i humitat. (15 EUR)
  • Adafruit BMP280 per a pressió i temperatura baromètrica. (12 EUR)
  • Adafruit SI1145 per mesurar l'índex UV. (10 EUR)
  • Anemòmetre analògic Adafruit per mesurar la velocitat del vent (50 EUR)
  • Un MCP3008 per convertir senyals analògics a digitals.
  • 10kOhm Resistor com a pull-up per al meu AM2302.
  • Un adaptador de 9 V per "alimentar" l'anemòmetre
  • Un adaptador de 5V per al Raspberry Pi
  • Raspberry Pi 3 (qualsevol Pi hauria de ser suficient)

Materials:

Un recipient de plàstic per emmagatzemar tot i evitar que plogui

Eines:

  • Soldador i llauna
  • Multímetre
  • Silicona
  • Una mica de cinta

Per tant, en total tots els sensors em van costar uns 85 euros, cosa que és bastant costeruda, però volia incloure un mesurador de velocitat adequat, de manera que crec que val la pena.

Podeu trobar una llista més detallada amb botigues on podeu comprar de tot, al pdf següent:)

Pas 2: connectar el nostre maquinari

Connectant el nostre maquinari
Connectant el nostre maquinari
Connectant el nostre maquinari
Connectant el nostre maquinari

Per descomptat, haurem de connectar els nostres sensors al nostre Raspberry Pi. A sobre podeu veure l’esquema divertit que podeu seguir per connectar-ho tot correctament.

A l’esquema es pot veure que s’utilitza una bateria de 9V com a font d’alimentació per al nostre anemòmetre; s’utilitza correctament per fer proves només ja que no durarà massa. Podeu substituir la bateria de 9V per qualsevol font d’alimentació de 7-12V tria.

Els nostres sensors SI1145 i BMP280 es controlaran amb el protocol I2C, ja que és el més fàcil de treballar i necessita menys cables.

L’anemòmetre de l’esquema es mostra aquí com un LDR, ja que té un cablejat pràcticament idèntic a l’anemòmetre i no he pogut trobar un anemòmetre real per posar el meu esquema fritzing:)

Pas 3: Connectar-se a tot: configurar el Pi

Connectar-se a tot: configurar el Pi
Connectar-se a tot: configurar el Pi

Primer de tot, hem d’assegurar-nos que estem connectats a Internet.

Per fer-ho al terminal, podeu anar al fitxer wpa_supplicant executant l'ordre següent: sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Al fitxer podeu afegir-ho:

network = {ssid = "Your_Wifi_SSID" psk = "Your_Wifi_Password" key_mgmt = WPA-PSK

}

També podeu optar per configurar la vostra adreça IP com a estàtica per facilitar-ne l'accés en el futur. Per fer-ho, heu d'anar al fitxer dhcpcd.conf executant aquesta ordre: sudo nano /etc/dhcpcd.conf

Afegiu-lo al fitxer:

interfície wlan0static adreça_ip = 192.168.0.100 / 24

A continuació, ens assegurarem que els paquets que ja estan instal·lats al nostre Pi estiguin completament actualitzats:

sudo apt-get update && sudo apt-get upgrade

Això pot trigar una estona, així que no us preocupeu

Haureu d’habilitar el protocol I2C i SPI dins de raspi config. Podeu fer-ho executant aquesta ordre:

sudo raspi-config

A continuació, aneu a les opcions d'interfície i habiliteu les dues funcions, I2C i SPI

Primer heu de crear un directori en què vulgueu posar el vostre projecte (l’anomenarem ‘weatherstation’):

cd ~ mkdir weatherstationcd weatherstation

A continuació, configurem el nostre entorn virtual python3:

python3 -m pip install --upgrade pip setuptools wheel virtualenvpython3 -m venv --system-site-packages envsource env / bin / activatepython -m pip install mysql-connector-python Flask flask-mysql mysql-connector-python passlib mysql-connector -python-rf

Llavors haurem d’instal·lar alguns altres paquets que siguin necessaris per fer que tot funcioni correctament:

sudo apt install -y python3-venv python3-pip python3-mysqldb mariadb-server uwsgi nginx uwsgi-plugin-python3

Ara farem la nostra base de dades:

Tot i així, hem de configurar la nostra base de dades. Podeu fer-ho executant el fitxer de codi / sql situat a la carpeta 'sql' així:

sudo mariadb <sql / db_init.sql

La consulta sql farà que les taules que necessitem i també farà que alguns usuaris facin la nostra base de dades una mica més segura.

Això també inclourà algunes dades de la història de la mostra a la nostra base de dades per assegurar-nos que el nostre lloc web ho mostra tot correctament quan encara no es recopilen dades reals.

Per instal·lar Adafruit_GPIO i MyPyDHT haureu de fer algunes coses més. Primer torneu a la carpeta d’ús i després:

git clone https://github.com/adafruit/Adafruit_Python_GPIO.gitcd Adafruit_Python_GPIO sudo python3 setup.py install

cd..git clone --recursive https://github.com/freedom27/MyPyDHTsudo python3 setup.py install

Pas 4: programari / codi

Programari / Codi
Programari / Codi
Programari / Codi
Programari / Codi
Programari / Codi
Programari / Codi

Hem de configurar el back-end per a la meteorologia, que inclou:

- Una base de dades de mariadb per emmagatzemar les meves lectures de sensors i algunes altres coses menors - Un servei de flascó per executar el lloc web. - Un altre servei que executa el fitxer Python que llegeix tots els sensors. innecessari, però com que volia un sistema d’inici de sessió perquè jo (tot i que totes les dades són les mateixes per a tots els usuaris) vaig decidir incloure’ls a la meva base de dades.

Podeu continuar clonant el codi del meu projecte des de Github a la carpeta del projecte. Aneu a la carpeta d’usuari i executeu: git clone https://github.com/BertVanhaeke/Weatherstation/ tempmv -v temp / * weatherstation /

A continuació, aneu a la carpeta conf a weatherstation i a tots els fitxers de la carpeta.

Canvieu totes les ocurrències de "USERNAME" pel vostre nom d'usuari

També haureu de copiar els dos fitxers.service a systemd i provar-los així:

sudo cp conf / weatherstation - *. service / etc / systemd / system / sudo systemctl daemon-reloadsudo systemctl start weatherstation-flask.servicesudo systemctl start weatherstation-sensor.service

sudo systemctl estat weatherstation- *

Després hem d’editar la configuració nginx.

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 reinicieu nginx.servicesudo systemctl status nginx.service

Si tot va bé, hauríeu de ser capaç d’executar-ho i d’imprimir algun html al terminal:

wget -qO - localhost

Tot hauria de funcionar bé ara. Podeu navegar a l’adreça IP del vostre raspberry Pi que establim al principi i rebre una pantalla d’inici de sessió.

Pas 5: el recinte

El recinte
El recinte
El recinte
El recinte
El recinte
El recinte

Ara que tot funciona, hem de posar-ho tot en alguna cosa.

Vaig escollir una caixa de plàstic senzilla amb una tapa transparent: l’anemòmetre està muntat a sobre i també un petit recipient secundari que conté els sensors DHT22 i BMP280.

Aquests sensors es munten dins d’un contenidor separat perquè han d’estar a l’aire lliure (sense que plogui), però el raspberry pi no és necessari.

Com podeu veure, he afegit una mica de silicona a les vores per fer-lo impermeable i també he perforat alguns forats al contenidor superior per aconseguir aire fresc.

Espero que us hagi agradat la meva guia sobre com construir una estació meteorològica; pot ser que sigui una mica aspre per les vores, ja que és la primera vegada que escric una guia com aquesta, però espero que us hagi agradat tot i així:)

Recomanat: