Each sensor (or group of sensors) with their own I2C controller runs within their own program. This simplifies the modular development, but makes it a bit more complicated to send those readings to the database. For example, to enter a reading into the database, the program would need to determine if an entry already existed for that time and it it did not, create it, but if it already exists, update it.
One way to do this is to gather all of the readings from the sensor programs and then send those readings as a single line entry to the database. By using this method, only one program has to communicate with the database over the network. Since the Program suite is being developed using the Qt Development Environment, the sensor tasks will pass reading to the local database and control program using the Qt RemoteObjects Framework.
Once the reading have been aggregated, they will be sent to a MariaDB SQL Database that is located on the main Linux Server connected the gigabit LAN which extends from the house to the backyard sensor enclosure.
Because the Raspberry Pi is also running the MariaDB database, it directly can access the database on the Linux Server. The Linux Server also records the readings from the local Personal Weather Station (PWS) into the database, although it gets the PWS readings from information sent on a different local Wi-Fi LAN using the HTTP protocol.
The local area only has infrequent thunder storms, and it is expected that there will be no valid detections for months at a time. Rather than have a field in the general weather that is NULL for most of the time, the lightning detector has its own table in the database. It can be linked to the other weather observations using the observation times.
The other sensors, even those that operate using interrupts (Radiation, Anemometer, and Rain Gauge), all report on a periodic basis and essentially report at the same time. These readings are inserted into a single line that is inserted into the SQL database that is on the Linux computer.
At this stage, the software interfaces available to the ADS-B receiver are unknown at this stage and will be determined when the device is purchased and installed.
One of the prime objectives of this software is to have programs that do not use a graphical interface on the Raspberry Pi as this tends to consume resources in excess of its benefit, but the Raspberry Pi can be booted into a graphical interface if necessary using raspi-config via a console session using SSH.
Licenced under Creative Commons Attribution Share Alike 4.0 International or better by Mark Little (2022 - 2023)