Skip to content

Stream 80×62 thermal frames over TCP to a full-featured web UI with color maps, max temp tracking, and fullscreen display.

License

Notifications You must be signed in to change notification settings

0015/ESP32_Thermal_Camera_Viewer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔥 ESP32 Thermal Camera Viewer with Node.js Web Interface

This project enables real-time thermal frame streaming from an ESP32-based thermal imaging camera (MI0802) to a web browser via TCP and WebSocket. It features a full-screen heatmap viewer, FPS tracking, temperature overlays, and charting.

TCP Client Viewer

ESP32 Thermal Camera powered by 3.7V Li-Po Battery


📁 Project Structure

ESP32_Thermal_Camera/
├── senxorESP32S3/        # ESP32-S3 firmware (ESP-IDF)
├── Node_Thermal_TCP/     # Node.js TCP Client + Web UI
└── README.md

🚀 ESP32 Firmware (ESP-IDF)

The ESP32 source code has been modified based on the code provided by Waveshare. Please note that all rights to the code belong to Waveshare, which provides this code.

✅ Requirements

🔧 Setup Instructions

  1. Navigate to the ESP32 project folder:
cd senxorESP32S3
  1. Configure the firmware:
idf.py menuconfig
  • 🔐 Important:
    Set your Wi-Fi SSID and password via Example Configuration menu.
  1. Flash the firmware:
idf.py build
idf.py flash monitor

✅ Ensure your ESP32 connects to Wi-Fi and starts its TCP server on port 3333.


💻 Node.js Web Viewer

✅ Requirements

  • Node.js v16 or later
  • A modern browser (Chrome, Edge, Firefox)

📦 Setup Instructions

  1. Go to the Node.js project folder:
cd Node_Thermal_TCP
  1. Install dependencies:
npm install
  1. Open client.js and edit the ESP32 IP address:
const ESP32_HOST = "192.168.x.x"; // ← Your ESP32's local IP

⚠️ Be sure to update this! Otherwise TCP connection will fail.

  1. Start the client:
node client.js
  1. Visit the web viewer in your browser:
http://localhost:8080

🌐 Features

  • 🔥 Real-time 80x62 thermal frame rendering
  • 🖼 Fullscreen view with canvas scaling
  • 🧊 Color map presets: Inferno, Plasma, Hot, Fire & Ice, etc.
  • 📈 Live min/max temperature graph
  • 🎯 Max temperature overlay + label
  • 🧭 Vertical range bar with color matching
  • 💾 Screenshot saving
  • ↔ Flip left-right toggle
  • 🌡 Celsius / Fahrenheit support

📄 License

MIT License © 2025 That Project Vision Labs

About

Stream 80×62 thermal frames over TCP to a full-featured web UI with color maps, max temp tracking, and fullscreen display.

Topics

Resources

License

Stars

Watchers

Forks

Languages