I wrote a document
to describe this system several years ago, but the system has substantially
evolved since then, while the document has been neglected. I'll discuss
the system with anyone interested in doing something similar.
I'd do many things differently if I were
starting from scratch now.
The transmission rate for
communication between the base and the sensor stations was left at the
Arduino's default of 9600 baud. As a result, one or two messages out
of every thousand or so are lost because of collisions, when two remote
stations are trying to call in at once. A higher transmission speed
should have been used.
The observation logs are timestamped
with wall-clock time. There is code that resets the base station's
real-time clock for the beginning and end of Daylight Savings Time, but
there is still a small amount of manual fiddling required each year.
The system would be much simpler if the logs used UTC, with DST adjustment
used only for human reading, as needed.
The Arduino software was originally
written as a single large program that read digital input lines to tell it
whether it was running in the base station or peripherally, and, in the
latter case, which sensors it should try to read. This was a mistake,
corrected in the current base station and in the newer peripheral stations.
Page revised: 01/24/2017 10:49