General purpose firmware for cellular-enabled PSoC motes
Download the firmware using git:
git clone https://github.com/open-storm/perfect-cell.git
Open perfect-cell.cyprj
using PSoC Creator (4.1 or greater).
Configure your firmware to match your server settings (see below), then build the project.
Use PSoC Creator to flash the firmware to a compatible device.
First, set up a remote server to receive data from the sensor node.
Set the following parameters in config.h
to match your server settings:
// Service to use
#define USE_INFLUXDB 1
#define USE_CHORDS 0
...
// Default user info
#define DEFAULT_HOME_USER "home_user"
#define DEFAULT_HOME_PASS "home_pass"
#define DEFAULT_HOME_DB "HOME_DB"
#define DEFAULT_HOME_PORT 8086
#define DEFAULT_HOME_HOST "your-ec2-instance-here.com"
// Meta user info
#define DEFAULT_META_USER "meta_user"
#define DEFAULT_META_PASS "meta_pass"
#define DEFAULT_META_DB "META_DB"
#define DEFAULT_META_PORT 8086
#define DEFAULT_META_HOST "your-ec2-instance-here.com"
...
// SSL parameters
#define SSL_ENABLED 1u
Data can be transmitted remotely to a CHORDS portal. Currently, bidirectional communication with the CHORDS portal is not supported.
Set the following parameters in config.h
to match your server settings:
// Service to use
#define USE_INFLUXDB 0
#define USE_CHORDS 1
...
#define CHORDS_HOST "your-portal.chordsrt.com"
#define CHORDS_PORT 80
#define CHORDS_INSTRUMENT_ID 1
#define CHORDS_WRITE_KEY_ENABLED 1
#define CHORDS_WRITE_KEY "key"
#define CHORDS_IS_TEST 0
...
// SSL parameters
#define SSL_ENABLED 0u
The perfect-cell
firmware contains a simple operating system that performs the following routines at a recurring interval.
- ''wakes'' the board from sleep mode
- takes measurements using the attached sensors
- connects to the cellular network
- sends sensor data to a web server
- updates device metadata and onboard parameters
- triggers attached actuators
- puts the board back into sleep mode.
An overview of the firmware can be found in the open-storm docs.
Auto-generated doxygen documentation can also be found here.
Schematics for the board can be found here.