A Temperature Sensor connected via LoRa with a Master Module with a WLAN connection.
The aim of this project is to record the temperatures of the individual units in a small apartment complex in order to obtain an overall picture of the heating and cooling performance. The sensor data of the slave modules are then sent via LoRa to the master module. This then forwards the data via WLAN to a cloud service. This means that each slave module does not have to have its own WLAN configuration.
flowchart TD
A[Temperature and Humidity Sensor 'sensor-v3'] -->|LoRa communication| B(LoRa WLAN Gateway 'gateway-v3')
B -->|WLAN communication| C(Internet Router)
C --> D(iotplotter)
The Received Signal Strength Indication (RSSI) is the received signal power in milliwatts and is measured in dBm.
This value can be used as a measurement of how well a receiver can "hear" a signal from a sender.
The closer to 0 the better the signal is, RSSI minimum is -120dBm
.
-30dBm
signal is strong-120dBm
signal is weak
The first housing variant (V1) still had few openings due to the additional optimization, the sensor now reacts faster to changes. The current housing variant is (V2)
In the beginning, the temperature always increased the same when I put my sensor into operation. After a little research I then found out that the standard configuration makes 1000 queries per second and thus the temperature sensor heats up this I have now solved so that I manually trigger the sensor to query the temperature value and this now happens only 1 time per second.
When measuring with a thermal imaging camera, it is now clearly visible that the ESP32
heats up the housing disadvantageously in continuous operation and influences the temperature measurement with a very high probability. The next development steps therefore go in the direction of deep sleep to improve this behavior. After my first tests in deep sleep I could see a temperature difference of 1.5°
which is the deep sleep
code optimization.
Adjusting the sensor name each time in the code before compiling was very inconvenient and error-prone. Since the ESP32 has no EEPROM I have now stored the values in the flash via the Preferences
library.
lora-serialization, CayenneLPP, protobuf The protocols are too complicated to implement a simple device-to-device communication.
The humidity sensor stopped working after a good 2 years. It now only delivers 100% values. It was only used indoors, but the humidity reached 100%. If you search for it on the Internet, other people seem to have the same problem.
- 1x Heltec - WIFI LoRa 32 - V2.1 (SX1276)
- 1x AZDelivery GY-BME280 Temperature Sensor
- 1x Prototype Board
- espressif - arduino-esp32 (httpclient is more up to date than like heltec)
- sandeepmistry - arduino-LoRa
- adafruit - Adafruit_BME280
- adafruit - Adafruit_SSD1306
Tool | Description |
---|---|
https://iotplotter.com | Simple tool to visualize fast data but there is no real configuration for the endpoints |
https://datagekko.com | Currently not yet available is in a closed beta |
https://iotguru.live | Not tested |
https://thingspeak.com | Not tested |
https://thingsboard.io | Not tested |