esp-linker


Nameesp-linker JSON
Version 1.2.1 PyPI version JSON
download
home_pagehttps://www.skrelectronicslab.com
SummaryProfessional wireless GPIO control for ESP8266 boards with PyFirmata-inspired interface, complete IoT solution with firmware, CLI tools, and web dashboard
upload_time2025-07-13 18:16:18
maintainerSKR Electronics Lab
docs_urlNone
authorSK Raihan
requires_python>=3.7
licenseMIT
keywords esp8266 gpio iot wireless arduino microcontroller automation robotics electronics maker diy wifi remote-control pyfirmata esp-linker nodemcu wemos embedded hardware sensor actuator smart-home internet-of-things esp32 micropython circuitpython raspberry-pi home-automation industrial-iot edge-computing wireless-communication web-dashboard cli-tools firmware skr-electronics-lab professional production-ready cross-platform
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <div align="center">

# ๐Ÿš€ ESP-Linker
### Professional Wireless GPIO Control for ESP8266

[![PyPI version](https://img.shields.io/pypi/v/esp-linker?style=for-the-badge&logo=pypi&logoColor=white&color=blue)](https://pypi.org/project/esp-linker)
[![Python versions](https://img.shields.io/pypi/pyversions/esp-linker?style=for-the-badge&logo=python&logoColor=white&color=green)](https://pypi.org/project/esp-linker/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge)](https://opensource.org/licenses/MIT)
[![Downloads](https://img.shields.io/pypi/dm/esp-linker?style=for-the-badge&logo=download&logoColor=white&color=orange)](https://pepy.tech/project/esp-linker)

[![GitHub stars](https://img.shields.io/github/stars/skr-electronics-lab/esp-linker?style=social)](https://github.com/skr-electronics-lab/esp-linker)
[![YouTube](https://img.shields.io/badge/YouTube-Subscribe-red?style=social&logo=youtube)](https://www.youtube.com/@skr_electronics_lab)
[![Instagram](https://img.shields.io/badge/Instagram-Follow-purple?style=social&logo=instagram)](https://www.instagram.com/skr_electronics_lab)

**๐ŸŽฏ Transform your ESP8266 into a powerful wireless GPIO controller**

*Complete IoT development platform with PyFirmata-inspired interface*

[๐Ÿ“š Documentation](https://www.skrelectronicslab.com/esp-linker) โ€ข [๐Ÿš€ Quick Start](#-quick-start-guide) โ€ข [๐Ÿ’ก Examples](#-advanced-usage) โ€ข [๐ŸŽฅ Video Tutorials](https://www.youtube.com/@skr_electronics_lab)

</div>

---

## ๐ŸŒŸ **What is ESP-Linker?**

**ESP-Linker** is a comprehensive IoT development platform created by **SKR Electronics Lab** that revolutionizes ESP8266 development. It provides professional wireless GPIO control with a familiar PyFirmata-inspired interface, making IoT development accessible to everyone from beginners to professionals.

### ๐ŸŽฏ **Why Choose ESP-Linker?**

| Traditional ESP8266 Development | ESP-Linker Advantage |
|--------------------------------|----------------------|
| Complex WiFi setup code | Interactive WiFi wizard |
| Manual device discovery | Automatic mDNS discovery |
| Basic GPIO control | Professional API with error handling |
| No device management | Multi-device management system |
| Command-line only | CLI tools + Web dashboard |
| Separate firmware needed | Built-in firmware (365KB) |

## โœจ **Complete Feature Overview**

<details>
<summary><h3>๐Ÿ“ก <strong>Wireless GPIO Control System</strong></h3></summary>

Transform your ESP8266 into a powerful wireless GPIO controller with professional-grade features:

#### ๐Ÿ”Œ **Digital I/O Operations**
- **Digital Write**: Control LEDs, relays, motors with `board.write(pin, value)`
- **Digital Read**: Read button states, sensor outputs with `board.read(pin)`
- **Pull-up Support**: Built-in pull-up resistor configuration for reliable readings
- **Pin State Caching**: Optimized performance with intelligent state management

#### โšก **PWM (Pulse Width Modulation)**
- **8 PWM Channels**: Simultaneous control of multiple PWM outputs
- **0-1023 Resolution**: Fine-grained control for precise applications
- **LED Brightness Control**: Smooth dimming and color mixing
- **Motor Speed Control**: Variable speed control for DC motors
- **Servo Positioning**: Precise servo angle control (0-180ยฐ)

#### ๐Ÿ“Š **Analog Input System**
- **10-bit ADC**: High-resolution analog readings (0-1024)
- **A0 Pin Support**: Read sensors, potentiometers, voltage dividers
- **Real-time Sampling**: Continuous data collection for monitoring
- **Calibration Support**: Built-in calibration for accurate measurements

#### ๏ฟฝ **Batch Operations**
- **Multiple Pin Control**: Efficient bulk GPIO operations
- **Atomic Transactions**: Ensure synchronized pin state changes
- **Performance Optimization**: Reduced network overhead for complex operations

</details>

<details>
<summary><h3>๐Ÿ” <strong>Intelligent Auto-Discovery & Device Management</strong></h3></summary>

Professional device management system for seamless multi-device operations:

#### ๐ŸŒ **mDNS Auto-Discovery**
- **Zero-Configuration**: Automatic device detection without IP addresses
- **Network Scanning**: Intelligent network topology discovery
- **Service Broadcasting**: ESP8266 devices announce themselves automatically
- **Cross-Platform Support**: Works on Windows, Linux, macOS networks

#### ๐Ÿ“ฑ **Multi-Device Management**
- **Device Registration**: Persistent device database with automatic updates
- **Centralized Control**: Manage multiple ESP8266 boards from single interface
- **Device Grouping**: Organize devices by location, function, or project
- **Status Monitoring**: Real-time health checks and connectivity status

#### ๐Ÿ”„ **Connection Health Monitoring**
- **Auto-Retry Logic**: Intelligent reconnection with exponential backoff
- **Heartbeat System**: Continuous connectivity verification
- **Failover Support**: Automatic switching between available devices
- **Network Resilience**: Handles WiFi disconnections and network changes

#### ๐Ÿ’พ **Persistent Configuration**
- **Device Profiles**: Save device settings, pin configurations, and preferences
- **Configuration Backup**: Export/import device configurations
- **Version Control**: Track configuration changes and rollback support

</details>

<details>
<summary><h3>โšก <strong>Professional CLI Tools Suite</strong></h3></summary>

Comprehensive command-line interface for professional development workflows:

#### ๐Ÿ”ง **Firmware Management**
- **Built-in Firmware**: 365KB complete ESP8266 firmware included
- **Visual Progress Bars**: Real-time flashing progress with tqdm integration
- **Auto-Port Detection**: Intelligent ESP8266 board detection
- **Multiple Baud Rates**: Support for 115200, 460800, 921600 baud rates
- **Chip Verification**: Automatic chip ID and flash size detection

#### ๐Ÿ“ถ **WiFi Configuration Wizard**
- **Interactive Setup**: Step-by-step WiFi configuration process
- **Network Scanning**: Discover available WiFi networks with signal strength
- **Security Support**: WPA/WPA2 encryption with password validation
- **Connection Testing**: Verify connectivity before saving configuration
- **Multiple Methods**: Serial, wireless, and AP-mode configuration options

#### ๐Ÿ” **Device Discovery & Testing**
- **Network Discovery**: Find ESP-Linker devices on local network
- **Port Detection**: Automatically detect connected ESP8266 boards
- **Functionality Testing**: Comprehensive device testing with LED, PWM, servo tests
- **Performance Benchmarks**: Measure response times and throughput
- **Diagnostic Tools**: Network connectivity and device health checks

#### ๐Ÿ“Š **Device Management Commands**
```bash
esp-linker devices list          # List all managed devices
esp-linker devices discover      # Find and add new devices
esp-linker devices stats         # Show device statistics
esp-linker devices remove        # Remove devices from management
esp-linker devices monitor       # Real-time device monitoring
```

</details>

<details>
<summary><h3>๐ŸŒ <strong>Professional Web Dashboard</strong></h3></summary>

Modern, responsive web interface for device control and monitoring:

#### ๐ŸŽจ **Modern UI/UX Design**
- **Responsive Layout**: Perfect on desktop, tablet, and mobile devices
- **Dark/Light Themes**: Professional themes with smooth transitions
- **Real-time Updates**: Live device status and GPIO state updates
- **Interactive Controls**: Touch-friendly sliders, buttons, and switches

#### ๏ฟฝ **Device Monitoring**
- **Live GPIO States**: Real-time pin status visualization
- **Analog Data Plots**: Interactive charts for sensor data
- **Device Statistics**: Uptime, memory usage, WiFi signal strength
- **Historical Data**: Data logging and trend analysis

#### ๐ŸŽ›๏ธ **Control Interface**
- **GPIO Control Panel**: Visual pin control with instant feedback
- **PWM Sliders**: Smooth PWM control with real-time preview
- **Servo Control**: Angle control with visual servo position
- **Batch Operations**: Control multiple pins simultaneously

#### ๐Ÿ”ง **Advanced Features**
- **Device Configuration**: Change device settings through web interface
- **Firmware Updates**: OTA firmware updates through browser
- **Export/Import**: Configuration backup and restore
- **API Documentation**: Built-in API reference and testing tools

</details>

<details>
<summary><h3>๐Ÿ”ง <strong>Enhanced Development Experience</strong></h3></summary>

Professional development tools and features for efficient IoT development:

#### ๐Ÿ›ก๏ธ **Robust Error Handling**
- **Auto-Retry Logic**: Intelligent retry with exponential backoff
- **Connection Recovery**: Automatic reconnection on network failures
- **Timeout Management**: Configurable timeouts for different operations
- **Error Reporting**: Detailed error messages with troubleshooting hints

#### ๐Ÿ“ **Professional Logging**
- **Structured Logging**: JSON-formatted logs for easy parsing
- **Log Levels**: Debug, info, warning, error levels with filtering
- **File Logging**: Persistent logs with rotation and compression
- **Real-time Monitoring**: Live log streaming for debugging

#### ๐Ÿ”’ **Security Features**
- **Secure Communication**: HTTPS support for encrypted communication
- **Authentication**: Device authentication and access control
- **CORS Support**: Cross-origin resource sharing for web applications
- **Network Isolation**: Support for isolated network environments

#### ๐Ÿš€ **Performance Optimization**
- **Connection Pooling**: Efficient connection management
- **Caching System**: Intelligent caching for improved performance
- **Batch Processing**: Optimized bulk operations
- **Memory Management**: Efficient memory usage and garbage collection

</details>

## ๐Ÿ“ฆ **Professional Installation Guide**

<div align="center">

### ๐Ÿš€ **One-Command Installation**

</div>

#### ๐ŸŽฏ **Standard Installation** (Recommended)
```bash
pip install esp-linker
```
*Includes: Core library, CLI tools, firmware, auto-discovery*

#### ๐ŸŒ **Full Installation** (With Web Dashboard)
```bash
pip install esp-linker[dashboard]
```
*Includes: Everything + Flask web dashboard*

#### ๐Ÿ”ง **Developer Installation** (Complete Package)
```bash
pip install esp-linker[all]
```
*Includes: All features + development tools*

#### ๐Ÿ“‹ **System Requirements**
- **Python**: 3.7+ (3.8+ recommended)
- **Operating System**: Windows 10+, Linux, macOS 10.14+
- **Hardware**: ESP8266 board (NodeMCU, Wemos D1, etc.)
- **Network**: WiFi connection for ESP8266 and development machine

#### โœ… **Verify Installation**
```bash
esp-linker --version          # Check CLI installation
python -c "import esp_linker; print('ESP-Linker ready!')"
```

## ๐Ÿš€ **Complete Quick Start Guide**

<div align="center">

### โšก **From Zero to IoT in 5 Minutes**

</div>

<details>
<summary><h3>๐Ÿ”ฅ <strong>Step 1: Flash ESP8266 Firmware</strong></h3></summary>

Transform your ESP8266 into an ESP-Linker device with our built-in firmware:

#### ๐ŸŽฏ **Automatic Flashing** (Recommended)
```bash
esp-linker flash
```
*Auto-detects ESP8266 board and flashes firmware with progress bars*

#### ๐Ÿ”ง **Manual Port Selection**
```bash
esp-linker flash --port COM3        # Windows
esp-linker flash --port /dev/ttyUSB0 # Linux
esp-linker flash --port /dev/cu.usbserial # macOS
```

#### โš™๏ธ **Advanced Options**
```bash
esp-linker flash --baud 921600       # High-speed flashing
esp-linker flash --no-erase         # Skip chip erase
esp-linker flash --firmware-info    # Show firmware details
```

#### ๐Ÿ“Š **What Gets Flashed**
- **ESP-Linker Firmware**: Complete 365KB firmware
- **WiFi Stack**: Professional WiFi management
- **GPIO API**: RESTful GPIO control interface
- **mDNS Service**: Auto-discovery capability
- **Web Server**: Built-in HTTP server for control

</details>

<details>
<summary><h3>๐Ÿ“ถ <strong>Step 2: Configure WiFi Connection</strong></h3></summary>

Set up WiFi connectivity with our interactive wizard:

#### ๐Ÿง™โ€โ™‚๏ธ **Interactive WiFi Wizard**
```bash
esp-linker setup-wifi --port COM3
```

**What the wizard does:**
1. **Scans Networks**: Discovers available WiFi networks
2. **Shows Signal Strength**: Displays RSSI for optimal selection
3. **Security Detection**: Identifies WPA/WPA2 encryption
4. **Credential Input**: Secure password entry
5. **Connection Testing**: Verifies connectivity before saving

#### ๐Ÿ”ง **Manual WiFi Configuration**
```bash
esp-linker configure-wifi --ssid "YourNetwork" --password "YourPassword"
```

#### ๐Ÿ“ก **WiFi Status Check**
```bash
esp-linker wifi-status --port COM3
```

</details>

<details>
<summary><h3>๐Ÿ” <strong>Step 3: Discover Your Device</strong></h3></summary>

Find your ESP-Linker device on the network:

#### ๐ŸŒ **Auto-Discovery**
```bash
esp-linker discover
```
*Uses mDNS to find ESP-Linker devices automatically*

#### ๐ŸŽฏ **Advanced Discovery**
```bash
esp-linker discover --timeout 60    # Extended search
esp-linker discover --json          # JSON output
esp-linker devices discover         # Add to device manager
```

#### ๐Ÿ“ฑ **Device Management**
```bash
esp-linker devices list             # Show managed devices
esp-linker devices stats            # Device statistics
```

</details>

<details>
<summary><h3>๐Ÿ <strong>Step 4: Python Programming</strong></h3></summary>

Start controlling your ESP8266 with Python:

#### ๐Ÿš€ **Basic GPIO Control**
```python
from esp_linker import connect_auto

# Auto-discover and connect
board = connect_auto()

# Digital I/O
board.write(2, 1)           # Turn on LED (pin 2)
button_state = board.read(4) # Read button (pin 4)

# Analog input
sensor_value = board.analog_read()  # Read A0 pin

# PWM control (0-1023)
board.pwm(5, 512)           # 50% brightness

# Servo control (0-180ยฐ)
board.servo(14, 90)         # Center position

# Device info
info = board.get_device_info()
print(f"Device: {info['firmware_name']} v{info['firmware_version']}")
print(f"Uptime: {info['uptime']} seconds")
print(f"Free Memory: {info['free_heap']} bytes")

board.close()
```

#### ๐Ÿ”ง **Advanced Control**
```python
from esp_linker import ESPBoard

# Manual connection
board = ESPBoard("192.168.1.100")

# Batch operations
pins_states = {2: 1, 4: 0, 5: 1}
board.write_multiple(pins_states)

# PWM with custom frequency
board.pwm_freq(1000)  # Set PWM frequency to 1kHz
board.pwm(5, 256)     # 25% duty cycle

# Servo with speed control
board.servo_speed(14, 90, speed=50)  # Slow movement

# Connection monitoring
if board.ping():
    print("Device is responsive")
else:
    print("Device not responding")
```

#### ๐ŸŒ **Web Dashboard Access**
```python
# Launch web dashboard
from esp_linker.dashboard import run_dashboard
run_dashboard(port=8080)
```

</details>

<details>
<summary><h3>๐ŸŽ›๏ธ <strong>Step 5: Web Dashboard Control</strong></h3></summary>

Access the professional web interface:

#### ๐ŸŒ **Launch Dashboard**
```bash
esp-linker dashboard
```
*Opens at http://localhost:5000*

#### โš™๏ธ **Custom Configuration**
```bash
esp-linker dashboard --host 0.0.0.0 --port 8080 --debug
```

#### ๐Ÿ“ฑ **Dashboard Features**
- **Real-time GPIO Control**: Interactive pin control
- **Live Monitoring**: Device status and sensor data
- **Device Management**: Add, remove, configure devices
- **Data Visualization**: Charts and graphs for sensor data
- **Mobile Responsive**: Perfect on phones and tablets

</details>

## ๐Ÿ› ๏ธ Advanced Usage

### Manual Connection
```python
from esp_linker import ESPBoard

# Connect to specific IP address
board = ESPBoard("192.168.1.100")

# Or connect via URL
board = ESPBoard("http://192.168.1.100")
```

### Device Management
```python
from esp_linker import get_device_manager

# Get device manager instance
manager = get_device_manager()

# Discover and add new devices
new_devices = manager.discover_and_add_devices(timeout=10)

# List all managed devices
devices = manager.list_devices()
for device in devices:
    print(f"Device: {device.name} at {device.ip}")

# Get device statistics
stats = manager.get_device_stats()
print(f"Total devices: {stats['total_devices']}")
```

### CLI Commands Reference
```bash
# Device discovery and management
esp-linker discover --timeout 30        # Network discovery
esp-linker devices list                  # List managed devices
esp-linker devices discover             # Add new devices
esp-linker devices stats                # Device statistics

# Firmware and hardware
esp-linker flash --firmware-info        # Show firmware details
esp-linker detect --json               # Detect ESP8266 boards
esp-linker test --device 192.168.1.100 # Test device functionality

# Web interface
esp-linker dashboard --port 8080        # Launch web dashboard
```

## ๐ŸŒ Web Dashboard

Launch the professional web dashboard:
```bash
esp-linker dashboard
```

Features:
- Real-time device monitoring
- Interactive GPIO control
- Device status and statistics
- Responsive design for mobile/desktop
- Multi-device management

## ๐Ÿ“‹ System Requirements

- **Python**: 3.7 or higher
- **Operating System**: Windows, Linux, macOS
- **Hardware**: ESP8266 board (NodeMCU, Wemos D1, etc.)
- **Network**: WiFi connection for ESP8266 and development machine

## ๐Ÿ”ง **Hardware Compatibility Matrix**

<div align="center">

### ๐ŸŽฏ **Tested & Verified ESP8266 Boards**

</div>

| Board | Status | Flash Size | GPIO Pins | Special Features |
|-------|--------|------------|-----------|------------------|
| **NodeMCU v1.0** | โœ… Fully Supported | 4MB | 11 usable | Built-in USB, LED on pin 2 |
| **NodeMCU v0.9** | โœ… Fully Supported | 4MB | 11 usable | Older version, fully compatible |
| **Wemos D1 Mini** | โœ… Fully Supported | 4MB | 11 usable | Compact size, perfect for projects |
| **Wemos D1 R2** | โœ… Fully Supported | 4MB | 11 usable | Arduino Uno form factor |
| **ESP8266-01** | โš ๏ธ Limited Support | 1MB | 2 usable | Minimal pins, requires adapter |
| **ESP8266-12E** | โœ… Fully Supported | 4MB | 16 usable | Raw module, requires breakout |
| **ESP8266-12F** | โœ… Fully Supported | 4MB | 16 usable | Improved antenna design |
| **Adafruit Feather HUZZAH** | โœ… Fully Supported | 4MB | 9 usable | Battery connector, compact |
| **SparkFun ESP8266 Thing** | โœ… Fully Supported | 4MB | 11 usable | LiPo charging circuit |
| **Generic ESP8266** | โœ… Usually Supported | Varies | Varies | Most ESP8266 boards work |

### ๐Ÿ”Œ **Pin Configuration Reference**

#### **NodeMCU Pin Mapping**
```
NodeMCU Pin | ESP8266 GPIO | Function | ESP-Linker Support
------------|--------------|----------|-------------------
D0          | GPIO16       | Digital  | โœ… Digital I/O only
D1          | GPIO5        | Digital  | โœ… Digital + PWM + Servo
D2          | GPIO4        | Digital  | โœ… Digital + PWM + Servo
D3          | GPIO0        | Digital  | โœ… Digital I/O (Boot pin)
D4          | GPIO2        | Digital  | โœ… Digital + PWM + LED
D5          | GPIO14       | Digital  | โœ… Digital + PWM + Servo
D6          | GPIO12       | Digital  | โœ… Digital + PWM + Servo
D7          | GPIO13       | Digital  | โœ… Digital + PWM + Servo
D8          | GPIO15       | Digital  | โœ… Digital + PWM + Servo
A0          | ADC0         | Analog   | โœ… 10-bit ADC input
```

#### **Wemos D1 Mini Pin Mapping**
```
D1 Mini Pin | ESP8266 GPIO | Function | ESP-Linker Support
------------|--------------|----------|-------------------
D0          | GPIO16       | Digital  | โœ… Digital I/O only
D1          | GPIO5        | Digital  | โœ… Digital + PWM + Servo + I2C SCL
D2          | GPIO4        | Digital  | โœ… Digital + PWM + Servo + I2C SDA
D3          | GPIO0        | Digital  | โœ… Digital I/O (Flash button)
D4          | GPIO2        | Digital  | โœ… Digital + PWM + Built-in LED
D5          | GPIO14       | Digital  | โœ… Digital + PWM + Servo + SPI CLK
D6          | GPIO12       | Digital  | โœ… Digital + PWM + Servo + SPI MISO
D7          | GPIO13       | Digital  | โœ… Digital + PWM + Servo + SPI MOSI
D8          | GPIO15       | Digital  | โœ… Digital + PWM + Servo + SPI CS
A0          | ADC0         | Analog   | โœ… 10-bit ADC (0-1024)
```

### โšก **Power Requirements**
- **Operating Voltage**: 3.3V (regulated on most boards)
- **Input Voltage**: 5V via USB or 7-12V via Vin pin
- **Current Consumption**:
  - Active: ~80mA
  - Deep Sleep: ~20ยตA
  - WiFi Transmit: ~170mA peak

### ๐Ÿ”ง **Connection Requirements**
- **USB Cable**: Micro-USB (NodeMCU) or USB-C (newer boards)
- **WiFi Network**: 2.4GHz (ESP8266 doesn't support 5GHz)
- **Computer**: Windows/Linux/macOS with Python 3.7+

## ๐Ÿ“š API Reference

### ESPBoard Class
```python
class ESPBoard:
    def __init__(self, ip_or_url: str, timeout: float = 10.0)
    def write(self, pin: int, value: int) -> bool
    def read(self, pin: int) -> int
    def analog_read(self) -> int
    def pwm(self, pin: int, value: int) -> bool
    def servo(self, pin: int, angle: int) -> bool
    def get_device_info(self) -> dict
    def ping(self) -> bool
    def close(self) -> None
```

### Utility Functions
```python
def connect_auto(timeout: float = 10.0) -> ESPBoard
def discover_devices(timeout: float = 30.0) -> List[dict]
def flash_esp8266(port: str = None, baud: int = 115200) -> bool
def detect_esp8266() -> List[str]
```

## ๐ŸŽฏ **Real-World Use Cases & Project Examples**

<div align="center">

### ๐ŸŒŸ **Transform Ideas into Reality**

</div>

<details>
<summary><h3>๐Ÿ  <strong>Smart Home Automation</strong></h3></summary>

Create intelligent home automation systems with ESP-Linker:

#### ๐Ÿ’ก **Smart Lighting Control**
```python
from esp_linker import connect_auto
import time

board = connect_auto()

# Smart dimming based on time of day
def auto_dimming():
    current_hour = time.localtime().tm_hour
    if 6 <= current_hour <= 8:      # Morning
        board.pwm(2, 300)           # 30% brightness
    elif 18 <= current_hour <= 22:  # Evening
        board.pwm(2, 700)           # 70% brightness
    else:                           # Night
        board.pwm(2, 100)           # 10% brightness

auto_dimming()
```

#### ๐ŸŒก๏ธ **Climate Control System**
```python
# Temperature-based fan control
temp_sensor = board.analog_read()  # Temperature sensor on A0
temp_celsius = (temp_sensor * 3.3 / 1024 - 0.5) * 100

if temp_celsius > 25:
    board.pwm(5, 1023)  # Full speed fan
elif temp_celsius > 22:
    board.pwm(5, 512)   # Half speed fan
else:
    board.pwm(5, 0)     # Fan off
```

#### ๐Ÿšช **Smart Door Lock**
```python
# RFID-controlled door lock
def check_access_card():
    card_detected = board.read(4)  # RFID reader signal
    if card_detected:
        board.servo(14, 90)        # Unlock (servo to 90ยฐ)
        time.sleep(5)
        board.servo(14, 0)         # Lock (servo to 0ยฐ)
```

</details>

<details>
<summary><h3>๐Ÿค– <strong>Robotics & Automation</strong></h3></summary>

Build sophisticated robotic systems:

#### ๐Ÿš— **Remote-Controlled Robot**
```python
from esp_linker import ESPBoard

robot = ESPBoard("192.168.1.100")

class RobotController:
    def __init__(self, board):
        self.board = board
        self.left_motor = 5   # PWM pin for left motor
        self.right_motor = 6  # PWM pin for right motor

    def move_forward(self, speed=512):
        self.board.pwm(self.left_motor, speed)
        self.board.pwm(self.right_motor, speed)

    def turn_left(self, speed=300):
        self.board.pwm(self.left_motor, 0)
        self.board.pwm(self.right_motor, speed)

    def stop(self):
        self.board.pwm(self.left_motor, 0)
        self.board.pwm(self.right_motor, 0)

robot_ctrl = RobotController(robot)
robot_ctrl.move_forward(400)  # Move at 40% speed
```

#### ๐Ÿฆพ **Robotic Arm Control**
```python
# Multi-servo robotic arm
class RoboticArm:
    def __init__(self, board):
        self.board = board
        self.base = 12      # Base rotation servo
        self.shoulder = 13  # Shoulder servo
        self.elbow = 14     # Elbow servo
        self.gripper = 15   # Gripper servo

    def move_to_position(self, base_angle, shoulder_angle, elbow_angle):
        self.board.servo(self.base, base_angle)
        time.sleep(0.5)
        self.board.servo(self.shoulder, shoulder_angle)
        time.sleep(0.5)
        self.board.servo(self.elbow, elbow_angle)

    def grab_object(self):
        self.board.servo(self.gripper, 180)  # Close gripper

    def release_object(self):
        self.board.servo(self.gripper, 0)    # Open gripper

arm = RoboticArm(robot)
arm.move_to_position(90, 45, 135)  # Position arm
arm.grab_object()                   # Grab object
```

</details>

<details>
<summary><h3>๐Ÿญ <strong>Industrial IoT & Monitoring</strong></h3></summary>

Implement professional industrial monitoring systems:

#### ๐Ÿ“Š **Multi-Sensor Data Logger**
```python
import json
import time
from datetime import datetime

class IndustrialMonitor:
    def __init__(self, board):
        self.board = board
        self.data_log = []

    def read_sensors(self):
        return {
            'timestamp': datetime.now().isoformat(),
            'temperature': self.read_temperature(),
            'pressure': self.read_pressure(),
            'vibration': self.read_vibration(),
            'motor_status': self.board.read(2)
        }

    def read_temperature(self):
        # Convert analog reading to temperature
        raw = self.board.analog_read()
        return (raw * 3.3 / 1024 - 0.5) * 100

    def continuous_monitoring(self, interval=60):
        while True:
            data = self.read_sensors()
            self.data_log.append(data)

            # Alert if temperature too high
            if data['temperature'] > 80:
                self.board.write(4, 1)  # Turn on alarm LED

            time.sleep(interval)

monitor = IndustrialMonitor(board)
monitor.continuous_monitoring(30)  # Log every 30 seconds
```

#### โš™๏ธ **Equipment Control System**
```python
# Industrial equipment controller
class EquipmentController:
    def __init__(self, board):
        self.board = board
        self.conveyor_motor = 5
        self.sorting_servo = 14
        self.alarm_led = 2

    def start_production(self):
        self.board.pwm(self.conveyor_motor, 800)  # Start conveyor
        self.board.write(self.alarm_led, 0)       # Clear alarms

    def emergency_stop(self):
        self.board.pwm(self.conveyor_motor, 0)    # Stop conveyor
        self.board.write(self.alarm_led, 1)       # Activate alarm
        self.board.servo(self.sorting_servo, 0)   # Reset sorting arm
```

</details>

<details>
<summary><h3>๐ŸŽ“ <strong>Educational & Research Projects</strong></h3></summary>

Perfect for learning and research applications:

#### ๐Ÿ”ฌ **Science Experiment Controller**
```python
# Automated plant growth experiment
class PlantGrowthExperiment:
    def __init__(self, board):
        self.board = board
        self.grow_light = 2      # LED grow light
        self.water_pump = 5      # Water pump
        self.fan = 6             # Ventilation fan

    def daily_cycle(self):
        # 12-hour light cycle
        self.board.write(self.grow_light, 1)
        time.sleep(12 * 3600)  # 12 hours
        self.board.write(self.grow_light, 0)

        # Water plants twice daily
        for _ in range(2):
            self.board.write(self.water_pump, 1)
            time.sleep(30)  # Water for 30 seconds
            self.board.write(self.water_pump, 0)
            time.sleep(6 * 3600)  # Wait 6 hours

    def monitor_conditions(self):
        light_level = self.board.analog_read()
        if light_level < 200:  # Too dark
            self.board.write(self.grow_light, 1)

        # Ventilation control
        self.board.pwm(self.fan, 300)  # Gentle air circulation

experiment = PlantGrowthExperiment(board)
```

#### ๐Ÿ“ก **IoT Weather Station**
```python
# Complete weather monitoring system
class WeatherStation:
    def __init__(self, board):
        self.board = board
        self.wind_direction_servo = 14
        self.data_led = 2

    def read_weather_data(self):
        # Read multiple sensors
        temperature = self.read_temperature()
        humidity = self.read_humidity()
        wind_speed = self.read_wind_speed()

        return {
            'temperature': temperature,
            'humidity': humidity,
            'wind_speed': wind_speed,
            'timestamp': time.time()
        }

    def upload_to_cloud(self, data):
        # Blink LED to indicate data transmission
        for _ in range(3):
            self.board.write(self.data_led, 1)
            time.sleep(0.2)
            self.board.write(self.data_led, 0)
            time.sleep(0.2)

        # Upload data to cloud service
        # (Implementation depends on cloud provider)
        pass

weather = WeatherStation(board)
```

</details>

<details>
<summary><h3>๐ŸŽฎ <strong>Interactive & Entertainment Projects</strong></h3></summary>

Create engaging interactive projects:

#### ๐ŸŽต **Musical Light Show**
```python
# Synchronized music and lights
class MusicLightShow:
    def __init__(self, board):
        self.board = board
        self.lights = [2, 4, 5, 12, 13, 14, 15]  # Multiple LED pins

    def beat_pattern(self, intensity):
        # Create light patterns based on music intensity
        for i, pin in enumerate(self.lights):
            brightness = int(intensity * (i + 1) / len(self.lights) * 1023)
            self.board.pwm(pin, brightness)

    def rainbow_effect(self):
        # Smooth rainbow color transition
        for step in range(256):
            for i, pin in enumerate(self.lights):
                phase = (step + i * 36) % 256
                brightness = int((math.sin(phase * math.pi / 128) + 1) * 512)
                self.board.pwm(pin, brightness)
            time.sleep(0.05)

light_show = MusicLightShow(board)
light_show.rainbow_effect()
```

#### ๐ŸŽฏ **Interactive Game Controller**
```python
# Motion-controlled game
class MotionGameController:
    def __init__(self, board):
        self.board = board
        self.tilt_sensor_x = 4   # Tilt sensor X-axis
        self.tilt_sensor_y = 5   # Tilt sensor Y-axis
        self.button = 12         # Action button
        self.score_display = 2   # Score LED

    def read_motion(self):
        x_tilt = self.board.read(self.tilt_sensor_x)
        y_tilt = self.board.read(self.tilt_sensor_y)
        button_pressed = self.board.read(self.button)

        return {
            'x': x_tilt,
            'y': y_tilt,
            'action': button_pressed
        }

    def update_score_display(self, score):
        # Blink LED based on score
        blinks = min(score, 10)
        for _ in range(blinks):
            self.board.write(self.score_display, 1)
            time.sleep(0.1)
            self.board.write(self.score_display, 0)
            time.sleep(0.1)

game = MotionGameController(board)
```

</details>

## ๐Ÿ”’ Security Features

- Secure WiFi configuration
- Connection encryption support
- Device authentication
- Network isolation compatibility
- Firewall-friendly communication

## ๐Ÿ› Troubleshooting

### Common Issues

**Device not found:**
```bash
# Check network connectivity
esp-linker discover --timeout 60

# Verify device is on same network
ping 192.168.1.100
```

**Firmware flashing issues:**
```bash
# Auto-detect correct port
esp-linker detect

# Try different baud rate
esp-linker flash --baud 115200
```

**Connection timeouts:**
```python
# Increase timeout for slow networks
board = ESPBoard("192.168.1.100", timeout=30)
```

## ๐Ÿ“– Documentation & Support

- **Complete Documentation**: [www.skrelectronicslab.com/esp-linker](https://www.skrelectronicslab.com/esp-linker)
- **Video Tutorials**: [YouTube Channel](https://www.youtube.com/@skr_electronics_lab)
- **Community Support**: [Instagram](https://www.instagram.com/skr_electronics_lab)
- **Professional Support**: [skrelectronicslab@gmail.com](mailto:skrelectronicslab@gmail.com)

## ๐Ÿ’– Support the Project

If ESP-Linker helps your projects, consider supporting development:
- โญ Star the project on GitHub
- ๐Ÿ“ข Share with the maker community
- โ˜• [Buy me a coffee](https://buymeacoffee.com/skrelectronics)
- ๐Ÿ“บ Subscribe to [SKR Electronics Lab YouTube](https://www.youtube.com/@skr_electronics_lab)

## ๐Ÿ‘จโ€๐Ÿ’ป **About the Developer**

<div align="center">

### ๐ŸŒŸ **Meet SK Raihan - Founder of SKR Electronics Lab**

</div>

**SK Raihan** is a passionate electronics engineer and IoT specialist who founded **SKR Electronics Lab** with a mission to democratize electronics and IoT development. With extensive experience in embedded systems, wireless communication, and educational technology, SK Raihan has dedicated his career to creating professional-grade tools that make complex technology accessible to everyone.

#### ๐ŸŽฏ **Vision & Mission**
- **Vision**: Making IoT development accessible to everyone, from students to professionals
- **Mission**: Creating professional-grade, easy-to-use tools for the global maker community
- **Values**: Open-source collaboration, educational excellence, and innovation

#### ๐Ÿ† **Achievements**
- **10,000+** developers using SKR Electronics Lab tools
- **100+** educational videos on YouTube
- **Professional IoT Solutions** for educational institutions
- **Open-Source Contributions** to the maker community

#### ๐Ÿ”ฌ **Expertise Areas**
- **Embedded Systems**: ESP8266, ESP32, Arduino, Raspberry Pi
- **IoT Development**: Wireless protocols, cloud integration, edge computing
- **Educational Technology**: Creating learning resources and tools
- **Professional Software**: Python libraries, CLI tools, web applications

<div align="center">

### ๐ŸŒ **Connect with SKR Electronics Lab**

[![Website](https://img.shields.io/badge/Website-www.skrelectronicslab.com-blue?style=for-the-badge&logo=google-chrome)](https://www.skrelectronicslab.com)
[![Email](https://img.shields.io/badge/Email-skrelectronicslab@gmail.com-red?style=for-the-badge&logo=gmail)](mailto:skrelectronicslab@gmail.com)
[![YouTube](https://img.shields.io/badge/YouTube-@skr_electronics_lab-red?style=for-the-badge&logo=youtube)](https://www.youtube.com/@skr_electronics_lab)
[![Instagram](https://img.shields.io/badge/Instagram-@skr_electronics_lab-purple?style=for-the-badge&logo=instagram)](https://www.instagram.com/skr_electronics_lab)
[![GitHub](https://img.shields.io/badge/GitHub-skr--electronics--lab-black?style=for-the-badge&logo=github)](https://github.com/skr-electronics-lab)

</div>

## ๐Ÿ’– **Support the Project**

<div align="center">

### ๏ฟฝ **Help ESP-Linker Grow**

</div>

If ESP-Linker has helped your projects, consider supporting its development:

#### โญ **Free Ways to Support**
- **Star the Project**: Give us a star on GitHub
- **Share with Community**: Tell other makers about ESP-Linker
- **Write Reviews**: Share your experience on social media
- **Contribute**: Submit bug reports, feature requests, or code contributions

#### โ˜• **Financial Support**
- **Buy Me a Coffee**: [buymeacoffee.com/skrelectronics](https://buymeacoffee.com/skrelectronics)
- **Sponsor Development**: Contact us for sponsorship opportunities
- **Educational Licenses**: Special pricing for schools and universities

#### ๐Ÿ“บ **Follow Our Content**
- **Subscribe**: [SKR Electronics Lab YouTube](https://www.youtube.com/@skr_electronics_lab)
- **Follow**: [@skr_electronics_lab on Instagram](https://www.instagram.com/skr_electronics_lab)
- **Newsletter**: Get updates on new projects and tutorials

## ๏ฟฝ **Professional Support & Services**

<div align="center">

### ๐ŸŽฏ **Enterprise & Educational Solutions**

</div>

#### ๐Ÿข **Enterprise Services**
- **Custom IoT Solutions**: Tailored ESP-Linker implementations
- **Training Programs**: Professional IoT development training
- **Consulting Services**: Expert guidance for IoT projects
- **Technical Support**: Priority support for commercial users

#### ๐ŸŽ“ **Educational Programs**
- **Curriculum Development**: IoT courses using ESP-Linker
- **Workshop Materials**: Ready-to-use educational content
- **Student Licenses**: Special pricing for educational institutions
- **Teacher Training**: Professional development for educators

#### ๐Ÿ“ง **Contact Information**
- **General Inquiries**: [skrelectronicslab@gmail.com](mailto:skrelectronicslab@gmail.com)
- **Business Partnerships**: [skrelectronicslab@gmail.com](mailto:skrelectronicslab@gmail.com)
- **Technical Support**: [skrelectronicslab@gmail.com](mailto:skrelectronicslab@gmail.com)
- **Media Inquiries**: [skrelectronicslab@gmail.com](mailto:skrelectronicslab@gmail.com)

## ๐Ÿ“„ **License & Legal**

ESP-Linker is released under the **MIT License**, ensuring maximum freedom for both personal and commercial use.

#### ๐Ÿ“‹ **What This Means**
- โœ… **Commercial Use**: Use ESP-Linker in commercial products
- โœ… **Modification**: Modify the code for your needs
- โœ… **Distribution**: Distribute your modified versions
- โœ… **Private Use**: Use privately without restrictions
- โš ๏ธ **Attribution**: Include original copyright notice

See [LICENSE](LICENSE) file for complete details.

---

<div align="center">

## ๐Ÿš€ **ESP-Linker: Professional IoT Development Made Simple**

*Developed with โค๏ธ by [SK Raihan](https://www.skrelectronicslab.com) & [SKR Electronics Lab](https://www.skrelectronicslab.com)*

**Transform your ESP8266 projects today!**

[![Get Started](https://img.shields.io/badge/Get_Started-pip_install_esp--linker-blue?style=for-the-badge)](https://pypi.org/project/esp-linker/)
[![Documentation](https://img.shields.io/badge/Documentation-Read_Docs-green?style=for-the-badge)](https://www.skrelectronicslab.com/esp-linker)
[![YouTube](https://img.shields.io/badge/Tutorials-Watch_Now-red?style=for-the-badge)](https://www.youtube.com/@skr_electronics_lab)

</div>

            

Raw data

            {
    "_id": null,
    "home_page": "https://www.skrelectronicslab.com",
    "name": "esp-linker",
    "maintainer": "SKR Electronics Lab",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "skrelectronicslab@gmail.com",
    "keywords": "esp8266, gpio, iot, wireless, arduino, microcontroller, automation, robotics, electronics, maker, diy, wifi, remote-control, pyfirmata, esp-linker, nodemcu, wemos, embedded, hardware, sensor, actuator, smart-home, internet-of-things, esp32, micropython, circuitpython, raspberry-pi, home-automation, industrial-iot, edge-computing, wireless-communication, web-dashboard, cli-tools, firmware, skr-electronics-lab, professional, production-ready, cross-platform",
    "author": "SK Raihan",
    "author_email": "skrelectronicslab@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/b2/29/e5cc564ebcfbad80edcff591618cdd52d988c9ecb3510262824d84ef1028/esp_linker-1.2.1.tar.gz",
    "platform": null,
    "description": "<div align=\"center\">\r\n\r\n# \ud83d\ude80 ESP-Linker\r\n### Professional Wireless GPIO Control for ESP8266\r\n\r\n[![PyPI version](https://img.shields.io/pypi/v/esp-linker?style=for-the-badge&logo=pypi&logoColor=white&color=blue)](https://pypi.org/project/esp-linker)\r\n[![Python versions](https://img.shields.io/pypi/pyversions/esp-linker?style=for-the-badge&logo=python&logoColor=white&color=green)](https://pypi.org/project/esp-linker/)\r\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge)](https://opensource.org/licenses/MIT)\r\n[![Downloads](https://img.shields.io/pypi/dm/esp-linker?style=for-the-badge&logo=download&logoColor=white&color=orange)](https://pepy.tech/project/esp-linker)\r\n\r\n[![GitHub stars](https://img.shields.io/github/stars/skr-electronics-lab/esp-linker?style=social)](https://github.com/skr-electronics-lab/esp-linker)\r\n[![YouTube](https://img.shields.io/badge/YouTube-Subscribe-red?style=social&logo=youtube)](https://www.youtube.com/@skr_electronics_lab)\r\n[![Instagram](https://img.shields.io/badge/Instagram-Follow-purple?style=social&logo=instagram)](https://www.instagram.com/skr_electronics_lab)\r\n\r\n**\ud83c\udfaf Transform your ESP8266 into a powerful wireless GPIO controller**\r\n\r\n*Complete IoT development platform with PyFirmata-inspired interface*\r\n\r\n[\ud83d\udcda Documentation](https://www.skrelectronicslab.com/esp-linker) \u2022 [\ud83d\ude80 Quick Start](#-quick-start-guide) \u2022 [\ud83d\udca1 Examples](#-advanced-usage) \u2022 [\ud83c\udfa5 Video Tutorials](https://www.youtube.com/@skr_electronics_lab)\r\n\r\n</div>\r\n\r\n---\r\n\r\n## \ud83c\udf1f **What is ESP-Linker?**\r\n\r\n**ESP-Linker** is a comprehensive IoT development platform created by **SKR Electronics Lab** that revolutionizes ESP8266 development. It provides professional wireless GPIO control with a familiar PyFirmata-inspired interface, making IoT development accessible to everyone from beginners to professionals.\r\n\r\n### \ud83c\udfaf **Why Choose ESP-Linker?**\r\n\r\n| Traditional ESP8266 Development | ESP-Linker Advantage |\r\n|--------------------------------|----------------------|\r\n| Complex WiFi setup code | Interactive WiFi wizard |\r\n| Manual device discovery | Automatic mDNS discovery |\r\n| Basic GPIO control | Professional API with error handling |\r\n| No device management | Multi-device management system |\r\n| Command-line only | CLI tools + Web dashboard |\r\n| Separate firmware needed | Built-in firmware (365KB) |\r\n\r\n## \u2728 **Complete Feature Overview**\r\n\r\n<details>\r\n<summary><h3>\ud83d\udce1 <strong>Wireless GPIO Control System</strong></h3></summary>\r\n\r\nTransform your ESP8266 into a powerful wireless GPIO controller with professional-grade features:\r\n\r\n#### \ud83d\udd0c **Digital I/O Operations**\r\n- **Digital Write**: Control LEDs, relays, motors with `board.write(pin, value)`\r\n- **Digital Read**: Read button states, sensor outputs with `board.read(pin)`\r\n- **Pull-up Support**: Built-in pull-up resistor configuration for reliable readings\r\n- **Pin State Caching**: Optimized performance with intelligent state management\r\n\r\n#### \u26a1 **PWM (Pulse Width Modulation)**\r\n- **8 PWM Channels**: Simultaneous control of multiple PWM outputs\r\n- **0-1023 Resolution**: Fine-grained control for precise applications\r\n- **LED Brightness Control**: Smooth dimming and color mixing\r\n- **Motor Speed Control**: Variable speed control for DC motors\r\n- **Servo Positioning**: Precise servo angle control (0-180\u00b0)\r\n\r\n#### \ud83d\udcca **Analog Input System**\r\n- **10-bit ADC**: High-resolution analog readings (0-1024)\r\n- **A0 Pin Support**: Read sensors, potentiometers, voltage dividers\r\n- **Real-time Sampling**: Continuous data collection for monitoring\r\n- **Calibration Support**: Built-in calibration for accurate measurements\r\n\r\n#### \ufffd **Batch Operations**\r\n- **Multiple Pin Control**: Efficient bulk GPIO operations\r\n- **Atomic Transactions**: Ensure synchronized pin state changes\r\n- **Performance Optimization**: Reduced network overhead for complex operations\r\n\r\n</details>\r\n\r\n<details>\r\n<summary><h3>\ud83d\udd0d <strong>Intelligent Auto-Discovery & Device Management</strong></h3></summary>\r\n\r\nProfessional device management system for seamless multi-device operations:\r\n\r\n#### \ud83c\udf10 **mDNS Auto-Discovery**\r\n- **Zero-Configuration**: Automatic device detection without IP addresses\r\n- **Network Scanning**: Intelligent network topology discovery\r\n- **Service Broadcasting**: ESP8266 devices announce themselves automatically\r\n- **Cross-Platform Support**: Works on Windows, Linux, macOS networks\r\n\r\n#### \ud83d\udcf1 **Multi-Device Management**\r\n- **Device Registration**: Persistent device database with automatic updates\r\n- **Centralized Control**: Manage multiple ESP8266 boards from single interface\r\n- **Device Grouping**: Organize devices by location, function, or project\r\n- **Status Monitoring**: Real-time health checks and connectivity status\r\n\r\n#### \ud83d\udd04 **Connection Health Monitoring**\r\n- **Auto-Retry Logic**: Intelligent reconnection with exponential backoff\r\n- **Heartbeat System**: Continuous connectivity verification\r\n- **Failover Support**: Automatic switching between available devices\r\n- **Network Resilience**: Handles WiFi disconnections and network changes\r\n\r\n#### \ud83d\udcbe **Persistent Configuration**\r\n- **Device Profiles**: Save device settings, pin configurations, and preferences\r\n- **Configuration Backup**: Export/import device configurations\r\n- **Version Control**: Track configuration changes and rollback support\r\n\r\n</details>\r\n\r\n<details>\r\n<summary><h3>\u26a1 <strong>Professional CLI Tools Suite</strong></h3></summary>\r\n\r\nComprehensive command-line interface for professional development workflows:\r\n\r\n#### \ud83d\udd27 **Firmware Management**\r\n- **Built-in Firmware**: 365KB complete ESP8266 firmware included\r\n- **Visual Progress Bars**: Real-time flashing progress with tqdm integration\r\n- **Auto-Port Detection**: Intelligent ESP8266 board detection\r\n- **Multiple Baud Rates**: Support for 115200, 460800, 921600 baud rates\r\n- **Chip Verification**: Automatic chip ID and flash size detection\r\n\r\n#### \ud83d\udcf6 **WiFi Configuration Wizard**\r\n- **Interactive Setup**: Step-by-step WiFi configuration process\r\n- **Network Scanning**: Discover available WiFi networks with signal strength\r\n- **Security Support**: WPA/WPA2 encryption with password validation\r\n- **Connection Testing**: Verify connectivity before saving configuration\r\n- **Multiple Methods**: Serial, wireless, and AP-mode configuration options\r\n\r\n#### \ud83d\udd0d **Device Discovery & Testing**\r\n- **Network Discovery**: Find ESP-Linker devices on local network\r\n- **Port Detection**: Automatically detect connected ESP8266 boards\r\n- **Functionality Testing**: Comprehensive device testing with LED, PWM, servo tests\r\n- **Performance Benchmarks**: Measure response times and throughput\r\n- **Diagnostic Tools**: Network connectivity and device health checks\r\n\r\n#### \ud83d\udcca **Device Management Commands**\r\n```bash\r\nesp-linker devices list          # List all managed devices\r\nesp-linker devices discover      # Find and add new devices\r\nesp-linker devices stats         # Show device statistics\r\nesp-linker devices remove        # Remove devices from management\r\nesp-linker devices monitor       # Real-time device monitoring\r\n```\r\n\r\n</details>\r\n\r\n<details>\r\n<summary><h3>\ud83c\udf10 <strong>Professional Web Dashboard</strong></h3></summary>\r\n\r\nModern, responsive web interface for device control and monitoring:\r\n\r\n#### \ud83c\udfa8 **Modern UI/UX Design**\r\n- **Responsive Layout**: Perfect on desktop, tablet, and mobile devices\r\n- **Dark/Light Themes**: Professional themes with smooth transitions\r\n- **Real-time Updates**: Live device status and GPIO state updates\r\n- **Interactive Controls**: Touch-friendly sliders, buttons, and switches\r\n\r\n#### \ufffd **Device Monitoring**\r\n- **Live GPIO States**: Real-time pin status visualization\r\n- **Analog Data Plots**: Interactive charts for sensor data\r\n- **Device Statistics**: Uptime, memory usage, WiFi signal strength\r\n- **Historical Data**: Data logging and trend analysis\r\n\r\n#### \ud83c\udf9b\ufe0f **Control Interface**\r\n- **GPIO Control Panel**: Visual pin control with instant feedback\r\n- **PWM Sliders**: Smooth PWM control with real-time preview\r\n- **Servo Control**: Angle control with visual servo position\r\n- **Batch Operations**: Control multiple pins simultaneously\r\n\r\n#### \ud83d\udd27 **Advanced Features**\r\n- **Device Configuration**: Change device settings through web interface\r\n- **Firmware Updates**: OTA firmware updates through browser\r\n- **Export/Import**: Configuration backup and restore\r\n- **API Documentation**: Built-in API reference and testing tools\r\n\r\n</details>\r\n\r\n<details>\r\n<summary><h3>\ud83d\udd27 <strong>Enhanced Development Experience</strong></h3></summary>\r\n\r\nProfessional development tools and features for efficient IoT development:\r\n\r\n#### \ud83d\udee1\ufe0f **Robust Error Handling**\r\n- **Auto-Retry Logic**: Intelligent retry with exponential backoff\r\n- **Connection Recovery**: Automatic reconnection on network failures\r\n- **Timeout Management**: Configurable timeouts for different operations\r\n- **Error Reporting**: Detailed error messages with troubleshooting hints\r\n\r\n#### \ud83d\udcdd **Professional Logging**\r\n- **Structured Logging**: JSON-formatted logs for easy parsing\r\n- **Log Levels**: Debug, info, warning, error levels with filtering\r\n- **File Logging**: Persistent logs with rotation and compression\r\n- **Real-time Monitoring**: Live log streaming for debugging\r\n\r\n#### \ud83d\udd12 **Security Features**\r\n- **Secure Communication**: HTTPS support for encrypted communication\r\n- **Authentication**: Device authentication and access control\r\n- **CORS Support**: Cross-origin resource sharing for web applications\r\n- **Network Isolation**: Support for isolated network environments\r\n\r\n#### \ud83d\ude80 **Performance Optimization**\r\n- **Connection Pooling**: Efficient connection management\r\n- **Caching System**: Intelligent caching for improved performance\r\n- **Batch Processing**: Optimized bulk operations\r\n- **Memory Management**: Efficient memory usage and garbage collection\r\n\r\n</details>\r\n\r\n## \ud83d\udce6 **Professional Installation Guide**\r\n\r\n<div align=\"center\">\r\n\r\n### \ud83d\ude80 **One-Command Installation**\r\n\r\n</div>\r\n\r\n#### \ud83c\udfaf **Standard Installation** (Recommended)\r\n```bash\r\npip install esp-linker\r\n```\r\n*Includes: Core library, CLI tools, firmware, auto-discovery*\r\n\r\n#### \ud83c\udf10 **Full Installation** (With Web Dashboard)\r\n```bash\r\npip install esp-linker[dashboard]\r\n```\r\n*Includes: Everything + Flask web dashboard*\r\n\r\n#### \ud83d\udd27 **Developer Installation** (Complete Package)\r\n```bash\r\npip install esp-linker[all]\r\n```\r\n*Includes: All features + development tools*\r\n\r\n#### \ud83d\udccb **System Requirements**\r\n- **Python**: 3.7+ (3.8+ recommended)\r\n- **Operating System**: Windows 10+, Linux, macOS 10.14+\r\n- **Hardware**: ESP8266 board (NodeMCU, Wemos D1, etc.)\r\n- **Network**: WiFi connection for ESP8266 and development machine\r\n\r\n#### \u2705 **Verify Installation**\r\n```bash\r\nesp-linker --version          # Check CLI installation\r\npython -c \"import esp_linker; print('ESP-Linker ready!')\"\r\n```\r\n\r\n## \ud83d\ude80 **Complete Quick Start Guide**\r\n\r\n<div align=\"center\">\r\n\r\n### \u26a1 **From Zero to IoT in 5 Minutes**\r\n\r\n</div>\r\n\r\n<details>\r\n<summary><h3>\ud83d\udd25 <strong>Step 1: Flash ESP8266 Firmware</strong></h3></summary>\r\n\r\nTransform your ESP8266 into an ESP-Linker device with our built-in firmware:\r\n\r\n#### \ud83c\udfaf **Automatic Flashing** (Recommended)\r\n```bash\r\nesp-linker flash\r\n```\r\n*Auto-detects ESP8266 board and flashes firmware with progress bars*\r\n\r\n#### \ud83d\udd27 **Manual Port Selection**\r\n```bash\r\nesp-linker flash --port COM3        # Windows\r\nesp-linker flash --port /dev/ttyUSB0 # Linux\r\nesp-linker flash --port /dev/cu.usbserial # macOS\r\n```\r\n\r\n#### \u2699\ufe0f **Advanced Options**\r\n```bash\r\nesp-linker flash --baud 921600       # High-speed flashing\r\nesp-linker flash --no-erase         # Skip chip erase\r\nesp-linker flash --firmware-info    # Show firmware details\r\n```\r\n\r\n#### \ud83d\udcca **What Gets Flashed**\r\n- **ESP-Linker Firmware**: Complete 365KB firmware\r\n- **WiFi Stack**: Professional WiFi management\r\n- **GPIO API**: RESTful GPIO control interface\r\n- **mDNS Service**: Auto-discovery capability\r\n- **Web Server**: Built-in HTTP server for control\r\n\r\n</details>\r\n\r\n<details>\r\n<summary><h3>\ud83d\udcf6 <strong>Step 2: Configure WiFi Connection</strong></h3></summary>\r\n\r\nSet up WiFi connectivity with our interactive wizard:\r\n\r\n#### \ud83e\uddd9\u200d\u2642\ufe0f **Interactive WiFi Wizard**\r\n```bash\r\nesp-linker setup-wifi --port COM3\r\n```\r\n\r\n**What the wizard does:**\r\n1. **Scans Networks**: Discovers available WiFi networks\r\n2. **Shows Signal Strength**: Displays RSSI for optimal selection\r\n3. **Security Detection**: Identifies WPA/WPA2 encryption\r\n4. **Credential Input**: Secure password entry\r\n5. **Connection Testing**: Verifies connectivity before saving\r\n\r\n#### \ud83d\udd27 **Manual WiFi Configuration**\r\n```bash\r\nesp-linker configure-wifi --ssid \"YourNetwork\" --password \"YourPassword\"\r\n```\r\n\r\n#### \ud83d\udce1 **WiFi Status Check**\r\n```bash\r\nesp-linker wifi-status --port COM3\r\n```\r\n\r\n</details>\r\n\r\n<details>\r\n<summary><h3>\ud83d\udd0d <strong>Step 3: Discover Your Device</strong></h3></summary>\r\n\r\nFind your ESP-Linker device on the network:\r\n\r\n#### \ud83c\udf10 **Auto-Discovery**\r\n```bash\r\nesp-linker discover\r\n```\r\n*Uses mDNS to find ESP-Linker devices automatically*\r\n\r\n#### \ud83c\udfaf **Advanced Discovery**\r\n```bash\r\nesp-linker discover --timeout 60    # Extended search\r\nesp-linker discover --json          # JSON output\r\nesp-linker devices discover         # Add to device manager\r\n```\r\n\r\n#### \ud83d\udcf1 **Device Management**\r\n```bash\r\nesp-linker devices list             # Show managed devices\r\nesp-linker devices stats            # Device statistics\r\n```\r\n\r\n</details>\r\n\r\n<details>\r\n<summary><h3>\ud83d\udc0d <strong>Step 4: Python Programming</strong></h3></summary>\r\n\r\nStart controlling your ESP8266 with Python:\r\n\r\n#### \ud83d\ude80 **Basic GPIO Control**\r\n```python\r\nfrom esp_linker import connect_auto\r\n\r\n# Auto-discover and connect\r\nboard = connect_auto()\r\n\r\n# Digital I/O\r\nboard.write(2, 1)           # Turn on LED (pin 2)\r\nbutton_state = board.read(4) # Read button (pin 4)\r\n\r\n# Analog input\r\nsensor_value = board.analog_read()  # Read A0 pin\r\n\r\n# PWM control (0-1023)\r\nboard.pwm(5, 512)           # 50% brightness\r\n\r\n# Servo control (0-180\u00b0)\r\nboard.servo(14, 90)         # Center position\r\n\r\n# Device info\r\ninfo = board.get_device_info()\r\nprint(f\"Device: {info['firmware_name']} v{info['firmware_version']}\")\r\nprint(f\"Uptime: {info['uptime']} seconds\")\r\nprint(f\"Free Memory: {info['free_heap']} bytes\")\r\n\r\nboard.close()\r\n```\r\n\r\n#### \ud83d\udd27 **Advanced Control**\r\n```python\r\nfrom esp_linker import ESPBoard\r\n\r\n# Manual connection\r\nboard = ESPBoard(\"192.168.1.100\")\r\n\r\n# Batch operations\r\npins_states = {2: 1, 4: 0, 5: 1}\r\nboard.write_multiple(pins_states)\r\n\r\n# PWM with custom frequency\r\nboard.pwm_freq(1000)  # Set PWM frequency to 1kHz\r\nboard.pwm(5, 256)     # 25% duty cycle\r\n\r\n# Servo with speed control\r\nboard.servo_speed(14, 90, speed=50)  # Slow movement\r\n\r\n# Connection monitoring\r\nif board.ping():\r\n    print(\"Device is responsive\")\r\nelse:\r\n    print(\"Device not responding\")\r\n```\r\n\r\n#### \ud83c\udf10 **Web Dashboard Access**\r\n```python\r\n# Launch web dashboard\r\nfrom esp_linker.dashboard import run_dashboard\r\nrun_dashboard(port=8080)\r\n```\r\n\r\n</details>\r\n\r\n<details>\r\n<summary><h3>\ud83c\udf9b\ufe0f <strong>Step 5: Web Dashboard Control</strong></h3></summary>\r\n\r\nAccess the professional web interface:\r\n\r\n#### \ud83c\udf10 **Launch Dashboard**\r\n```bash\r\nesp-linker dashboard\r\n```\r\n*Opens at http://localhost:5000*\r\n\r\n#### \u2699\ufe0f **Custom Configuration**\r\n```bash\r\nesp-linker dashboard --host 0.0.0.0 --port 8080 --debug\r\n```\r\n\r\n#### \ud83d\udcf1 **Dashboard Features**\r\n- **Real-time GPIO Control**: Interactive pin control\r\n- **Live Monitoring**: Device status and sensor data\r\n- **Device Management**: Add, remove, configure devices\r\n- **Data Visualization**: Charts and graphs for sensor data\r\n- **Mobile Responsive**: Perfect on phones and tablets\r\n\r\n</details>\r\n\r\n## \ud83d\udee0\ufe0f Advanced Usage\r\n\r\n### Manual Connection\r\n```python\r\nfrom esp_linker import ESPBoard\r\n\r\n# Connect to specific IP address\r\nboard = ESPBoard(\"192.168.1.100\")\r\n\r\n# Or connect via URL\r\nboard = ESPBoard(\"http://192.168.1.100\")\r\n```\r\n\r\n### Device Management\r\n```python\r\nfrom esp_linker import get_device_manager\r\n\r\n# Get device manager instance\r\nmanager = get_device_manager()\r\n\r\n# Discover and add new devices\r\nnew_devices = manager.discover_and_add_devices(timeout=10)\r\n\r\n# List all managed devices\r\ndevices = manager.list_devices()\r\nfor device in devices:\r\n    print(f\"Device: {device.name} at {device.ip}\")\r\n\r\n# Get device statistics\r\nstats = manager.get_device_stats()\r\nprint(f\"Total devices: {stats['total_devices']}\")\r\n```\r\n\r\n### CLI Commands Reference\r\n```bash\r\n# Device discovery and management\r\nesp-linker discover --timeout 30        # Network discovery\r\nesp-linker devices list                  # List managed devices\r\nesp-linker devices discover             # Add new devices\r\nesp-linker devices stats                # Device statistics\r\n\r\n# Firmware and hardware\r\nesp-linker flash --firmware-info        # Show firmware details\r\nesp-linker detect --json               # Detect ESP8266 boards\r\nesp-linker test --device 192.168.1.100 # Test device functionality\r\n\r\n# Web interface\r\nesp-linker dashboard --port 8080        # Launch web dashboard\r\n```\r\n\r\n## \ud83c\udf10 Web Dashboard\r\n\r\nLaunch the professional web dashboard:\r\n```bash\r\nesp-linker dashboard\r\n```\r\n\r\nFeatures:\r\n- Real-time device monitoring\r\n- Interactive GPIO control\r\n- Device status and statistics\r\n- Responsive design for mobile/desktop\r\n- Multi-device management\r\n\r\n## \ud83d\udccb System Requirements\r\n\r\n- **Python**: 3.7 or higher\r\n- **Operating System**: Windows, Linux, macOS\r\n- **Hardware**: ESP8266 board (NodeMCU, Wemos D1, etc.)\r\n- **Network**: WiFi connection for ESP8266 and development machine\r\n\r\n## \ud83d\udd27 **Hardware Compatibility Matrix**\r\n\r\n<div align=\"center\">\r\n\r\n### \ud83c\udfaf **Tested & Verified ESP8266 Boards**\r\n\r\n</div>\r\n\r\n| Board | Status | Flash Size | GPIO Pins | Special Features |\r\n|-------|--------|------------|-----------|------------------|\r\n| **NodeMCU v1.0** | \u2705 Fully Supported | 4MB | 11 usable | Built-in USB, LED on pin 2 |\r\n| **NodeMCU v0.9** | \u2705 Fully Supported | 4MB | 11 usable | Older version, fully compatible |\r\n| **Wemos D1 Mini** | \u2705 Fully Supported | 4MB | 11 usable | Compact size, perfect for projects |\r\n| **Wemos D1 R2** | \u2705 Fully Supported | 4MB | 11 usable | Arduino Uno form factor |\r\n| **ESP8266-01** | \u26a0\ufe0f Limited Support | 1MB | 2 usable | Minimal pins, requires adapter |\r\n| **ESP8266-12E** | \u2705 Fully Supported | 4MB | 16 usable | Raw module, requires breakout |\r\n| **ESP8266-12F** | \u2705 Fully Supported | 4MB | 16 usable | Improved antenna design |\r\n| **Adafruit Feather HUZZAH** | \u2705 Fully Supported | 4MB | 9 usable | Battery connector, compact |\r\n| **SparkFun ESP8266 Thing** | \u2705 Fully Supported | 4MB | 11 usable | LiPo charging circuit |\r\n| **Generic ESP8266** | \u2705 Usually Supported | Varies | Varies | Most ESP8266 boards work |\r\n\r\n### \ud83d\udd0c **Pin Configuration Reference**\r\n\r\n#### **NodeMCU Pin Mapping**\r\n```\r\nNodeMCU Pin | ESP8266 GPIO | Function | ESP-Linker Support\r\n------------|--------------|----------|-------------------\r\nD0          | GPIO16       | Digital  | \u2705 Digital I/O only\r\nD1          | GPIO5        | Digital  | \u2705 Digital + PWM + Servo\r\nD2          | GPIO4        | Digital  | \u2705 Digital + PWM + Servo\r\nD3          | GPIO0        | Digital  | \u2705 Digital I/O (Boot pin)\r\nD4          | GPIO2        | Digital  | \u2705 Digital + PWM + LED\r\nD5          | GPIO14       | Digital  | \u2705 Digital + PWM + Servo\r\nD6          | GPIO12       | Digital  | \u2705 Digital + PWM + Servo\r\nD7          | GPIO13       | Digital  | \u2705 Digital + PWM + Servo\r\nD8          | GPIO15       | Digital  | \u2705 Digital + PWM + Servo\r\nA0          | ADC0         | Analog   | \u2705 10-bit ADC input\r\n```\r\n\r\n#### **Wemos D1 Mini Pin Mapping**\r\n```\r\nD1 Mini Pin | ESP8266 GPIO | Function | ESP-Linker Support\r\n------------|--------------|----------|-------------------\r\nD0          | GPIO16       | Digital  | \u2705 Digital I/O only\r\nD1          | GPIO5        | Digital  | \u2705 Digital + PWM + Servo + I2C SCL\r\nD2          | GPIO4        | Digital  | \u2705 Digital + PWM + Servo + I2C SDA\r\nD3          | GPIO0        | Digital  | \u2705 Digital I/O (Flash button)\r\nD4          | GPIO2        | Digital  | \u2705 Digital + PWM + Built-in LED\r\nD5          | GPIO14       | Digital  | \u2705 Digital + PWM + Servo + SPI CLK\r\nD6          | GPIO12       | Digital  | \u2705 Digital + PWM + Servo + SPI MISO\r\nD7          | GPIO13       | Digital  | \u2705 Digital + PWM + Servo + SPI MOSI\r\nD8          | GPIO15       | Digital  | \u2705 Digital + PWM + Servo + SPI CS\r\nA0          | ADC0         | Analog   | \u2705 10-bit ADC (0-1024)\r\n```\r\n\r\n### \u26a1 **Power Requirements**\r\n- **Operating Voltage**: 3.3V (regulated on most boards)\r\n- **Input Voltage**: 5V via USB or 7-12V via Vin pin\r\n- **Current Consumption**:\r\n  - Active: ~80mA\r\n  - Deep Sleep: ~20\u00b5A\r\n  - WiFi Transmit: ~170mA peak\r\n\r\n### \ud83d\udd27 **Connection Requirements**\r\n- **USB Cable**: Micro-USB (NodeMCU) or USB-C (newer boards)\r\n- **WiFi Network**: 2.4GHz (ESP8266 doesn't support 5GHz)\r\n- **Computer**: Windows/Linux/macOS with Python 3.7+\r\n\r\n## \ud83d\udcda API Reference\r\n\r\n### ESPBoard Class\r\n```python\r\nclass ESPBoard:\r\n    def __init__(self, ip_or_url: str, timeout: float = 10.0)\r\n    def write(self, pin: int, value: int) -> bool\r\n    def read(self, pin: int) -> int\r\n    def analog_read(self) -> int\r\n    def pwm(self, pin: int, value: int) -> bool\r\n    def servo(self, pin: int, angle: int) -> bool\r\n    def get_device_info(self) -> dict\r\n    def ping(self) -> bool\r\n    def close(self) -> None\r\n```\r\n\r\n### Utility Functions\r\n```python\r\ndef connect_auto(timeout: float = 10.0) -> ESPBoard\r\ndef discover_devices(timeout: float = 30.0) -> List[dict]\r\ndef flash_esp8266(port: str = None, baud: int = 115200) -> bool\r\ndef detect_esp8266() -> List[str]\r\n```\r\n\r\n## \ud83c\udfaf **Real-World Use Cases & Project Examples**\r\n\r\n<div align=\"center\">\r\n\r\n### \ud83c\udf1f **Transform Ideas into Reality**\r\n\r\n</div>\r\n\r\n<details>\r\n<summary><h3>\ud83c\udfe0 <strong>Smart Home Automation</strong></h3></summary>\r\n\r\nCreate intelligent home automation systems with ESP-Linker:\r\n\r\n#### \ud83d\udca1 **Smart Lighting Control**\r\n```python\r\nfrom esp_linker import connect_auto\r\nimport time\r\n\r\nboard = connect_auto()\r\n\r\n# Smart dimming based on time of day\r\ndef auto_dimming():\r\n    current_hour = time.localtime().tm_hour\r\n    if 6 <= current_hour <= 8:      # Morning\r\n        board.pwm(2, 300)           # 30% brightness\r\n    elif 18 <= current_hour <= 22:  # Evening\r\n        board.pwm(2, 700)           # 70% brightness\r\n    else:                           # Night\r\n        board.pwm(2, 100)           # 10% brightness\r\n\r\nauto_dimming()\r\n```\r\n\r\n#### \ud83c\udf21\ufe0f **Climate Control System**\r\n```python\r\n# Temperature-based fan control\r\ntemp_sensor = board.analog_read()  # Temperature sensor on A0\r\ntemp_celsius = (temp_sensor * 3.3 / 1024 - 0.5) * 100\r\n\r\nif temp_celsius > 25:\r\n    board.pwm(5, 1023)  # Full speed fan\r\nelif temp_celsius > 22:\r\n    board.pwm(5, 512)   # Half speed fan\r\nelse:\r\n    board.pwm(5, 0)     # Fan off\r\n```\r\n\r\n#### \ud83d\udeaa **Smart Door Lock**\r\n```python\r\n# RFID-controlled door lock\r\ndef check_access_card():\r\n    card_detected = board.read(4)  # RFID reader signal\r\n    if card_detected:\r\n        board.servo(14, 90)        # Unlock (servo to 90\u00b0)\r\n        time.sleep(5)\r\n        board.servo(14, 0)         # Lock (servo to 0\u00b0)\r\n```\r\n\r\n</details>\r\n\r\n<details>\r\n<summary><h3>\ud83e\udd16 <strong>Robotics & Automation</strong></h3></summary>\r\n\r\nBuild sophisticated robotic systems:\r\n\r\n#### \ud83d\ude97 **Remote-Controlled Robot**\r\n```python\r\nfrom esp_linker import ESPBoard\r\n\r\nrobot = ESPBoard(\"192.168.1.100\")\r\n\r\nclass RobotController:\r\n    def __init__(self, board):\r\n        self.board = board\r\n        self.left_motor = 5   # PWM pin for left motor\r\n        self.right_motor = 6  # PWM pin for right motor\r\n\r\n    def move_forward(self, speed=512):\r\n        self.board.pwm(self.left_motor, speed)\r\n        self.board.pwm(self.right_motor, speed)\r\n\r\n    def turn_left(self, speed=300):\r\n        self.board.pwm(self.left_motor, 0)\r\n        self.board.pwm(self.right_motor, speed)\r\n\r\n    def stop(self):\r\n        self.board.pwm(self.left_motor, 0)\r\n        self.board.pwm(self.right_motor, 0)\r\n\r\nrobot_ctrl = RobotController(robot)\r\nrobot_ctrl.move_forward(400)  # Move at 40% speed\r\n```\r\n\r\n#### \ud83e\uddbe **Robotic Arm Control**\r\n```python\r\n# Multi-servo robotic arm\r\nclass RoboticArm:\r\n    def __init__(self, board):\r\n        self.board = board\r\n        self.base = 12      # Base rotation servo\r\n        self.shoulder = 13  # Shoulder servo\r\n        self.elbow = 14     # Elbow servo\r\n        self.gripper = 15   # Gripper servo\r\n\r\n    def move_to_position(self, base_angle, shoulder_angle, elbow_angle):\r\n        self.board.servo(self.base, base_angle)\r\n        time.sleep(0.5)\r\n        self.board.servo(self.shoulder, shoulder_angle)\r\n        time.sleep(0.5)\r\n        self.board.servo(self.elbow, elbow_angle)\r\n\r\n    def grab_object(self):\r\n        self.board.servo(self.gripper, 180)  # Close gripper\r\n\r\n    def release_object(self):\r\n        self.board.servo(self.gripper, 0)    # Open gripper\r\n\r\narm = RoboticArm(robot)\r\narm.move_to_position(90, 45, 135)  # Position arm\r\narm.grab_object()                   # Grab object\r\n```\r\n\r\n</details>\r\n\r\n<details>\r\n<summary><h3>\ud83c\udfed <strong>Industrial IoT & Monitoring</strong></h3></summary>\r\n\r\nImplement professional industrial monitoring systems:\r\n\r\n#### \ud83d\udcca **Multi-Sensor Data Logger**\r\n```python\r\nimport json\r\nimport time\r\nfrom datetime import datetime\r\n\r\nclass IndustrialMonitor:\r\n    def __init__(self, board):\r\n        self.board = board\r\n        self.data_log = []\r\n\r\n    def read_sensors(self):\r\n        return {\r\n            'timestamp': datetime.now().isoformat(),\r\n            'temperature': self.read_temperature(),\r\n            'pressure': self.read_pressure(),\r\n            'vibration': self.read_vibration(),\r\n            'motor_status': self.board.read(2)\r\n        }\r\n\r\n    def read_temperature(self):\r\n        # Convert analog reading to temperature\r\n        raw = self.board.analog_read()\r\n        return (raw * 3.3 / 1024 - 0.5) * 100\r\n\r\n    def continuous_monitoring(self, interval=60):\r\n        while True:\r\n            data = self.read_sensors()\r\n            self.data_log.append(data)\r\n\r\n            # Alert if temperature too high\r\n            if data['temperature'] > 80:\r\n                self.board.write(4, 1)  # Turn on alarm LED\r\n\r\n            time.sleep(interval)\r\n\r\nmonitor = IndustrialMonitor(board)\r\nmonitor.continuous_monitoring(30)  # Log every 30 seconds\r\n```\r\n\r\n#### \u2699\ufe0f **Equipment Control System**\r\n```python\r\n# Industrial equipment controller\r\nclass EquipmentController:\r\n    def __init__(self, board):\r\n        self.board = board\r\n        self.conveyor_motor = 5\r\n        self.sorting_servo = 14\r\n        self.alarm_led = 2\r\n\r\n    def start_production(self):\r\n        self.board.pwm(self.conveyor_motor, 800)  # Start conveyor\r\n        self.board.write(self.alarm_led, 0)       # Clear alarms\r\n\r\n    def emergency_stop(self):\r\n        self.board.pwm(self.conveyor_motor, 0)    # Stop conveyor\r\n        self.board.write(self.alarm_led, 1)       # Activate alarm\r\n        self.board.servo(self.sorting_servo, 0)   # Reset sorting arm\r\n```\r\n\r\n</details>\r\n\r\n<details>\r\n<summary><h3>\ud83c\udf93 <strong>Educational & Research Projects</strong></h3></summary>\r\n\r\nPerfect for learning and research applications:\r\n\r\n#### \ud83d\udd2c **Science Experiment Controller**\r\n```python\r\n# Automated plant growth experiment\r\nclass PlantGrowthExperiment:\r\n    def __init__(self, board):\r\n        self.board = board\r\n        self.grow_light = 2      # LED grow light\r\n        self.water_pump = 5      # Water pump\r\n        self.fan = 6             # Ventilation fan\r\n\r\n    def daily_cycle(self):\r\n        # 12-hour light cycle\r\n        self.board.write(self.grow_light, 1)\r\n        time.sleep(12 * 3600)  # 12 hours\r\n        self.board.write(self.grow_light, 0)\r\n\r\n        # Water plants twice daily\r\n        for _ in range(2):\r\n            self.board.write(self.water_pump, 1)\r\n            time.sleep(30)  # Water for 30 seconds\r\n            self.board.write(self.water_pump, 0)\r\n            time.sleep(6 * 3600)  # Wait 6 hours\r\n\r\n    def monitor_conditions(self):\r\n        light_level = self.board.analog_read()\r\n        if light_level < 200:  # Too dark\r\n            self.board.write(self.grow_light, 1)\r\n\r\n        # Ventilation control\r\n        self.board.pwm(self.fan, 300)  # Gentle air circulation\r\n\r\nexperiment = PlantGrowthExperiment(board)\r\n```\r\n\r\n#### \ud83d\udce1 **IoT Weather Station**\r\n```python\r\n# Complete weather monitoring system\r\nclass WeatherStation:\r\n    def __init__(self, board):\r\n        self.board = board\r\n        self.wind_direction_servo = 14\r\n        self.data_led = 2\r\n\r\n    def read_weather_data(self):\r\n        # Read multiple sensors\r\n        temperature = self.read_temperature()\r\n        humidity = self.read_humidity()\r\n        wind_speed = self.read_wind_speed()\r\n\r\n        return {\r\n            'temperature': temperature,\r\n            'humidity': humidity,\r\n            'wind_speed': wind_speed,\r\n            'timestamp': time.time()\r\n        }\r\n\r\n    def upload_to_cloud(self, data):\r\n        # Blink LED to indicate data transmission\r\n        for _ in range(3):\r\n            self.board.write(self.data_led, 1)\r\n            time.sleep(0.2)\r\n            self.board.write(self.data_led, 0)\r\n            time.sleep(0.2)\r\n\r\n        # Upload data to cloud service\r\n        # (Implementation depends on cloud provider)\r\n        pass\r\n\r\nweather = WeatherStation(board)\r\n```\r\n\r\n</details>\r\n\r\n<details>\r\n<summary><h3>\ud83c\udfae <strong>Interactive & Entertainment Projects</strong></h3></summary>\r\n\r\nCreate engaging interactive projects:\r\n\r\n#### \ud83c\udfb5 **Musical Light Show**\r\n```python\r\n# Synchronized music and lights\r\nclass MusicLightShow:\r\n    def __init__(self, board):\r\n        self.board = board\r\n        self.lights = [2, 4, 5, 12, 13, 14, 15]  # Multiple LED pins\r\n\r\n    def beat_pattern(self, intensity):\r\n        # Create light patterns based on music intensity\r\n        for i, pin in enumerate(self.lights):\r\n            brightness = int(intensity * (i + 1) / len(self.lights) * 1023)\r\n            self.board.pwm(pin, brightness)\r\n\r\n    def rainbow_effect(self):\r\n        # Smooth rainbow color transition\r\n        for step in range(256):\r\n            for i, pin in enumerate(self.lights):\r\n                phase = (step + i * 36) % 256\r\n                brightness = int((math.sin(phase * math.pi / 128) + 1) * 512)\r\n                self.board.pwm(pin, brightness)\r\n            time.sleep(0.05)\r\n\r\nlight_show = MusicLightShow(board)\r\nlight_show.rainbow_effect()\r\n```\r\n\r\n#### \ud83c\udfaf **Interactive Game Controller**\r\n```python\r\n# Motion-controlled game\r\nclass MotionGameController:\r\n    def __init__(self, board):\r\n        self.board = board\r\n        self.tilt_sensor_x = 4   # Tilt sensor X-axis\r\n        self.tilt_sensor_y = 5   # Tilt sensor Y-axis\r\n        self.button = 12         # Action button\r\n        self.score_display = 2   # Score LED\r\n\r\n    def read_motion(self):\r\n        x_tilt = self.board.read(self.tilt_sensor_x)\r\n        y_tilt = self.board.read(self.tilt_sensor_y)\r\n        button_pressed = self.board.read(self.button)\r\n\r\n        return {\r\n            'x': x_tilt,\r\n            'y': y_tilt,\r\n            'action': button_pressed\r\n        }\r\n\r\n    def update_score_display(self, score):\r\n        # Blink LED based on score\r\n        blinks = min(score, 10)\r\n        for _ in range(blinks):\r\n            self.board.write(self.score_display, 1)\r\n            time.sleep(0.1)\r\n            self.board.write(self.score_display, 0)\r\n            time.sleep(0.1)\r\n\r\ngame = MotionGameController(board)\r\n```\r\n\r\n</details>\r\n\r\n## \ud83d\udd12 Security Features\r\n\r\n- Secure WiFi configuration\r\n- Connection encryption support\r\n- Device authentication\r\n- Network isolation compatibility\r\n- Firewall-friendly communication\r\n\r\n## \ud83d\udc1b Troubleshooting\r\n\r\n### Common Issues\r\n\r\n**Device not found:**\r\n```bash\r\n# Check network connectivity\r\nesp-linker discover --timeout 60\r\n\r\n# Verify device is on same network\r\nping 192.168.1.100\r\n```\r\n\r\n**Firmware flashing issues:**\r\n```bash\r\n# Auto-detect correct port\r\nesp-linker detect\r\n\r\n# Try different baud rate\r\nesp-linker flash --baud 115200\r\n```\r\n\r\n**Connection timeouts:**\r\n```python\r\n# Increase timeout for slow networks\r\nboard = ESPBoard(\"192.168.1.100\", timeout=30)\r\n```\r\n\r\n## \ud83d\udcd6 Documentation & Support\r\n\r\n- **Complete Documentation**: [www.skrelectronicslab.com/esp-linker](https://www.skrelectronicslab.com/esp-linker)\r\n- **Video Tutorials**: [YouTube Channel](https://www.youtube.com/@skr_electronics_lab)\r\n- **Community Support**: [Instagram](https://www.instagram.com/skr_electronics_lab)\r\n- **Professional Support**: [skrelectronicslab@gmail.com](mailto:skrelectronicslab@gmail.com)\r\n\r\n## \ud83d\udc96 Support the Project\r\n\r\nIf ESP-Linker helps your projects, consider supporting development:\r\n- \u2b50 Star the project on GitHub\r\n- \ud83d\udce2 Share with the maker community\r\n- \u2615 [Buy me a coffee](https://buymeacoffee.com/skrelectronics)\r\n- \ud83d\udcfa Subscribe to [SKR Electronics Lab YouTube](https://www.youtube.com/@skr_electronics_lab)\r\n\r\n## \ud83d\udc68\u200d\ud83d\udcbb **About the Developer**\r\n\r\n<div align=\"center\">\r\n\r\n### \ud83c\udf1f **Meet SK Raihan - Founder of SKR Electronics Lab**\r\n\r\n</div>\r\n\r\n**SK Raihan** is a passionate electronics engineer and IoT specialist who founded **SKR Electronics Lab** with a mission to democratize electronics and IoT development. With extensive experience in embedded systems, wireless communication, and educational technology, SK Raihan has dedicated his career to creating professional-grade tools that make complex technology accessible to everyone.\r\n\r\n#### \ud83c\udfaf **Vision & Mission**\r\n- **Vision**: Making IoT development accessible to everyone, from students to professionals\r\n- **Mission**: Creating professional-grade, easy-to-use tools for the global maker community\r\n- **Values**: Open-source collaboration, educational excellence, and innovation\r\n\r\n#### \ud83c\udfc6 **Achievements**\r\n- **10,000+** developers using SKR Electronics Lab tools\r\n- **100+** educational videos on YouTube\r\n- **Professional IoT Solutions** for educational institutions\r\n- **Open-Source Contributions** to the maker community\r\n\r\n#### \ud83d\udd2c **Expertise Areas**\r\n- **Embedded Systems**: ESP8266, ESP32, Arduino, Raspberry Pi\r\n- **IoT Development**: Wireless protocols, cloud integration, edge computing\r\n- **Educational Technology**: Creating learning resources and tools\r\n- **Professional Software**: Python libraries, CLI tools, web applications\r\n\r\n<div align=\"center\">\r\n\r\n### \ud83c\udf10 **Connect with SKR Electronics Lab**\r\n\r\n[![Website](https://img.shields.io/badge/Website-www.skrelectronicslab.com-blue?style=for-the-badge&logo=google-chrome)](https://www.skrelectronicslab.com)\r\n[![Email](https://img.shields.io/badge/Email-skrelectronicslab@gmail.com-red?style=for-the-badge&logo=gmail)](mailto:skrelectronicslab@gmail.com)\r\n[![YouTube](https://img.shields.io/badge/YouTube-@skr_electronics_lab-red?style=for-the-badge&logo=youtube)](https://www.youtube.com/@skr_electronics_lab)\r\n[![Instagram](https://img.shields.io/badge/Instagram-@skr_electronics_lab-purple?style=for-the-badge&logo=instagram)](https://www.instagram.com/skr_electronics_lab)\r\n[![GitHub](https://img.shields.io/badge/GitHub-skr--electronics--lab-black?style=for-the-badge&logo=github)](https://github.com/skr-electronics-lab)\r\n\r\n</div>\r\n\r\n## \ud83d\udc96 **Support the Project**\r\n\r\n<div align=\"center\">\r\n\r\n### \ufffd **Help ESP-Linker Grow**\r\n\r\n</div>\r\n\r\nIf ESP-Linker has helped your projects, consider supporting its development:\r\n\r\n#### \u2b50 **Free Ways to Support**\r\n- **Star the Project**: Give us a star on GitHub\r\n- **Share with Community**: Tell other makers about ESP-Linker\r\n- **Write Reviews**: Share your experience on social media\r\n- **Contribute**: Submit bug reports, feature requests, or code contributions\r\n\r\n#### \u2615 **Financial Support**\r\n- **Buy Me a Coffee**: [buymeacoffee.com/skrelectronics](https://buymeacoffee.com/skrelectronics)\r\n- **Sponsor Development**: Contact us for sponsorship opportunities\r\n- **Educational Licenses**: Special pricing for schools and universities\r\n\r\n#### \ud83d\udcfa **Follow Our Content**\r\n- **Subscribe**: [SKR Electronics Lab YouTube](https://www.youtube.com/@skr_electronics_lab)\r\n- **Follow**: [@skr_electronics_lab on Instagram](https://www.instagram.com/skr_electronics_lab)\r\n- **Newsletter**: Get updates on new projects and tutorials\r\n\r\n## \ufffd **Professional Support & Services**\r\n\r\n<div align=\"center\">\r\n\r\n### \ud83c\udfaf **Enterprise & Educational Solutions**\r\n\r\n</div>\r\n\r\n#### \ud83c\udfe2 **Enterprise Services**\r\n- **Custom IoT Solutions**: Tailored ESP-Linker implementations\r\n- **Training Programs**: Professional IoT development training\r\n- **Consulting Services**: Expert guidance for IoT projects\r\n- **Technical Support**: Priority support for commercial users\r\n\r\n#### \ud83c\udf93 **Educational Programs**\r\n- **Curriculum Development**: IoT courses using ESP-Linker\r\n- **Workshop Materials**: Ready-to-use educational content\r\n- **Student Licenses**: Special pricing for educational institutions\r\n- **Teacher Training**: Professional development for educators\r\n\r\n#### \ud83d\udce7 **Contact Information**\r\n- **General Inquiries**: [skrelectronicslab@gmail.com](mailto:skrelectronicslab@gmail.com)\r\n- **Business Partnerships**: [skrelectronicslab@gmail.com](mailto:skrelectronicslab@gmail.com)\r\n- **Technical Support**: [skrelectronicslab@gmail.com](mailto:skrelectronicslab@gmail.com)\r\n- **Media Inquiries**: [skrelectronicslab@gmail.com](mailto:skrelectronicslab@gmail.com)\r\n\r\n## \ud83d\udcc4 **License & Legal**\r\n\r\nESP-Linker is released under the **MIT License**, ensuring maximum freedom for both personal and commercial use.\r\n\r\n#### \ud83d\udccb **What This Means**\r\n- \u2705 **Commercial Use**: Use ESP-Linker in commercial products\r\n- \u2705 **Modification**: Modify the code for your needs\r\n- \u2705 **Distribution**: Distribute your modified versions\r\n- \u2705 **Private Use**: Use privately without restrictions\r\n- \u26a0\ufe0f **Attribution**: Include original copyright notice\r\n\r\nSee [LICENSE](LICENSE) file for complete details.\r\n\r\n---\r\n\r\n<div align=\"center\">\r\n\r\n## \ud83d\ude80 **ESP-Linker: Professional IoT Development Made Simple**\r\n\r\n*Developed with \u2764\ufe0f by [SK Raihan](https://www.skrelectronicslab.com) & [SKR Electronics Lab](https://www.skrelectronicslab.com)*\r\n\r\n**Transform your ESP8266 projects today!**\r\n\r\n[![Get Started](https://img.shields.io/badge/Get_Started-pip_install_esp--linker-blue?style=for-the-badge)](https://pypi.org/project/esp-linker/)\r\n[![Documentation](https://img.shields.io/badge/Documentation-Read_Docs-green?style=for-the-badge)](https://www.skrelectronicslab.com/esp-linker)\r\n[![YouTube](https://img.shields.io/badge/Tutorials-Watch_Now-red?style=for-the-badge)](https://www.youtube.com/@skr_electronics_lab)\r\n\r\n</div>\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Professional wireless GPIO control for ESP8266 boards with PyFirmata-inspired interface, complete IoT solution with firmware, CLI tools, and web dashboard",
    "version": "1.2.1",
    "project_urls": {
        "Bug Tracker": "https://github.com/skr-electronics-lab/esp-linker/issues",
        "Documentation": "https://www.skrelectronicslab.com/esp-linker",
        "Download": "https://pypi.org/project/esp-linker/",
        "Homepage": "https://www.skrelectronicslab.com",
        "Instagram": "https://www.instagram.com/skr_electronics_lab",
        "PyPI": "https://pypi.org/project/esp-linker/",
        "Source Code": "https://github.com/skr-electronics-lab/esp-linker",
        "Support": "https://buymeacoffee.com/skrelectronics",
        "YouTube Channel": "https://www.youtube.com/@skr_electronics_lab"
    },
    "split_keywords": [
        "esp8266",
        " gpio",
        " iot",
        " wireless",
        " arduino",
        " microcontroller",
        " automation",
        " robotics",
        " electronics",
        " maker",
        " diy",
        " wifi",
        " remote-control",
        " pyfirmata",
        " esp-linker",
        " nodemcu",
        " wemos",
        " embedded",
        " hardware",
        " sensor",
        " actuator",
        " smart-home",
        " internet-of-things",
        " esp32",
        " micropython",
        " circuitpython",
        " raspberry-pi",
        " home-automation",
        " industrial-iot",
        " edge-computing",
        " wireless-communication",
        " web-dashboard",
        " cli-tools",
        " firmware",
        " skr-electronics-lab",
        " professional",
        " production-ready",
        " cross-platform"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "0460ddf8c26d565163b73c8a56a444441a514625f7d7592a52838f7cfd4d0c32",
                "md5": "6f58211dfd4bb874c0d15bcee2d2ce0b",
                "sha256": "d72acc5a6b6dd8237e8e5b4ce6b69379985ff04326cf8b4d7099f92581d7270d"
            },
            "downloads": -1,
            "filename": "esp_linker-1.2.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "6f58211dfd4bb874c0d15bcee2d2ce0b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 315689,
            "upload_time": "2025-07-13T18:16:16",
            "upload_time_iso_8601": "2025-07-13T18:16:16.181791Z",
            "url": "https://files.pythonhosted.org/packages/04/60/ddf8c26d565163b73c8a56a444441a514625f7d7592a52838f7cfd4d0c32/esp_linker-1.2.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b229e5cc564ebcfbad80edcff591618cdd52d988c9ecb3510262824d84ef1028",
                "md5": "b3d615b611ec751dcf2ad0d2e8bb407b",
                "sha256": "d18224273325a9bfbc9e6da73945e252ad6a00afcb7306b26dcde152d4a2a676"
            },
            "downloads": -1,
            "filename": "esp_linker-1.2.1.tar.gz",
            "has_sig": false,
            "md5_digest": "b3d615b611ec751dcf2ad0d2e8bb407b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 326150,
            "upload_time": "2025-07-13T18:16:18",
            "upload_time_iso_8601": "2025-07-13T18:16:18.859557Z",
            "url": "https://files.pythonhosted.org/packages/b2/29/e5cc564ebcfbad80edcff591618cdd52d988c9ecb3510262824d84ef1028/esp_linker-1.2.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-13 18:16:18",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "skr-electronics-lab",
    "github_project": "esp-linker",
    "github_not_found": true,
    "lcname": "esp-linker"
}
        
Elapsed time: 0.59067s