Thanks to all the sponsors of this contest! Special thank you to doctorcdf who has been very helpful throughout this entire challenge.
I'm very happy that I got the chance to take part in this. I made contact to some great people who were always willing to help even though they compete too.
Now, as the title suggests, my intention with this post is to just take the current project snapshot, not to end it.
This project is not complete due to very bad estimation of the required time and some missing hardware components. Anyway, I plan to finish the project - I'll continue posting about the progress until I'm done. Next up will be the detailed post about InTheAir Qt application running on a BeagleBone Black without X server.
1. BeagleBone Black with BB_View43
BBB is used as a Control Panel with current sensor readings displayed in a full-screen C++ application. I spent way too much time on trying to make touchscreen work properly but I failed - pointer kept jumping to the right side of the screen by itself. It's probably some hardware fault so I decided that I will use the screen as a regular non-touch screen and make the kiosk mode application - this could still be nice.
I setup my BBB to run Debian Linux without window manager (or X server). Qt application writes directly into the framebuffer so X server is not required (The Virtual Framebuffer | Documentation | Qt Project). This is very convenient (no unnecessary resources are being used). The application itself is fully functional but I built Qt without OpenSSL so REST requests are failing so I need to rebuild Qt before I make the detailed post on this subject. Here's a short demo of my Qt application running on the BBB:
Video 1. BBB running my InTheAir application
2. CC3200 Launchpad with custom power supply board
This component of my project was looking very nice until I got to the part where I want to use solar panel for battery charging.
The board was designed using Eagle and made by Wurth Elektronik and I'm more than happy with how it turned out. Great job Wurth.de and thank you sleuz for your help!
Figure 1. Connected board with TI's HDC1000 and Sharp dust sensor
My board is using two TI boost converters with fixed output voltage for 3.3V (TPS61201 | Step-Up (Boost) Converter | Converter (Integrated Switch) | Description & parametrics) and 5V (TPS61202 | Step-Up (Boost) Converter | Converter (Integrated Switch) | Description & parametrics) rails on TI Launchpad. 5V supply is used for the Sharp dust sensor. This part of circuit works fine - if I drive this part of board with 3.8V input from a LiPo battery, I get proper voltages on TPS61201 and TPS61202 outputs.
This board also includes two headers one for TI HDC1000 and one for Sharp dust sensor. I followed shabaz's advice and included a OpAmp to put the dust sensor output in the MSP430 ADC input range. Since I wasn't thinking about this problem (input incompatibility) I designed the board without taking the OpAmp into account so I had to build a small board for that and place it in the middle of the dust sensor "cable". This isn't pretty but it works (especially that epoxy connector)!
Figure 2. Small board with OpAmp for level adjustment
One more thing that wasn't well considered was the choice of pin for the dust sensor output - I selected a pin that's being used for UART Rx and since I plan to use UART later I did a small PCB modification (using X-acto knife and a piece of wire) and changed the dust sensor reading pin.
Figure 3. PCB modification
BQ25504 is where the problem is. Everything looks nice, no shorted pads, everything soldered but this part doesn't give output when I connect a charged battery (charged to ~3.8V).
I decided to leave this for a while and work on other components until I get another sample from TI.
3. FRAM Launchpad
FRAM Launchpad will be used to operate the pollen sensor. My plan is to connect FRAM with CC3200 Launchpads via UART and feed the sensor readings to CC3200. Since I'm still waiting for some essential component for the pollen sensor I didn't spend much time on the Launchpad itself apart from testing it with Energia.
As for the pollen sensor, since I don't have means for pollen sensor calibration, I plan to provide readings of "low/medium/high" type.
I did some tests with detecting dust particles using a photodiode with built-in operational amplifier (OPT101P) but I think that the sensitivity is too low for my application so I ordered separate photodiodes and operational amplifiers and read some literature on photo-sensing. This will be in my focus until I complete the project.
Also, janisalnis's work on dust detection encouraged me to keep working on the pollen sensor.
Software part currently consists of Energia sketch running on CC3200 and a viewer application. This sketch currently reads the temperature, humidity and dust levels but I plan to include the pollen level as well. My initial plan was to use the collected data to operate the air purifier and automatically close window(s) depending on the sensor readings. For this I included the C MQTT library (https://eclipse.org/paho/clients/c/) into my Qt application and made some test with subscribing to AirVantage's SERIAL/tasks/messages topic - this worked as advertised but I didn't connect any actuator until today.
Even though this challenge came to its end, I plan to continue working on this project since the crucial component (pollen sensor) is not produced.
Thanks Element14, Wurth Elektronik, Texas Instruments, CadSoft, Eclipse and Sierra Wireless! It's been fun!