Skip to content
This repository was archived by the owner on Aug 28, 2026. It is now read-only.

Latest commit

 

History

19 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Open Source Love License: GPL-3.0 GitHub last commit Project Type

Automatic Weather System

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.



Project Requirements

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)



Download & Install

  1. Arduino IDE

    https://bit.ly/ArduinoIDE_Installer
    

  2. CP210X USB Driver

    https://bit.ly/CP210X_USBdriver
    

  3. NodeJS

    https://nodejs.org/en/download/prebuilt-installer
    



Project Designs

Architecture
architecture
Software Design
flowchart
Pictorial Diagram Block Diagram
pictorial-diagram block-diagram
Wiring
wiring



Arduino IDE Setup

  1. Open the Arduino IDE first, then open the project by clicking File -> Open :

    Code.ino


  2. Fill in the Additional Board Manager URLs in Arduino IDE

    Click File -> Preferences -> enter the Boards Manager Url by copying the following link :

    https://dl.espressif.com/dl/package_esp32_index.json
    

  3. Board Setup in Arduino IDE

    How to setup the DOIT ESP32 DEVKIT V1 board

    • Click Tools -> Board -> Boards Manager -> Install esp32.

    • Then selecting a board by clicking: Tools -> Board -> ESP32 Arduino -> DOIT ESP32 DEVKIT V1.


  4. Change the Board Speed in Arduino IDE

    Click Tools -> Upload Speed -> 115200


  5. Install Library in Arduino IDE

    Download all the library zip files. Then paste it in the: C:\Users\Computer_Username\Documents\Arduino\libraries


  6. Port Setup in Arduino IDE

    Click Port -> Choose according to your device port (you can see in device manager)


  7. Change the WiFi Name, WiFi Password, and so on according to what you are currently using.

  8. Before uploading the program, please click: Verify.

  9. If there is no error in the program code, then please click: Upload.

  10. Some things you need to do when using the ESP32 board :

    • If ESP32 board cannot process Source Code totally -> Press EN (RST) button -> Restart.

    • If ESP32 board cannot process Source Code automatically then :

    • When information: Uploading... has appeared -> immediately press and hold the BOOT button.

    • When information: Writing at .... (%) has appeared -> release the BOOT button.

    • If message: Done Uploading has appeared -> The previously entered program can already be operated.

    • Do not press the BOOT and EN buttons at the same time as this may switch to Upload Firmware mode.


  11. If there is still a problem when uploading the program, then try checking the driver / port / others section.



Database

  1. Open XAMPP, then start the MySQL section to run a database server locally.

  2. Access the browser first in order to open the database admin panel, please copy the following link: localhost/phpmyadmin/.

  3. Create a database called aws.

  4. Open the aws database and Import aws.sql in the Automatic-Weather-System/Src/ directory.



Telegram Bot Setup

  1. Open @BotFather.

  2. Type /newbot.

  3. Type the desired bot name, for example: AWS IOT BOT.

  4. Type the desired bot username, for example: aws_iot_indo_bot.

  5. Also do it for bot image settings, bot descriptions, and so on according to your needs.

  6. Copy your telegram bot API token -> then paste it into the Node-RED flow section.



Node-RED Configuration

  1. Open Command Prompt (CMD), then enter the following command to install Node-RED :

    npm install -g --unsafe-perm node-red
    

    Wait until the installation is complete.

  2. To keep Node-RED secure, You need to set up authentication by running the following command :

    node-red admin init
    

    Please select the option as shown in the Node-RED Authentication section of Highlights. For the username and password, please choose your own as needed.

  3. Next, run Node-RED using the following command :

    node-red
    

    Wait until the initialization process is complete and a message appears indicating that the server has started successfully.

  4. After that, Node-RED is ready to be accessed via a web browser using the device's IP address on port 1880.

  5. Then log in using the account you have configured as a security measure in Node-RED.

  6. Install all the required Node-RED palettes.

  7. Open the Import menu in Node-RED, then import flow_nodered.json in the Automatic-Weather-System/Src/ directory. Make sure all Node-RED flows have been successfully loaded.

  8. Then, to run the flow, click Deploy.



Get Started

  1. Download and extract this repository.

  2. Make sure you have the necessary electronic components.

  3. Make sure your components are designed according to the diagram.

  4. Configure your device according to the settings above.

  5. Please enjoy [Done].



Highlights

Device
device
Node-RED Authentication
config-1 config-2
login
Node-RED Dashboard
dashboard
Telegram Bot Menu
telegram-bot-menu
Monitoring Status
monitoring-inject
safe danger
Early Warning System
telegram-bot-inject
telegram-bot-alert

More information: Click Here




Appreciation

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.



Disclaimer

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.

Releases

Packages

Contributors

Languages