This project is a web application that interfaces with an Arduino Uno board to monitor and control various sensors and actuators. The backend is built with Python, using Flask for the web framework, Socket.io for real-time communication, and SQLite for data storage. The frontend is developed with TypeScript, React, Socket.io, and TailwindCSS.
- Real-time data visualization from Arduino sensors.
- Control actuators connected to the Arduino from the web app.
- Store and retrieve sensor data using SQLite.
- Responsive and modern UI with React and TailwindCSS.
- Arduino Uno board
- USB cable for Arduino
- Various sensors (e.g., temperature, humidity, light, etc.)
- Actuators (e.g., LEDs, relays, motors, etc.)
- Breadboard and jumper wires
- Python 3.x
- Node.js and npm
- Arduino IDE
-
Clone the repository:
git clone https://github.com/asterki/octo-tree.git cd octo-tree
-
Navigate to the server directory:
cd server
-
Set up a virtual environment and install dependencies:
python -m venv venv source venv/bin/activate # On Windows, use `venv\Scripts\activate` pip install -r requirements.txt
-
Run the Flask server:
python index.py
-
Navigate to the frontend directory and install dependencies:
cd client npm install
-
Start the development server:
npm run dev
- Open the Arduino IDE and upload the provided sketch (
arduino/index.ino
) to your Arduino Uno board. - Ensure the correct serial port is selected.
- Ensure the Flask backend and React frontend servers are running.
- Open your web browser and navigate to
http://localhost:5173
. - You should see the web app interface where you can monitor sensor data and control actuators.
Contributions are welcome! Please fork the repository and create a pull request with your changes. Ensure your code adheres to the project's coding standards and include appropriate tests.
This project is licensed under the MIT License. See the LICENSE file for details.