Carbon dioxide and dust monitor based on Arduino Nano RP2040 (PCB + code)

 
Overview
This project is a monitoring system based on Arduino Nano RP2040 Connect that displays dust density (mg/m3) and carbon dioxide (CO2) density (ppm) through a Telegram bot. Since I suffer from allergic bronchitis, dust density and carbon dioxide (CO2) density can adversely affect my sleep quality and health. Allergic bronchitis is a chronic lung disease that is triggered by exposure to allergens such as tobacco smoke, pollution, or dust. When dust concentration and CO2 concentration are high, I have difficulty breathing, especially while sleeping. Therefore, I decided to create this project to remotely track the dust density and CO2 density in my room so that I can get a prescient warning before going to bed to alleviate my symptoms. Since Telegram is a cross-platform cloud-based messaging service compatible with iOS and Android, I decided to create a Telegram bot to easily monitor dust and CO2 density assessments on multiple devices. In Telegram, bots with a list of commands can be easily created, unlike any other messaging applications, these bots are special accounts that do not require an additional phone number to set up. The Telegram bot IoT Carbon Dioxide and Dust Monitor that I created for this project allows the user to display real-time dust and CO2 density assessments using the following command: /co2_density/dustdensity I developed a PHP web application (outgoing) to communicate with my Telegram bot. The application is updated from the Telegram Bot API, saves the dust and CO2 density assessments generated by the sensor (described below) to a given MySQL database table, and sends the density assessments to my Telegram bot when needed. To accurately derive the dust and CO2 concentrations, I used the MH-Z14A NDIR CO2 sensor and the GP2Y1010AU0F dust sensor. I chose to use the Arduino Nano RP2040 Connect to read the assessments and transmit them to the web application because it is a high-performance development board with a built-in u-blox NINA-W102 radio module. As the name suggests, the board is based on the RP2040 microcontroller from the Raspberry Pi Foundation. To display the evaluation on the device before sending it to the web app, I used an SSD1306 OLED (128x32) screen. Finally, I added a 5mm common anode RGB LED to show the connection status between the device (via the Nano RP2040 Connect) and the web app. After completing the wiring on the breadboard and testing the code, Jigglypuff inspired me to design a PCB for this project. Since Jigglypuff has a notorious sleep attack, I thought it would be cute to design a Jigglypuff PCB for a project that helps me relieve my allergy symptoms before bed.
Design Files
 
 
Search Datasheet?

Supported by EEWorld Datasheet

Forum More
Update:2025-05-08 12:56:43
  • EMC zone opened!
  • [STM32F7 Design Contest Invader] Progress Post: FTP Server Debug OK
  • Help with the integrator circuit in phase-sensitive detection
  • What is the function of discrete component diodes?
  • Write WINCE key driver
  • Discussion on LED lighting positioning (welcome to discuss)

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
community

Robot
development
community

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号