This project implements a networked system for a remote sensing application. It includes two sensors (temperature and humidity), a gateway, and a server. The entire system is simulated using software applications without the need for physical hardware.
- Temperature Sensor: Simulated sensor generating values between 20-30°C, sends data every second via TCP.
- Humidity Sensor: Simulated sensor generating values between 40-90%, sends data when values exceed 80% and an 'ALIVE' message every 3 seconds via UDP.
The gateway application reads sensor values, monitors their activities, and forwards the data with timestamps to the server. It also sends alerts if sensors fail to communicate within specified time frames.
The server, connected to the gateway, stores all sensor data and features a web interface accessible via http://localhost:8080
. It displays temperature and humidity data and optionally allows user-triggered humidity data requests.
Implemented in Python. Utilizes socket programming and multi-threaded server processes without external libraries.
Here's a concise guide for running the applications in your project:
-
Temperature Sensor & Humidity Sensor
- Open a terminal.
- Navigate to the sensor directory.
- Run the application using
python sensor_apps.py
. - The sensor will start sending data every second.
- The sensor will send data on exceeding 80% humidity and an 'ALIVE' message every 3 seconds.
-
Gateway
- Open a third terminal.
- Navigate to the gateway directory.
- Start the gateway using
python gateway.py
. - It will receive data from both sensors and forward it to the server.
-
Server
- In a new terminal, go to the server directory.
- Launch the server with
python server.py
. - The server begins storing data and serves the web interface at
http://localhost:8080
.
Make sure Python is installed and ensure that each application is in its correct directory. Modify the commands according to your specific file names if they differ.
- Yasin Sefa Kırman GitHub Profile
- Doğukan Şahin GitHub Profile
For any inquiries or collaboration opportunities, feel free to reach out:
- Email: yasekirman@gmail.com
Alternatively, you can open an issue in this repository for project-related discussions.