Difference between revisions of "Raspberry Pi Environmental Monitoring"

From Michael's Information Zone
Jump to navigation Jump to search
Line 6: Line 6:
 
<pre>
 
<pre>
 
mkdir -p /home/pi/build/air && cd /home/pi/build/air
 
mkdir -p /home/pi/build/air && cd /home/pi/build/air
sudo apt install git-core python-serial python-enum mariadb-server
+
sudo apt install git-core python-serial python-enum mariadb-server python-mysql.connector
 
wget -O aqi.py https://raw.githubusercontent.com/zefanja/aqi/master/python/aqi.py
 
wget -O aqi.py https://raw.githubusercontent.com/zefanja/aqi/master/python/aqi.py
 
echo [] > aqi.json
 
echo [] > aqi.json

Revision as of 13:40, 20 December 2019

Purpose

To monitor air temperature, humidity, and air quality.

Air Quality

A friend sent me a Nova PM Sensor. I do not know python yet, but looking over the script that is readily available[1][2] I should be able to modify this to work for my needs.

mkdir -p /home/pi/build/air && cd /home/pi/build/air
sudo apt install git-core python-serial python-enum mariadb-server python-mysql.connector
wget -O aqi.py https://raw.githubusercontent.com/zefanja/aqi/master/python/aqi.py
echo [] > aqi.json
sed -i 's|/var/www/html/aqi.json|/home/pi/build/air/aqi.json|' aqi.py

At this point we can run the script, see output on the screen, and see the history written to the json file.

./aqi.py 
Y: 18, M: 1, D: 18, ID: 0xbc2d, CRC=OK
PM2.5:  0.0 , PM10:  0.0
PM2.5:  0.7 , PM10:  0.7
PM2.5:  0.6 , PM10:  0.6
PM2.5:  0.7 , PM10:  0.7

However, I want the history written to a database. Configure mariadb anyway you want, if you have credentials keep them on hand.

create database air;
create user air;
grant all on air.* to 'air';
use air;
create table aqi (pm25 FLOAT, pm10 FLOAT, date DATETIME);
select * from aqi;
Empty set (0.00 sec)

insert into aqi values (2.1, 2.3, now());
Query OK, 1 row affected (0.02 sec)

select * from aqi;
+------+------+---------------------+
| pm25 | pm10 | date                |
+------+------+---------------------+
|  2.1 |  2.3 | 2019-12-20 13:32:18 |
+------+------+---------------------+
1 row in set (0.00 sec)

Now we edit the script to work with mysql[3]