Real-time weather monitoring system — monitors river water level, temperature, and humidity with live dashboard visualization, historical data logging, early warning alerts, and synchronized threshold control via Telegram.
| Part | Description |
|---|---|
| Development Board | DOIT ESP32 DEVKIT V1 |
| Code Editor | Arduino IDE 1.8.19 (Stable Legacy Version) |
| Driver | CP210X USB Driver |
| Application Support | • Node.js • Telegram Bot |
| Integration Platform | Node-RED |
| MQTT Broker | EMQX |
| Communications Protocol | Message Queuing Telemetry Transport (MQTT) |
| IoT Architecture | 3 Layer |
| Programming Language | C/C++ |
| Arduino Library | • WiFi (default) • DHT sensor library by Adafruit (Version: 1.4.6) • PubSubClient by Nick O'Leary (Version: 2.8) • ArduinoJson by Benoit Blanchon (Version: 6.19.4) |
| Node-RED Pallete | • node-red (default) • node-red-dashboard • node-red-node-mysql • node-red-contrib-telegrambot |
| Sensor | • DHT11: Air Temperature & Humidity (x1) • HC-SR04: Ultrasonic Sensor (x1) |
| Other Components | • Micro USB cable - USB type A (x1) • ESP32 expansion board (x1) • Adaptor DC 9V 1A (x1) • Jumper cable (1 set) • Breadboard (x1) |
-
Arduino IDE
https://bit.ly/ArduinoIDE_Installer
-
CP210X USB Driver
https://bit.ly/CP210X_USBdriver
-
NodeJS
https://nodejs.org/en/download/prebuilt-installer
| Architecture |
|---|
![]() |
| Software Design |
|---|
![]() |
| Pictorial Diagram | Block Diagram |
|---|---|
![]() |
![]() |
| Wiring |
|---|
![]() |
-
Open the
Arduino IDEfirst, then open the project by clickingFile->Open:Code.ino
-
Fill in the
Additional Board Manager URLsin Arduino IDEClick
File->Preferences-> enter theBoards Manager Urlby copying the following link :https://dl.espressif.com/dl/package_esp32_index.json
-
Board Setupin Arduino IDEHow to setup the
DOIT ESP32 DEVKIT V1board• Click
Tools->Board->Boards Manager-> Installesp32.• Then selecting a board by clicking:
Tools->Board->ESP32 Arduino->DOIT ESP32 DEVKIT V1.
-
Change the Board Speedin Arduino IDEClick
Tools->Upload Speed->115200
-
Install Libraryin Arduino IDEDownload all the library zip files. Then paste it in the:
C:\Users\Computer_Username\Documents\Arduino\libraries
-
Port Setupin Arduino IDEClick
Port-> Choose according to your device port(you can see in device manager)
-
Change the
WiFi Name,WiFi Password, and so on according to what you are currently using. -
Before uploading the program, please click:
Verify. -
If there is no error in the program code, then please click:
Upload. -
Some things you need to do when using the
ESP32 board:• If
ESP32 boardcannot processSource Codetotally -> PressEN (RST)button ->Restart.• If
ESP32 boardcannot processSource Codeautomatically then :-
When information:
Uploading...has appeared -> immediately press and hold theBOOTbutton. -
When information:
Writing at .... (%)has appeared -> release theBOOTbutton.
• If message:
Done Uploadinghas appeared ->The previously entered program can already be operated.• Do not press the
BOOTandENbuttons at the same time as this may switch toUpload Firmwaremode.
-
-
If there is still a problem when uploading the program, then try checking the
driver/port/otherssection.
-
Open
XAMPP, then start theMySQLsection to run a database server locally. -
Access the
browserfirst in order to open the database admin panel, please copy the following link:localhost/phpmyadmin/. -
Create a database called
aws. -
Open the
awsdatabase and Importaws.sqlin theAutomatic-Weather-System/Src/directory.
-
Open @BotFather.
-
Type
/newbot. -
Type the desired bot name, for example:
AWS IOT BOT. -
Type the desired bot username, for example:
aws_iot_indo_bot. -
Also do it for bot image settings, bot descriptions, and so on according to your needs.
-
Copy
your telegram bot API token-> then paste it into the Node-RED flow section.
-
Open
Command Prompt (CMD), then enter the following command to install Node-RED :npm install -g --unsafe-perm node-redWait until the installation is complete.
-
To keep Node-RED secure, You need to set up authentication by running the following command :
node-red admin initPlease select the option as shown in the
Node-RED Authenticationsection of Highlights. For the username and password, please choose your own as needed. -
Next, run Node-RED using the following command :
node-redWait until the initialization process is complete and a message appears indicating that the server has started successfully.
-
After that, Node-RED is ready to be accessed via a web browser using the device's IP address on port 1880.
-
Then log in using the account you have configured as a security measure in Node-RED.
-
Install all the required Node-RED palettes.
-
Open the
Importmenu in Node-RED, then importflow_nodered.jsonin theAutomatic-Weather-System/Src/directory. Make sure all Node-RED flows have been successfully loaded. -
Then, to run the flow, click
Deploy.
-
Download and extract this repository.
-
Make sure you have the necessary electronic components.
-
Make sure your components are designed according to the diagram.
-
Configure your device according to the settings above.
-
Please enjoy [Done].
| Device |
|---|
![]() |
| Node-RED Authentication | |
|---|---|
![]() |
![]() |
![]() |
|
| Node-RED Dashboard |
|---|
![]() |
| Telegram Bot Menu |
|---|
![]() |
| Monitoring Status | |
|---|---|
![]() |
|
![]() |
![]() |
| Early Warning System | |
|---|---|
![]() |
|
![]() |
|
More information: Click Here
If this work is useful to you, then support this work as a form of appreciation to the author by clicking the ⭐Star button at the top of the repository.
This application is the result of the development of the Edutic.id x BNSP Bootcamp 2026. I do not deny that I still use third-party services in this work, including: libraries, frameworks, and so on.















