Designed by Mark Little
Linux Server (X86-64 or Raspberry Pi)
Arduino Sensor Controller
The objective of this software is to interface to one or more Arduino Sensor Controller to the database so that the readings can be recorded and made available to other programs. This program also monitors the Arduino's Clock(s) and resets them as necessary.
SInce the program becomes associated with a USB Serial Port on the computer running the software, the software is only designed to connect with one client at a time. If there are multiple sensors controllers being used, each instance of the program must have its own configuration file to identify the USB port it should connect to.
When the USB port is activated on the Linux Server, the Arduino will reboot and initialise itself. Once it has initialised, it will send out a Version Message that will identify the software running on the Arduino, the version number of the software, as well as an identifying username and password that links the unit to the database.
Once the Arduino unit has be successfully logged in, the Arduino is sent a series of messages that initialise the Arduino to match the Server's configuration. Once the configuration has been initialised, the program waits for the Arduino to periodically send sensor readings that it will decode and save to the database.
As part of the frame of messages sent to the Linux Server, the Arduino sends a copy of its internal clock's date-time. If the Linux Server detects a significant drift in time between its NTP-locked clock and the Arduino's clock, it will send a message res-setting the Arduino's Internal Clock.
The source code documentation for the Linux Server Software is located outside of the normal the normal web server space, so that it can be updated ot totally replaced without impacting the website. Click on the Software Description button below to view the documented source, or to download the source files.
Weather Station Extension Control Software