Jigglypuff IoT Carbon Dioxide and Dust Monitor

Based on Arduino Nano RP2040 Connect, display the dust density (mg/m3) and the carbon dioxide (CO2) density (ppm) via a Telegram bot.

Similar projects worth following
The dust density and the carbon dioxide (CO2) density affect my sleep quality and health detrimentally due to the fact that I have allergic bronchitis. Allergic bronchitis is a chronic pulmonary disease, and exposure to allergy triggers like tobacco smoke, pollution, or dust can instigate it. When the dust density and the carbon dioxide density are higher, it becomes struggling for me to breathe, especially while sleeping. Therefore, I decided to create this project to track the dust density and the carbon dioxide density in my room remotely so as to get a prescient warning to extenuate my symptoms before going to bed.

Since Telegram is a cross-platform cloud-based messaging service compatible with iOS and Android, I decided to create a Telegram bot to monitor dust and carbon dioxide density evaluations on several devices easily. In Telegram, it is effortless to create bots with a command list unalike any other messaging application, which are special accounts that do not require an additional phone number to set up. IoT Carbon Dioxide and Dust Monitor, the Telegram bot I created for this project, allows the user to display real-time dust and carbon dioxide density evaluations with these commands:

  • /co2_density
  • /dust_density

I developed a PHP web application (outgoing) to communicate with my Telegram bot. The application gets updated from the Telegram Bot API, saves dust and carbon dioxide density evaluations generated by the sensors (explained below) to the given MySQL database table, and sends the density evaluations to my Telegram bot when requested.

To elicit the dust density and the carbon dioxide density accurately, I utilized an MH-Z14A NDIR CO2 Sensor and a GP2Y1010AU0F Dust Sensor. I chose to employ an Arduino Nano RP2040 Connect to read evaluations and transfer them to the web application since it is a high-performance development board with the built-in u-blox NINA-W102 radio module. As its name implies, this board is based on the Raspberry Pi Foundation’s RP2040 microcontroller.

To also display evaluations on-device before sending them to the web application, 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 Nano RP2040 Connect) and the web application.

After completing wiring on a 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 which helps me to alleviate my allergy symptoms before sleeping :)

Since pink PCBs are not widespread, you may not have seen the pink solder mask option before. If you want to design a PCB with the pink solder mask option like my PCB, I highly recommend PCBWay. They provide a fast, reliable, and budget-friendly service for unique PCB colors and requirements. You can inspect PCBWay solder mask and silkscreen options from here.

Huge thanks to PCBWay for sponsoring this project.

Step 1: Designing and soldering the Jigglypuff IoT Carbon Dioxide and Dust Monitor PCB

Before prototyping my PCB design, I tested all connections and wiring with the Arduino Nano RP2040 Connect.

Then, I designed the IoT Carbon Dioxide and Dust Monitor PCB by utilizing KiCad - inspired by the adorable and charming Jigglypuff :) I attached the Gerber file of the PCB below. Therefore, if you want, you can order this PCB from PCBWay to create a cute apparatus to track the dust density and the carbon dioxide density anywhere.

Click here to inspect and order this PCB directly on PCBWay.

First of all, by utilizing a soldering iron, I attached headers (female), resistors (150Ω, 2.2K, 3.3K), an MH-Z14A NDIR CO2 Sensor, a GP2Y1010AU0F Dust Sensor, a 5mm common anode RGB LED, a capacitor (220µF), and a power jack.

Component list on the PCB:

A1 (Headers for Arduino Nano RP2040 Connect)

SSD1306 (Headers for SSD1306 OLED (128x32) Screen)

MHZ14 (MH-Z14A NDIR CO2 Sensor)

GP2Y10 (GP2Y1010AU0F Dust Sensor)

D1 (5mm Common Anode RGB LED)

C1 (220µF Capacitor)

R1 (2.2K Resistor)

R2 (3.3K Resistor)

R3 (150Ω Resistor)

J1 (Power Jack)

To make my PCB design more refined, I installed the GP2Y1010AU0F Dust Sensor on the back of the PCB and fastened it with a hot glue gun. I also added two solder jumper pads (JP1, JP2) connecting the Nano RP2040 Connect to the MH-Z14A CO2 sensor's UART interface.

Step 2: Building a Telegram bot with BotFather

BotFather is a Telegram bot that lets us create and manage bots on Telegram without any coding required.

⭐ First...

Read more »

  • 1 × PCBWay Custom PCB
  • 1 × Arduino Nano RP2040 Connect
  • 1 × MH-Z14A NDIR CO2 Sensor
  • 1 × GP2Y1010AU0F Dust Sensor
  • 1 × SSD1306 OLED (128x32)

View all 12 components

  • 1
  • 2
  • 3

View all 4 instructions

Enjoy this project?



kutluhan_aktar wrote 11/11/2021 at 20:38 point

Please feel free to leave a comment here if you have any questions or concerns regarding this project 😃

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates