Finally I am able to interface all the sensors and successfully transmit all the data to the IBM IoT platform. There is definitely some room for improvement especially in selection of sensors etc. Currently, Instead of completely reinstalling the firmware I have used two specific locations in external flash to store the different constants, including WiFi credential and only one copy is replaced during update firmware request. And when factory reset request is received the other copy of initial data replace the newly added data.
- PSoC6 WiFi BT kit
- Grove Base Shield for Arduino
- Grove Light Sensor
- Grove Rotation Sensor
- Grove LCD with RGB backlight
- Grove Buzzer
- Soil Moisture senor
- Li-Ion battery for remote operation
- WICED STUDIO
- Cypress is no longer supporting this software and its sdk has lots and lots of issues. Unfortunately wireless capabilities of this kit can only be used with this tool. I have to spend most of my time in sorting out the software issues. On the other hand modus toolbox is pretty good software but doesn't software wireless connectivity . Even tough designing a wireless connectivity application is pretty easy and fun with this software.
- Modus Toolbox
- For initial sensor interface debugging and testing.
Auto Reconnect in case of connection failure.
Measuring the MCU temperature reading from its builtin temperature sensor. The die temperature sensor only works if ADC is configured with internal Vref of 1.2V. If this reference voltage is used to measure external analog sensors then either you need to add extra hardware to reduce the analog signal maximum level or continuously reinitialize the ADC so it can work with 3.3V analog signals. Its was sounding pretty easy but when I start working with WICED STUDIO its analog libraries were a mess. It functions need several parameter but using none of these. Usually when you use SDK function to initialize adc, you provide ADC configuration and ADC channel that you want to read to initialize. But in here whatever the channel you select to read or ADC configuration it will simply ignore everything and Initialize ADC with particular fixed setting and every time it read all 16 channels whether these are used/initlaize or not. I have to completely rewrite the ADC library with RTOS functionality.
Unlike modus toolbox, PSoC creator or any other embedded software there is not a single peripheral which has all the necessary libraries at one place. You really have to dig deep to understand its functionality.
PSoC6 mcu from cypress have a unique feature of bi-directional GPIO functionality. But in wiced studio you cant find out whether certain GPIO is capable of bi-directional operation or not because when you want to communicate with DHT22 you need to connect it with only these GPIO pins.
The most confusing thing about this software is availability of several functions to do the same thing .
Addition of rotatable platform to the system because these plants are pretty small and when placed indoor these start bending toward window (source of light) and you need to continuously rotate the pot to keep them straight.
Replace the existing soil moisture sensor with capacitive one.
Fully reinstalling the firmware over the MQTTS/HTTPS connection is not completed yet.
Node-Red based remote device management.
The Final Interface with some gauges and charts.
Real Time could storage of all the incoming data for later use.
PART 4: Remote Firmware Download and Update
PART 5: Sensors Interfacing
PART 6: Final Testing and Demo