Taula de continguts:
- Pas 1: selecció de peces, eines i materials
- Pas 2: connectar el nostre maquinari
- Pas 3: Connectar-se a tot: configurar el Pi
- Pas 4: programari / codi
- Pas 5: el recinte
Vídeo: RPi Weatherstation amb lloc web responsiu: 5 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
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
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
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
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
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:
Extraieu i visualitzeu de manera ambiental dades de qualsevol lloc web a través de Wifi (indicador auricular nord) amb NodeMcu: 6 passos
Extracte i visualització de dades ambientals de qualsevol lloc web a través de Wifi (indicador auricular boreal) amb NodeMcu: la meva motivació: he vist MOLTS d’instructibles sobre la configuració / ús d’un NodeMCU (construït al mòdul ESP8266) per a la realització de projectes IoT (Internet de les coses) . No obstant això, molt pocs d'aquests tutorials tenien tots els detalls / codi / diagrames per a un
Franja LED controlada per a lloc web / WiFi amb Raspberry Pi: 9 passos (amb imatges)
Llista de LED controlada per lloc web / WiFi amb Raspberry Pi: Antecedents: sóc adolescent i he estat dissenyant i programant petits projectes electrònics durant els darrers anys, juntament amb la participació en concursos de robòtica. Fa poc estava treballant en l’actualització de la configuració del meu escriptori i vaig decidir que hi hauria un bon afegit
Tutorial IO del controlador web amb un lloc web en directe i exemples de treball: 8 passos
Tutorial IO del controlador web utilitzant un lloc web actiu i exemples de treball: Tutorial IO del controlador web utilitzant un lloc web actiu i exemples de treballs Última actualització: 26/07/2015 (torneu a comprovar-ho sovint mentre actualitzo aquest instructable amb més detalls i exemples) Antecedents un desafiament interessant que se’m va presentar. Necessitava
Arranjament d'un lloc web Ajax amb un formulari d'inici de sessió asíncron: 6 passos (amb imatges)
Arranjament d’un lloc web Ajax amb un formulari d’inici de sessió asíncron: el problema: les eines d’aranya no permeten l’autenticació d’inici de sessió AJAX. Aquesta instrucció us mostrarà com iniciar la sessió mitjançant un formulari AJAX mitjançant Python i un mòdul anomenat Mechanize. Les aranyes són programes d'automatització web que cada cop són més populars
Com iniciar un servidor web / lloc web: 5 passos
Com iniciar un servidor web / lloc web casolà: ho vaig fer durant el cap de setmana perquè m'he avorrit i gaudeix-ne