MH-Z19B is an intelligent infrared CO2 module which interacts with the Raspberry Pi using UART (universal asynchronous receiver-transmitter). Takuya uses the UART port on ANAVI Infrared pHAT to attach MH-Z19B. The rest of the sensor modules for his setup are included in ANAVI Infrared pHAT Advanced kit: HTU21D for temperature and humidity, BMP180 for barometric pressure and BH1750 for light.
By the way, initially we had published open source examples for using HTU21D, BMP180 and BH1750 in the C programming languages using the library wiringpi. Takuya also based his setup on wiringpi. However, wiringpi is now deprecated therefore we have replaced it with another library called libi2c-dev. Furthermore we added examples written in Python 3.
ANAVI Miracle Controller is a new entirely open source development board for addressable (digital) LED strips like NeoPixels, WS2812B, WS2811, etc. The major advantages are that you can control two LED strips simultaneously, add a mini OLED display and I2C sensor modules as peripherals. Recently we launched a crowdfunding campaign for it at Crowd Supply.
ANAVI Miracle Controller is a development board and it is easy to flash a custom firmware on it. The process is very similar as for our other open source project like ANAVI Thermometer, ANAVI Gas Detector and ANAVI Light Controller.
This tutorial explains the exact steps how to compile and upload the default open source Arduino sketch for ANAVI Miracle Controller using Arduino IDE.
Required Hardware
ANAVI Miracle Controller
USB to UART debug cable
Addressable LED strip
Appropriate power supply at 5V or 12V depending on the type of LED strips
Personal computer with MS Widows, Mac OS or GNU/Linux distribution
Optionally a mini OLED display and other peripherals can be attached
Download Source Code from GitHub
The default firmware of ANAVI Miracle Controller is an open source Arduino sketch. It relies on several popular open source Arduino libraries, including FastLED for controlling addressable LED strips. Clone or download the source code from GitHub.
Connecting UART to USB
Each ANAVI Miracle Controller kit includes a USB to UART debug cable with CP2102. Depending on the operating system on your PC you might be required to install additional drives. It works out of the box on GNU/Linux distributions. As open source enthusiasts we are using it on Ubuntu. Plug the USB in your computer and connect the 3 wires as follows:
ANAVI Miracle Controller
USB to UART Debug Cable
RX
TX
TX
RX
GND
GND
Download Arduino IDE
Download and install Arduino IDE on your personal computer. It is free and open source software available for MS Windows, Mac OS and GNU/Linux distributions.
Launch Arduino IDE. From File > Open load an Arduino sketch. It can be the default firmware or any other compatible with ANAVI Miracle Controller Arduino sketch.
Configure ESP8266 in Arduino IDE
Go to File > Preferences. Select Settings and in the field Additional Boards Manager URLs add: http://arduino.esp8266.com/stable/package_esp8266com_index.json
From Arduino IDE select Tools > Board: Generic ESP8266 Module. Set the flash size to 4M (1M SPIFFS). The upload speed is 115200. Adjust the exact port of USB to serial debug cable connected to your computer.
In Arduino IDE click Verify/Compile. If there are any errors, please double check that you have installed all required libraries and their exact versions. If the source code compiles successfully, please proceed to to the next step for flashing the firmware.
In Arduino IDE click Upload. Set the jumper on ANAVI Miracle Controller to 5V or 12V depending on your power supply and type of LED strips. The power supply voltage must match the required voltage by the LED strips, for example 5V for NeoPixels and the WS2812B included in all kits. Press and hold the RESET button on ANAVI Miracle Controller. Without releasing the RESET button, plug the power supply in the barrel jack of ANAVI Miracle Controller.
Do NOT release the RESET button until you see in Arduino IDE that the upload is 100% completed!