Home

Awesome

<h1 align="center">CanAirIO Project</h1> <p align="center"> <a href="https://github.com/kike-canaries/canairio_firmware/actions/"><img alt="Discord" src="https://github.com/kike-canaries/canairio_firmware/workflows/PlatformIO/badge.svg"/></a> <a href="https://t.me/canairio"> <img src="https://img.shields.io/endpoint?color=neon&style=flat-square&url=https%3A%2F%2Ftg.sumanjay.workers.dev%2Fcanairio" alt="Support Group"/></a> <a href="https://github.com/kike-canaries/canairio_firmware"><img src="https://views.whatilearened.today/views/github/kike-canaries/canairio_firmware.svg" alt="Visitors"/></a> <a href="https://liberapay.com/CanAirIO/"><img alt="Liberapay patrons" src="https://img.shields.io/liberapay/patrons/CanAirIO"></a> <a href="https://canair.io/docs"><img src="https://img.shields.io/badge/user-docs-white.svg" alt="CanAirIO Documentation"/></a> <a href="LICENSE"><img src="https://img.shields.io/static/v1?label=license&message=GPLv3&color=white&style=flat" alt="License"/></a> <br> <br><a href="https://canair.io">CanAirIO</a>‎ ‎ |‎ ‎ <a href="https://canair.io/docs/">Documentation</a><br> </p>

[!NOTE] CanAirIO 0.7.0 is almost here.

Please help test the development branch and share your experience in our Telegram Group. Please install the "testing version" from the CanAirIO installer, configure your WiFi, and you'll receive the latest version soon.

<br> <img alt="CanAirIO AirQuality Project" src="https://raw.githubusercontent.com/kike-canaries/canairio_firmware/master/images/canairio_collage_community.jpg">

<a href="https://play.google.com/store/apps/details?id=hpsaturn.pollutionreporter" target="_blank"><img src="https://raw.githubusercontent.com/kike-canaries/android-hpma115s0/master/assets/googleplay/gplayicon.png" align="left" style="margin: 2px" width="140" ></a>

A citizen science project that employs both mobile and fixed sensors to measure air quality (PM 2.5 or CO2) and environmental variables. This is achieved using low-cost sensors and smartphones. The project is built around an ESP32 module board integrated with the CanAirIO Android client app.

<table> <tr> <td> Don't forget to star ⭐ this repository </td> </tr> </table>

[!NOTE] CanAirIO Android App is down now! sorry, we are working on that, please download a signed version of our GitHub

Features

Boards supported

The last release of CanAirIO Device supports the next boards:

Firmware NameBoards supportedDisplayGuide and schematics
TTGO_TDISPLAYTTGO T-DisplayeTFTCanAirIO Bike, CanAirIO Plantower
TTGO_T7TTGO T7, D1Mini, **OLED 64x48CanAirIO v2.1, CanAirIO IKEA
M5STICKCPLUSM5StickC PluseTFTCanAirIO M5StickC Plus
M5ATOMM5Atom LiteOLED I2CM5Atom Lite sample
ESP32DevKitESP32DevKit, NodeMCU V3, **OLED 128x64HacksterIO
TTGO_TQTTGO TQBuiltin OLEDTTGO_TQ board
WEMOSOLEDWemosOLED and similar boardsOLED 128x64ESP32 OLED board
HELTECESP32 Heltec boardOLED 128x64
ESP32C3M5STAMPC3**OLEDBLE not supported
ESP32C3OIPLUSTTGO-T-OI-PlusOLEDBLE not supported
ESP32C3LOLINLOLIN Mini C3OLEDBLE not supported
ESP32C3SEEDXSeeed_xiao_esp32c3OLEDBLE not supported
TTGO T7S3LilyGO ESP32S3 T7S3OLEDConfig via CLI. BLE notifications
ESP32S3ESP32S3 CAM FreenoveOLEDConfig via CLI. BLE notifications
ESP32S3Makerfabs S3 ParallelTFTIn development

** is possible that the current firmware supports more boards and sensors. Also you can choose the sensor brand or type on the CanAirIO Android app or on the firmware CLI.

Installation alternatives

We have different alternatives to load the current firmware. By complexity order, they are:

Via CanAirIO Web Installer (RECOMMENDED)

If you already have a ESP32 board, you can test our CanAirIO firmware on one click, with our web installer:

canairio web installer on m5stickcplus
Full video - Web installer

Via CanAirIO loader

You will able to install the last version of CanAirIO firmware using a simple Arduino sketch that it will doing all for you, you only need to use the official Arduino IDE or Arduino Droid app for Android for load this simple sketch. Please follow the instructions here or follow the next YouTube video guide for Android OTG installation alternative.

Via binaries

You can download the last firmware version in releases section. For example, download the last production release from assets section, like this:

releases assets

please uncompress the zip file and connect your CanAirIO device to your USB and execute the next command to upload the firmware to your board, for example for an ESP32DevKit board you should run the next commands:

Linux and MacOSx

unzip canairio_rev414_20190829.zip
cd canairio_installer
esptool --port /dev/ttyUSB0 -b 1500000 write_flash 0x0 canairio_ESP32DEVKIT_rev932_merged.bin

(You should install esptool in your system.)

Windows

Please read the Espressif Uploader section in the main documentation to have details of how load the firmware via the official Espressif Download Tool in Windows.

Via PlatformIO (Compiling on Linux, Mac or Windows)

Please install first PlatformIO open source ecosystem for IoT development compatible with Arduino IDE and its command line tools (Windows, MacOs and Linux). Also, you may need to install git in your system.

For the default board TTGO_TDISPLAY (CanAirIO Bike), clone and upload firmware via USB cable:

git clone https://github.com/kike-canaries/canairio_firmware
cd canairio_firmware
pio run --target upload

For a specific firmware for example for a TTGO-T7 board, only change the last line for:

pio run -e TTGO_T7 --target upload

Via Docker

First build the Docker image using the following command line:

docker build -t canairio_pio:master .

This build a basic compiler image with all PlatformIO stuff. For build the project you only needs now run:

./docker_build run

OTA WAN updates

CanAirIO offers two channels for remote OTA (Over-The-Air) updates for your device: the production channel and the development channel. This means you won't need to reinstall the firmware manually for any updates; it's all automatic. You only need to have Wi-Fi enabled on your device to receive these firmware updates.

If you're interested in the latest testing updates, please go to the releases section and choose and download the development firmware (a zip file with dev in its name), then upload it to your board to receive these kind of updates.

Supporting the project

If you want to contribute to the code or documentation, consider posting a bug report, feature request or a pull request.

When creating a pull request, we recommend that you do the following:

Also you can consider make a donation, be a patron or buy a device:

<a href="https://raw.githubusercontent.com/kike-canaries/canairio_firmware/master/images/ethereum_donation_address.png" target="_blank"><img src="https://raw.githubusercontent.com/kike-canaries/canairio_firmware/master/images/ethereum_donation_address.png" align="left" style="margin: 10px" width="140" ></a>

NOTE:
Supporting our Citizen Science Initiative many people be able to fight for air quality rights in many countries with this kind of problems. More info in CanAir.IO

CanAirIO device HOWTO guide

We have some build guides with different alternatives, please visit our CanAirIO documentation.

CanAirIO CO2 and Mini

<a href="https://canair.io/docs" target="_blank"><img src="https://raw.githubusercontent.com/kike-canaries/canairio_firmware/master/images/collage.jpg" height="400" ></a>

Building Guide

<a href="https://youtu.be/V2eO1UN5u7Y" target="_blank" style="padding-left: 20px" ><img src="images/canairio_bike_make_of_youtube.jpg" width="420" ></a>

Soldering Guide (some improvements)

<a href="https://youtu.be/Oarq0K0Sz3c" target="_blank" style="padding-left: 20px" ><img src="images/canairio_bike_soldering_on_youtube.jpg" width="420" ></a>

Box STL files

** W A R N N I N G **

The last versions for all box versions, are in the official repository because it is more easy for handling the versions than Thingiverse.

TODO