

12V battery remote monitoring
For farmers, graziers, agriculture and industry
Batmonitor: LoRa voltage level monitoring solution
Batmonitor comes with a combination of a pair of LoRa based devices and a dashboard webapp. There is a transmitter LoRa node which is performing battery level measurement once per 10 minutes (standardly it is a 12V battery, such as traction battery, car battery). These datas are transmitted via LoRa technology on 433 or 868 MHz LoRa band. The receiver is able to receive these data and transmit them to the Batmonitor's database of the webapp via WiFi.
Web interface of Batmonitor comes with lightweight responsive design, suitable for computers or smartphones aswell. It is providing informations about battery voltage supplemented with technical datas about signal (RSSI, SNR, Frequency ofset). There is possible to see these data in graphical visualisation in Line graphs (ApexCharts) for a different time periods. In the web interface, there is included configuration of the current LoRa settings set, which can be used for debug, documentation or future expansion for more devices of a private LoRa network.
Usage Scenarios
Ideal for battery voltage level monitoring at electric fencing, UPS, off-grid installations. Suitable for expansion by IoT sensors, custom behaviour and custom applications too.
Supported Bands
Supported LoRa frequency band depends on used LoRa module and your region. Usually there is 868 and 433 MHz band available in Europe. For Canada 915 MHz, for Asia 923 MHz and 433 MHz in some cases. For 433 MHz band only, there is possible to use SX1278 (RA-02) module, also it comes with u.FL connector. For combined 433 MHz, 868 MHz, 915 MHz and 923 MHz I suggest to use SX1276 which covers all these bands. There are some modules with SX1276, e.g. RFM95, unfortunately there isn't possible to attach external antenna via u.FL connector, wire antenna must be soldered directly to the pin only.
Transmitter & receiver
Transmitter and receiver are based on a open-source microcontroller ESP32 (Lolin32) and LoRa module RA-02 (Semtech SX1278) and comes with a custom PCB 433_LoRa_Lolin32 created by @martinius96 - Your-IoT. Both are low-power devices, a transmitter is working in deep sleep mode waked up by a RTC timer, when voltage measurement and LoRa transmission is scheduled. A receiver is working in light sleep mode, waked up via external source - HIGH signal from a DIO0 interrupt on a RA-02 module when LoRa packet is received. Transmitter has extra wires with resistors, which are attached to a 12V battery terminals. Both devices has a 100x100 mm enclosure with a solar panel, Lithium battery and a 3 dBi LoRa antenna. harging circuit is directly included on a Lolin32 board.
Other platforms
Batmonitor system can be tailor made for your purposes and needs. Standardly it comes with a web interface you need to host yourself locally or via webhosting. In the case you don't want to host it, there can be made the whole visualisation solution with 3rd party IoT platform such as: Blynk, ThingsBoard, Ubidots or a ThingSpeak etc. On these platforms you can use a free to use plans or a pre-paid plan based on your preference.
Affordable
Self-hosted
Downloadable graphs
Open-source HW friendly
Responsive
Multilanguage support
White labeling
Support & feedback
Details

Overview page
Actual data
Batmonitor's main page displays in the real-time battery voltage level, including graph visualisation of battery voltage for the last 24 hours and the last 10 records of voltage including signal quality info. You can choose any time period within the graph and you can download it in .csv or .png format.

Weekly record
Data recorded per week
The Weekly history page provides Line Area graph visualisation of battery level within a 7 days period. If the 12V battery has its own solar controller that is charging it, you can also see that voltage in the graph. Based on the records, you can see, in what day, there was sunny or rainy on your field. It is also possible to download whole graph or its custom cutout on demand in .csv .png .svg format for further analysis, own visualisation.

Configuration
Overview of LoRa settings of the whole setup
Configuration page allows users to see the current LoRa network setup, including frequency, bandwidth, spreading factor, CRC mode, coding rate, or sync word which is used to filter any other traffic within the frequency. These informations are useful for future updates within the system, expanding the network.

E-mail notification
Low battery instant alert
The Batmonitor can send a notification to your e-mail if low battery voltage is recorded, less than 11V right in the moment, when recorded. This notification can be sent once per 6 hours, to not disturb you often. This notification is early, providing enough time to do a physical check on your battery before it is discharged to the dangerous limits, less than 10,5V, which can lead to sulfation
Gallery
Frequently Asked Questions
The most asked question answered below
Do I need web hosting to run Batmonitor on my own server?
Yes, to run Batmonitor independently, you will need either local or internet web hosting. In order to execute the PHP scripts for Batmonitor, your server must have Apache (HTTPD) or NGINX installed and MariaDB / MySQL for database system (phpMyAdmin recommend).
Is it difficult to configure the web application for Batmonitor?
Configuring the web application for Batmonitor is made easy with a detailed, step-by-step guide in PDF format. This guide simplifies the setup process for all users, including instructions for importing the .sql file into MySQL, configuring connect.php file with your database credentials.
What is the current consumption of the hardware?
As we are using the cheap hardware, current consumption is higher, mainly due Lolin32 is a devkit that has onboard led diodes, USB-UART converter that are powered even in deep sleep mode. Transmitter standardly has a current consumption around 1,95 mA and a receiver around 13 mA due the LoRa module in continuous receiver mode. But as the devices has a onboard solar panel that is charging daily, it is not a problem to compensate that current consumption during the day. Receiver is able to work more than 6 days without charging (2000 mAh battery).
Is is possible to reduce the current consumption?
Yes, there are option in buying different hardware, which is more expensive. Your-IoT (@martinius96) has a XIAO_LoRa PCB board that allows you to use XIAO board (ESP32-C6, ESP32-C3, nRF52840, RP2040, MG24 etc.) which has current consumption in range from 2 up to 90 μA. That board has a resistors onboard and a connector for a connection of wires from battery terminals. That PCB is also smaller compared to the current (cheaper) one.
What language options are available in the Batmonitor web app?
The Batmonitor offers Slovak or English language in its web interface.
Can I log data from the Batmonitor into other systems?
Yes, Batmonitor provides JSON output which is accessable via HTTPS request, allowing you to easily parse and integrate the data into other systems.
How is Communication Established Between the Server and the LoRa receiver?
LoRa node communicates with the Batmonitor using HTTPS protocol. Trigger for this action is, when the LoRa receiver receives data of battery voltage (standardly once per 10 minutes), will connect the the WiFi with its pre-defined credentials and perform the HTTPS POST request. Data are written into the database via PHP file on which the request is performed.
Is the LoRa payload encrypted?
LoRa payload is not encrypted. It is not necessary, as there are not transmitted any sensitive data, but it is possible to implement that feature. Encryption will extend the total required uptime of LoRa devices and reduce the battery life.
How does the Transmitter perform measurement?
Transmitter has a voltage divider, standardly with ratio of 1:5,7. There is a battery voltage on a voltage divider input and on its output is reduced for safe voltage which ESP32 can measure. Transmitter will get the ADC value, then it converts it to milivolts and it will also calculate the original (input) value of battery voltage. This value is transmitter via LoRa.
