IoT Applications
LoRa based Beehive Monitoring System
Parts List
- PC
- Raspberry Pi 3B (base station, data server)
- ESP32 with LoRa (TTGO) , one for the base station, one for each sensor node
- Sensors (e.g. scale HX711, temperature, humidity)
- LiFePo4-type batteries provide the voltage for the ESP32 sensor nodes, without the need for regulators
Software
PC: Remote Desktop for connecting to the Desktop of the Raspberry Pi
Raspberry Pi:
- Python script for data acquisition https://github.com/TomNaiser/LoRa-Sensor-Monitoring/blob/master/LoRaSensorMonitoringServer.py
- kst2 for data plotting. Great for real-time large-data visualization of sensor data. The python data acquisition script adds the data to end of a growing csv file, which is used as data source of kst2.
ESP32 receiver (attached to Raspberry Pi): Receive data via LoRa from multiple sensor nodes and send the data via serial (USB) to the Raspberry Pi (or PC). https://github.com/TomNaiser/LoRa-Sensor-Monitoring/blob/master/LoraToSerialInterfaceV4.ino
ESP32 sensor node: https://github.com/TomNaiser/LoRa-Sensor-Monitoring/blob/master/LoraSenderDSleepV5.ino
HX711 based weight acquisition. For long battery life the ESP32 goes into Deep Sleep Mode until the next measurement is scheduled.
Setup
Setup the Raspberry Pi
(Re-)installation of Raspbian:
download balena-Etcher (used for writing the image to a SD-card) to PC
download Raspbian-image
selected the zipped imageFile in balena-Etcher
select your SD-Card and write the image
Install SD in the Raspberry Pi and install Raspbian
setup Remote-Desktop:
sudo apt-get purge realvnc-vnc-server
sudo apt-get install xrdp
sudo apt-get install spyder3
sudo apt-get install kst
setup python script autostart:
sudo crontab -e
open with nano
enter the following line at the end:
@reboot python /home/pi/PythonCodes/LoRaSensorMonitoringServer.py
Setup the ESP32
Load the Arduino projects and flash to ESP32