Giter Club home page Giter Club logo

led-over-tcp's Introduction

LED/TCP

Just a silly little learning project to control an LED hooked up to a micro-controller over a TCP connection.

The firmware written for the ESP32 connects to the provided WiFi access point and sets up a TCP server on which it will listen to commands to toggle the LED. To communicate with the MCU there is a desktop GUI application written in Rust that allows the user to connect to the TCP server and press a button to issue commands to the MCU.

Usage

Firmware

Requirements: ESP32 MCU, VSCode + ESP-IDF toolchain

  1. Open the firmware/ sub-directory in VSCode
  2. Set the ESP device target (use Ctrl Shift P to run commands in VSCode)
  3. Run SDK configuration (Ctrl E G)
    1. Open the "LED over TCP Configuration" section
    2. Set WiFi SSID and password
    3. Set GPIO pin for LED
  4. Set the port for the MCU (Ctrl E P)
  5. Build, flash and monitor (Ctrl E D)

The IP address of the MCU will be available in the logs found in the monitor view.

GUI

Requirements: Rust/Cargo

The control application can easily be built using cargo:

  1. Move to the gui/ sub-directory
  2. Run cargo r --release to compile and run the application
  3. Enter the MCU's IP and port of the TCP server
  4. Toggle the LED using the button after connecting

The resulting binary can also be found at gui/target/release/gui.

screenshots of the gui control app

License

Licensed under the MIT License.

led-over-tcp's People

Contributors

novara754 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.