All Projects → husarnet → esp32-internet-ota

husarnet / esp32-internet-ota

Licence: MIT license
ESP32 + GitHub Actions + Husarnet. A boilerplate project for ESP32 allowing in-field firmware update using GitHub Actions workflow.

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to esp32-internet-ota

esp-rgb-led-matrix
Full RGB LED matrix, based on an ESP32 and WS2812B LEDs.
Stars: ✭ 91 (+225%)
Mutual labels:  esp32, platformio, esp32-arduino
esp32cam-ready
Plug and Play firmware for the esp32cam. Flash, provision and connect to rtsp.
Stars: ✭ 67 (+139.29%)
Mutual labels:  esp32, platformio, esp32-arduino
ESP-StepperMotor-Server
Turn your ESP32 into a complete stepper motor control server with web UI, REST API and serial control interface
Stars: ✭ 133 (+375%)
Mutual labels:  esp32, esp32-arduino
ESP-Alerts-for-Android
Send Android Notifications to an ESP32 with OLED display
Stars: ✭ 42 (+50%)
Mutual labels:  esp32, esp32-arduino
LMIC-node
LMIC-node | One example to rule them all. LMIC-node is an example LoRaWAN application for a node that can be used with The Things Network. It demonstrates how to send uplink messages, how to receive downlink messages, how to implement a downlink command and it provides useful status information. With LMIC-node it is easy to get a working node qu…
Stars: ✭ 108 (+285.71%)
Mutual labels:  esp32, platformio
My Ttgo Watch
Firmware for a ttgo-watch2020-v1 smartwatch based on ESP32 from LilyGo.
Stars: ✭ 192 (+585.71%)
Mutual labels:  esp32, iot-device
Basecamp
An Arduino library to ease the use of the ESP32 in IoT projects
Stars: ✭ 251 (+796.43%)
Mutual labels:  esp32, iot-device
esp32-i2s-mems
Using an I2S MEMS microphone on an ESP32
Stars: ✭ 103 (+267.86%)
Mutual labels:  esp32, esp32-arduino
Openmqttgateway
MQTT gateway for ESP8266, ESP32, Sonoff RF Bridge or Arduino with bidirectional 433mhz/315mhz/868mhz, Infrared communications, BLE, Bluetooth, beacons detection, mi flora, mi jia, LYWSD02, LYWSD03MMC, Mi Scale, TPMS, BBQ thermometer compatibility, SMS & LORA.
Stars: ✭ 2,413 (+8517.86%)
Mutual labels:  esp32, platformio
OctoWifi-LEDs-Controller
LEDs driver for ESP32 ( support ART-NET, RGB888, RGB565, Z888 )
Stars: ✭ 16 (-42.86%)
Mutual labels:  esp32, esp32-arduino
OneWire
Library for Dallas/Maxim 1-Wire Chips
Stars: ✭ 32 (+14.29%)
Mutual labels:  esp32, esp32-arduino
esp32
Build your own toolchain to develop, test, build and finally deploy a Golang controller to your ESP32 device.
Stars: ✭ 76 (+171.43%)
Mutual labels:  esp32, iot-device
Esp8266 React
A framework for ESP8266 & ESP32 microcontrollers with a React UI
Stars: ✭ 193 (+589.29%)
Mutual labels:  esp32, platformio
Easybutton
Arduino library for debouncing momentary contact switches, detect press, release, long press and sequences with event definitions and callbacks.
Stars: ✭ 187 (+567.86%)
Mutual labels:  esp32, platformio
ArduinoOcpp
OCPP 1.6 client for microcontrollers
Stars: ✭ 139 (+396.43%)
Mutual labels:  platformio, esp32-arduino
Dhtesp
Optimized DHT library for ESP32/ESP8266 using Arduino framework
Stars: ✭ 184 (+557.14%)
Mutual labels:  esp32, platformio
ESP DoubleResetDetector
ESP_DoubleResetDetector is a library for the ESP32/ESP8266 Arduino platform to enable trigger configure mode by resetting twice.
Stars: ✭ 34 (+21.43%)
Mutual labels:  esp32, esp32-arduino
esp8266-esp32-sdk
Library for https://sinric.pro - simple way to connect your device to Alexa, Google Home, SmartThings and cloud
Stars: ✭ 147 (+425%)
Mutual labels:  esp32, platformio
Irremoteesp8266
Infrared remote library for ESP8266/ESP32: send and receive infrared signals with multiple protocols. Based on: https://github.com/shirriff/Arduino-IRremote/
Stars: ✭ 1,964 (+6914.29%)
Mutual labels:  esp32, platformio
Lib Python
Blynk IoT library for Python and Micropython
Stars: ✭ 140 (+400%)
Mutual labels:  esp32, iot-device

esp32-internet-ota

ESP32 + GitHub Actions + Husarnet.

A boilerplate project for ESP32 allowing in-field firmware update using GitHub Actions workflow.

Prerequisites

Install Visual Studio Code with PlatformIO extension.

Quick start

First setup

  1. Click Use this template button to create your own copy of this repo.

  2. Clone the repo you have just created and open it in Visual Studio Code. Platformio should automatically install all project dependencies.

  3. Rename credentials-template.h to credentials.h and type your WiFi an Husarnet credentials there (you will find you Husarnet Join Code at https://app.husarnet.com).

  4. Click "PlatformIO: upload" button to flash your ESP32 board connected to your laptop. You will find the following log in the serial monitor:

    **************************************
    GitHub Actions OTA example
    **************************************
    
    📻 1. Connecting to: FreeWifi Wi-Fi network .. done
    
    ⌛ 2. Waiting for Husarnet to be ready ... done
    
    🚀 HTTP server started
    
    Visit:
    http://my-esp32:8080/
    
    Known hosts:
    my-laptop (fc94:a4c1:1f22:ab3b:b04a:1a3b:ba15:84bc)
    my-esp32 (fc94:f632:c8d9:d2a6:ad18:ed16:ed7e:9f3f)

Internet OTA with GitHub Actions

  1. Create the folowing GitHub repository secrets (Settings > Secrets > New repository secret):

    Secret Sample Value Desription
    WIFI_SSID FreeWifi just your WiFi network name
    WIFI_PASS hardtoguess ... and password
    HUSARNET_HOSTNAME my-esp32 hostname under which you want your ESP32 to be available by other peers
    HUSARNET_JOINCODE fc94:...:932a/xhfqwPxxxetyCExsSPRPn9 find your own secret Join Code at your user account at https://app/husarnet.com > choosen network > add element button. Anyone with this Join Code can connect to your Husarnet network
  2. Push changes to your repo:

    git add *
    git commit -m "triggering the workflow"
    git push
  3. In ~3 minutes the GitHub workflow should finish its job. Visit: http://my-esp32:8080 URL with a sample "Hello world" website hosted by your ESP32.

    Of course your laptop need to be connected to the same Husarnet network - you will find quick start guide showing how to do it here: https://husarnet.com/docs/

Tips

Erasing flash memory of ESP32

  1. Connect ESP32 to your laptop

  2. Install platformio CLI

    pip install -U platformio
  3. Make flash erase:

    pio run --target erase

Monitoring network traffic on hnet0 interface

sudo tcpflow -p -c -i hnet0

Accesing a webserver hosted by ESP32 using a public domain

Here is a blog post showing how to configure Nginx Proxy Manager to provide a public access to web servers hosted by Husarnet connected devices: https://husarnet.com/blog/reverse-proxy-gui

It can be also used o provide the access to a web server hosted by ESP32 using a nice looking link like: https://my-awesome-esp32.mydomain.com.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].