This project is a solar-powered environmental sensor which communicates via RF data messages with the Weather Logger and several other projects. It is located outside in a location near a solar array which generates ample current for the device's current consumption. It contains a rechargable battery to keep it operating at night
|
This is the inside from the top. It has three sectionns, At the top is the Shunt to measure the output of the solar panel. This includes charging current for a 12V battery connected to the studs at the right. It also contains half of the battery.
The center section contains the other half of the battery and a circuit board which contains the power conditioning, battery-voltage measuring and charging current measuring circuitry. The lower section contains the Arduino processor and the RF transmitting module. A shelter open at the ends hides the BME680 digital environmental sensor.
 |
Here are the circuit diagrams. The battery voltage of 4.8V is reduced to regulated 3.3V by sepatate regulators in the sensor and the procesor. The transmitter uses the battery voltage directly.
The shunt which measures the solar array current produces a negative voltage, A precision 1.2 V shunt diode elevates this into the positive region for measureing. A second precision 1.2 V shunt diode is measured to back-calibrate the 3.3 V supply, which is the reference for all 3 of the rest the analog measurements.

|
Here is the Arduino Sketch. |
This project transmits two messages alternately.
The message characters are sent by on-off keying, on = 1.
A message is preceded by this preamble:
1) An on pulse of 20 milliseconds.
2) A gap of 10 milliseconds. 3)A gating sequence of 7 ASCII characters. All items are sent at 2400 baud. The first item of each message is an ASCII character which identifies which message. Both messages have 4 fields providing analog values in 3 ASCII digits. Item 3 indicates the number of items which contribute to the checksum. The ASCII letter K is decimal 75. The number of characters is 15 (75-60). The checksum consists of 2 hexadecimal digits which follow the last analog value<
|