项目作者: JakubJaszczur

项目描述 :
Weather Station based on HC12 transceiver
高级语言: C++
项目地址: git://github.com/JakubJaszczur/433-Weather-Station-Transmitter.git
创建时间: 2020-09-10T14:11:06Z
项目社区:https://github.com/JakubJaszczur/433-Weather-Station-Transmitter

开源协议:MIT License

下载




Device

Weather Station Transmitter



Status
GitHub Issues
GitHub Pull Requests
License


Weather Station based on HC12 transceiver


Table of Contents

" class="reference-link">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:

" class="reference-link">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

" class="reference-link">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)


" class="reference-link">4. Libraries

" class="reference-link">5. Getting Started

To run Weather Station, user should change some settings:

Node ID - used to identify device by receiver

  1. #define NODE_ID 103 // Device ID, for internal purpose

Sleep time - how often device will wake up and send measurements

  1. #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

  1. #define BAT_FACTOR 0.979981 // a = y/x, calibration factor
  2. #define PAN_FACTOR 0.986017 // a = y/x, calibration factor

Altitude - set real value of your location, used for pressure readings

  1. #define ALTITUDE 515.0 //define altitude of location

" class="reference-link">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:

  1. {
  2. "id":103,
  3. "te":4, // temperature
  4. "hu":72, // humidity
  5. "pr":1024.8, // pressure
  6. "p2":34, // PM2.5
  7. "p1":45, // PM10
  8. "ba":4.07, // battery voltage
  9. "pa":4.794 // solar panel voltage
  10. }

" class="reference-link">7. Changelog

2021-04-09 V1.0 Stable version

" class="reference-link">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.

" class="reference-link">9. Pictures