A weather station hosted on a raspberry Pi 3B+, using Flask,Chart.js and Tailwind. Weather is retrieved from a ESP32 over HTTP and stored in a sqlite database.
Youssef
Check their project out: ReeTui
Once you ship this you can't edit the description of the project, but you'll be able to add more devlogs and re-ship it as you add new features!
PiStation DEVLOG #14
Added downloading a CSV file that respects the filters. Also updated the current weather div with rain and pressure.
PiStation DEVLOG #13
Added a card layout for mobile views as the table was too horizontally wide. Filtering works(basically same code as the table filter script).
The card layout looks better than the table, might make the desktop view use cards instead of a table.
PiStation DEVLOG #12
Improved the layout of the site on screens smaller than 16:9. Updated the official pistation.xyz with all previous changes.
PiStation DEVLOG #11
Added pressure and rainfall charts. Pressure chart was easy, however the rainfall chart was hard to figure out what would be best. Went with a bar chart with max value of 1 and a min value of zero(Zero is no rain, One is rain).
PiStation DEVLOG #10
Setup pressure sensor and rain sensor on the esp32. Ive also reset the database in order to accept these new values. The JSON is perfect, it works on the browser and curl.... HOWEVER! python just doesn't like the JSON. This is most likely bad code I've written.
PiStation DEVLOG #9
Setup the esp32 code. It is a simple HTTP server that gets temp values on request and sends it back as a JSON. For power saving I made it go to deepsleep for 9 minutes.
PiStation DEVLOG #8
Added favicon to the pages. Unfortunately I just realized that the raspberry Pi doesn't have a built in ADC, so im going to have to use my Temu esp32 as a http server.
PiStation DEVLOG #7
Added a humidity chart and improve the looks of both charts.
Currently implementing function to download table as CSV
PiStation DEVLOG #6
I improved the look of the past readings page(however doesn't look 100% great on mobile yet). Decided to add chart.js to the project in order to better visualize the changes in weather.
PiStation DEVLOG #6
Improved past readings page. The readings can now be filtered based on select value (Ignore design its just for debugging)
PiStation DEVLOG #5
Website Link:
https://pistation.xyz/
PiStation DEVLOG #4
Created a page that allows the viewing of all past readings of weather. Creates a dictionary which is then turned into a table.
PiStation DEVLOG #3
Setup the project on the raspberry pi using a rsync script that automatically updates files when changed on my pc. Fixed the databaseAdd.py script to now get data from the sensor and add it to the database. Now going to improve how the homepage looks because its quite bland.
PiStation DEVLOG #2
I setup the flask project with tailwind v4(Definitely didn't spend 1 hour wondering why the classes weren't being added until i finally added --watch to the command). Ive decided to get the sensor data every 10 minutes, by running a separate python file that appends data to a SQLite database.
On the client side whenever the user first opens the page it calls a function that gets the latest added temperature/humidity from the SQLite database.
Also the DHT11 sensor got too hot and fried itself🤦.
PiStation DEVLOG #1
I had problems with the AdafruitCircuitPythonDHT library in my code as it would try and use the Jetson.GPIO to get data from the pin. I fixed this by adding
(from adafruitblinka.microcontroller.genericlinux.rpigpiopin import Pin) to the (except ImportError) when it trys to import the pin.
The code now successfully gets the temperature/humidity and i can now work on the flask side of things.