GithubHelp home page GithubHelp logo

kanqingzi0415 / gpio_viewer Goto Github PK

View Code? Open in Web Editor NEW

This project forked from thelastoutpostworkshop/gpio_viewer

0.0 0.0 0.0 103 KB

GPIOViewer Arduino Library to see live GPIO Pins on ESP32 boards

License: MIT License

C++ 100.00%

gpio_viewer's Introduction

GPIOViewer Arduino Library to see live GPIO Pins on ESP32 boards

Transforms the way you troubleshoot your microcontroller projects.

Youtube Tutorial

https://youtu.be/UxkOosaNohU

Installation Arduino IDE (Version 2)

ℹ️ Make sure you have the latest ESP32 boards by Espressif Systems in your Board Manager

  • Install the GPIOViewer Library with the Arduino IDE Library Manager or Download the latest release and install the library in the Arduino IDE : Sketch > Include Library > Add ZIP Library...
  • Download ESPAsyncWebServer and install the library in the Arduino IDE Sketch > Include Library > Add ZIP Library...
  • Install the the AsyncTCP using the Arduino IDE Library Manager.

Installation VSCode + PlatformIO

Add the following to your platformio.ini file:

lib_deps =
    https://github.com/dvarrel/AsyncTCP.git
    https://github.com/me-no-dev/ESPAsyncWebServer.git
    https://github.com/thelastoutpostworkshop/gpio_viewer.git

Usage

ℹ️ You can also use get examples provided with the library in the Arduino IDE through the menu File > Examples > GPIOViewer
ℹ️ You only need to include the library, declare the GPIOViewer and call begin() at the end of your setup, and that's it!
ℹ️ The URL to the web GPIO viewer application is printed on the serial monitor

#include <gpio_viewer.h> // Must me the first include in your project
GPIOViewer gpio_viewer;

void setup()
{
  Serial.begin(115200);

  // Comment the next line, If your code aleady include connection to Wifi
  gpio_viewer.connectToWifi("Your SSID network", "Your WiFi Password");
  // gpio_viewer.setPort(5555);   // You can set the http port, if not set default port is 8080

  // Your own setup code start here

  // Must be at the end of your setup
  // gpio_viewer.setSamplingInterval(25); // You can set the sampling interval in ms, if not set default is 100ms
  gpio_viewer.begin();
}

ℹ️ The default HTTP port is 8080 and default sampling interval is 100ms.

GPIO Supported

  • Digital
  • Analog
  • PWM

Library Size

  • The GPIOViewer Library adds 50 KB to your projects.
  • No worries! All the assets (ex. board images) of the web application are loaded from github pages and don't add to the size of your projects.

Performance

  • Ensure you have a strong Wifi signal with a good transfer rate. 25ms sampling interval works great on Wifi 6 with 125 Mbps.
  • If you get "ERROR: Too many messages queued" on the Serial Monitor, this means the data is not read fast enough by the web application. The data will still be displayed, but with some latency. Reduce the sampling interval or try to improve your Wifi performance.

ESP32 Boards Supported

ℹ️ You can use the "Generic View" in the GPIO Web Application to see GPIO pin activites live even if your board image is not listed
ℹ️ You can also request an ESP32 board image addition by creating a new issue.

Description Image Pinout
ESP32 VROOM 32D (38 pins) !
ESP32 VROOM 32D (30 pins) !
ESP32 D1 R32 !
ESP32 C3 Wroom-02 !
ESP32 Wroom-32UE !
ESP32 EVB !
ESP32 S3 Wroom-1 !
Esp32 S2 Mini V1.0.0 !
ESP32 POE !
ESP32 C3 Mini !
ESP32 Pico Kit v4.1 !
Lilygo T7 Mini32 v1.5 !
Nano ESP32 !
StickLite-V3-ESP32S3 !
T-Display S3 AMOLED !
TinyPICO Nano !
TinyPico V3 !
Wemos Lolin32 Lite V1 !
Wemos D1 Mini ESP32 !
XIAO-ESP32-C3 !

gpio_viewer's People

Contributors

charlesgiguere avatar thelastoutpostworkshop avatar firefly-cpp avatar jtmcdole 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.