We have a number of web-enabled product that we have developed ourselves or for third party companies. We have quite a wide range of code that we can re-use in development of your products in order to rapidly assist you on getting your products connected. This can significantly reduce the cost and lead time on product development.
How it works
Our IoT PCBs connect to our servers permanently. We use a proper IoT SIM which can use any network and is expected to maintain a data connection. They don’t send SMS messages or make calls however. Our servers have to do this so we use an Amazon Web Services Cloud server for reliability. If the PCB can’t connect it will retry every 2-4 minutes. Standard SIMs are not reliable.
The PCBs upload a data string with input data either on a timer or when prompted by something external. We have standard strings with voltages, signal strength, output settings etc… We also have some customised strings that the server recognises for various products. Some of these products are ours and some are for other companies we have developed products for.
The PCB server puts these strings in a file in a folder on the web-server so they can be accessed by a browser. They are normally stored as a php file so you have to be logged in to open them or a txt file if it doesn’t matter.
The above unit sends a string that the server knows to store as pmData.php in the individual unit’s own folder. The web-page keeps reading this page every second and updates the dials and charts with new data. There is a time stamp on this data so it knows if the data stops coming.
Turning to the PCB, we have common firmware across our products. 7.01 is the current GSM only firmware 7.05 is the combined WiFi and GSM firmware. We have an area in the code just for each product’s specific needs. We have firmware for I2C pressure, humidity and temperature sensors. We have SPI RAM storage and SPI sensors. We can read-in UART, RS-232 and RS485 data.
All of the sensor or UART/RS232 data can be sent directly to the web-page files as described above or stored in a log file. Additionally, we can read that data on the chip and look for specific words and raise events.
An event is used to trigger an email or SMS (or even call). For example, if an input voltage goes over a certain voltage it can create an event thus triggering a message. Similarly, if a certain string of characters are read in through the UART input then this can trigger an event to send a message.
We can also send data in reverse from a web-page. For example, you can change something on a Raspberry Pi through the UART command line interface via a remote web-page.
Our chips can be flashed remotely.