krishnamvs / ECE-4180-Final-Project-Fall-22

C++ based I2C driver of ENS160 AQI Sensor for mbed LPC1768

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Developing a C++ based driver for ENS160 Sensor for mbed LPC1768

Team Members: Poorvi Bhaskar, Shreyaa Senthilnathan, Surya Senthilkumar Shanthi, Venkata Siva Krishna Madala

Georgia Institute of Technology

Watch our video presentation and demo:

Presentation (5min): https://github.com/krishnamvs/ECE-4180-Final-Project-Fall-22/blob/main/ECE4180FinalPresentation.pptx

Demonstration (5min): https://www.youtube.com/watch?v=4Gfi7DoumOI

Table of Content

Project Idea

In our lab experiments we used a lot of Libraries from the mbed community. We wanted contribute back to them and hone our C++ skills.

We narrowed down on the SparkFun Qwiic ENS160 Air Quality Sensor as it was very recently launched and would be significantly challenging to write a C++ based I2C driver for mbed board.

We also planned on extending our driver to Raspberry Pi 4 Model B and Raspberry Pi Pico. We worked on the Pi Pico driver but faced multiple issues trying to debug it.

Parts List

Electronics:

Schematic and Connection Guide

Device Setup

Here is a few picture of our setup we used for the presentation demo.

Setup

Schematic

Schematic

Connections

mbed Push Button ENS160 uLCD
5V = Vdd VCC VCC
Gnd - GND GND
p8 +
p9 SDA
p10 SCL
p27 RX
p28 TX
p30 RES

Source Code

All the source code is published in the mbed repository.

Link to Final Project Code -> https://os.mbed.com/users/krishnamvs/code/ECE4180FinalProjectFall22/

Link to ENS160 Library -> https://os.mbed.com/users/krishnamvs/code/ENS160_Library/

Future Work

We developed a C++ based driver for ENS160 for the Raspberry Pi Pico. But due to issues with printf's on TinyUSB in the Pi Pico C++ SDK 1.4.0 we were unable to fully test it. As the Pi Pico C++ SDK matures, we hope that we can verify the driver we have developed.

About

C++ based I2C driver of ENS160 AQI Sensor for mbed LPC1768


Languages

Language:C++ 78.1%Language:C 15.2%Language:CMake 6.7%