I received the ENS160+AHT21 sensor module yesterday. I can not wait for any more for the stuff. So, I build the AQI device right away.
I have to give credit to TimHanewich for his project on GitHub.
I changed it a little bit and recorded it below.
- A data sampling and upload script, written in MicroPython, running on a Raspberry Pi Pico W.
- An ENS160 Digital Metal Oxide Multi-Gas Sensor, is used for monitoring Carbon Dioxide (CO2), Total Volatile Organic Compounds (TOVC), and the Air Quality Index (AQI) of your home via the I2C protocol.
- An AHT21 Integrated Temperature and Humidity Sensor is used to monitor the ambient temperature and humidity of your home via the I2C protocol.
Step 1
Get a USB cable with a Micro USB B port to connect Raspberry Pi Pico W to a PC (Windows).
Go to the MicroPython website to download the latest firmware for Pico W. The one I download is v1.23.0.
Hold the BOOTSEL button on Pico W, then connect to the PC.
After a few seconds, the PC will find a drive. Drag the uf2 file I downloaded above to it.
Step 2
Connect the two stuff. as below.
Step 3
Download the Thonny IDE and install it on the Windows. I downloaded v4.1.4.
Step 4
Prepare the code. The Code I updated can be downloaded here. src
Edit settings.py to add the WiFI information and the post_url. You can change the sample_time to 300 for measuring every five minutes.
In the main.py, I changed line 27 to match the wiring above.
Step 5
Connect the Pico W with the PC.
Launch Thonny IDE. Click Run > Interpreter, and select MicroPyton (Raspberry Pi Pico). click OK.
Then, open the files one by one and save a copy to the device.
Select the main.py file. Then click the Green Play button.
I post the data to a php file to save it to the MySQL database.
The 4th item with high eco2 and tvoc, because I opened the bottle of Alcool isophopylique.
Here is what it looks like for the setup. I mounted them on a 2X4 block with screws. I can move it anywhere in the house. I can also use the battery to power it.
Option:
The database structure of database aqi_1
The setting of the URL in settings.py.
post_url:str = "https://gthree.win/tools/aqi-data.php"
The main part of aqi-data.php is as follows:
$data = json_decode(file_get_contents('php://input')); $humidity = $data->{'humidity'}; $temperature = $data->{'temperature'}; $eco2 = $data->{'eco2'}; $aqi = $data->{'aqi'}; $tvoc = $data->{'tvoc'}; // Database connection $conn = new mysqli('localhost', 'username', 'password', 'aqi_1'); // Insert data Query $sql = "INSERT INTO env_status ( humidity, temperature, eco2, aqi, tvoc) VALUES ($humidity, $temperature, $eco2, $aqi, $tvoc)"; if ($conn->query($sql) === TRUE) { echo "Insert your JSON record successfully"; }
Received the data and saved them to the database.