Skip to content

Latest commit

 

History

History
148 lines (115 loc) · 5.55 KB

README.md

File metadata and controls

148 lines (115 loc) · 5.55 KB

Device

Weather Station Transmitter

Status GitHub Issues GitHub Pull Requests License


Weather Station based on HC12 transceiver

Table of Contents

1. About

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:

2. Features

  • Various sensors - temperature, humidity, pressure, light intensity, UV index, PM2.5, PM10
  • Battery and solar panel voltage measurements
  • Possibility to add more sensors (e.g. by I2C)
  • Deep sleep to save power
  • Debug mode

3. Bill of Materials

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)

## 4. Libraries

5. Getting Started

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

6. Description

Measurements

  • Temperature: measured by MCP9808 to ensure high accuracy (0,25ºC)
  • Humidity, Pressure: measured by BME280
  • Light: measured by BH1750 (lux)
  • UV index: measured by SI1145
  • PM2.5, PM10: measured by PMS3003
  • Voltages: battery and solar panel voltages measured by analog inputs

Output Parameters

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
}

7. Changelog

2021-04-09 V1.0 Stable version

8. Task list

Software:

  • Service commands (receive data, e.g. calibration factors, sleep time and store in EEPROM)

Hardware:

  • Add additional capacitor to Vcc for better stability
  • Change MOSFET circuit - Q1 should be connected to GND, add gate-source resistor
  • For future - add anemometer, rainmeter, wind direction etc.

9. Pictures