Weather Station based on HC12 transceiver
Weather Station based on HC12 transceiver
Weather Station powered by 18650 Li-ion battery, charged by solar panel. 433MHz HC-12 module is used to send data formatted in JSON. The project is a part of bigger IOT system, and is related to my other projects:
Main components:
Device | Description | Price |
---|---|---|
Arduino Nano V3 | Main IC (clone) | $2.50 |
BME280 | Temperature, humidity, pressure sensor | $2.10 |
MCP9808 | High accuracy temperature sensor | $0.75 |
BH1750 | Light sensor | $1.00 |
SI1145 | UV index sensor | $3.70 |
PMS3003 | Dust sensor | $13.40 |
HC12 | 433MHz transceiver | $1.95 |
J5019 | Battery charger with DC-DC converter | $0.69 |
2000mAh Li-Ion | 18650 Battery | $2.20 |
18650 holder | 18650 Battery holder | $0.35 |
PC,B | Custom PCB | |
Housing | Custom housing (3D printed) |
To run Weather Station, user should change some settings:
Node ID - used to identify device by receiver
#define NODE_ID 103 // Device ID, for internal purpose
Sleep time - how often device will wake up and send measurements
#define SLEEP_TIME 37 // x * 8s = sleep time
Calibration factors - booth should be 1.0 at the beginning, later can be adjusted to fit measured voltages to real values
#define BAT_FACTOR 0.979981 // a = y/x, calibration factor
#define PAN_FACTOR 0.986017 // a = y/x, calibration factor
Altitude - set real value of your location, used for pressure readings
#define ALTITUDE 515.0 //define altitude of location
Measurements send by device using HC-12:
{
"id":103,
"te":4, // temperature
"hu":72, // humidity
"pr":1024.8, // pressure
"p2":34, // PM2.5
"p1":45, // PM10
"ba":4.07, // battery voltage
"pa":4.794 // solar panel voltage
}
2021-04-09 V1.0 Stable version
Software:
Hardware: