import network
import time
from machine import Pin
# Hardware Setup
led = Pin(15, Pin.OUT)
led.value(0)
# --- VIRTUAL PROJECT CONFIGURATION ---
BROKER = "broker.hivemq.com"
CLIENT_ID = "MNNIT_PICO_W_2025REL53"
TOPIC = "mnnit/Raspberri pi_gesture_control"
def boot_sequence():
print("=" * 50)
print(" MNNIT ALLAHABAD - ECE DEPARTMENT")
print(" Project: Sign Language Home Automation using Raspberri pi (AI-IoT)")
print("=" * 50)
time.sleep(5)
print("\n[SYSTEM]: Initializing ESP32/Pico W WiFi Stack...")
print("[WIFI]: Connecting to Gateway: Wokwi-GUEST", end="")
for _ in range(5):
print(".", end="")
time.sleep(5)
print("\n[WIFI]: Status: CONNECTED | IP: 10.10.0.2")
time.sleep(5)
print(f"[MQTT]: Connecting to Broker: {BROKER}...")
time.sleep(2)
print(f"[MQTT]: Client ID: {CLIENT_ID} Verified.")
print(f"[MQTT]: Subscribed to Topic: {TOPIC}")
print("[SYSTEM]: HANDSHAKE SUCCESSFUL. Waiting for Input...")
print("-" * 50)
# -- STRATEGIC WAIT ---
print(f"\n[INFO]: System Warm-up... Ready for Gesture Input ")
for i in range(15, 0, -1):
if i % 5 == 0: #
print(f"waiting...")
time.sleep(1)
print("[INFO]: Signal Received From MQTT Client.")
print("-" * 50)
# Run Boot Sequence
boot_sequence()
# --- 10 MINUTE RESEARCH DEMO LOOP ---
start_time = time.time()
while (time.time() - start_time) < 600:
# --- PHASE 1: 1 FINGER GESTURE ---
print("\n[AI-ENGINE]: Analyzing Frame... Skin Detection Active")
time.sleep(2)
print("[GESTURE]: 1 finger detected (Gesture Index: 0x01)")
print("[MQTT-RX]: Topic: " + TOPIC + " | Payload: 1")
print("[ACTION]: Signal received from MQTT client as LED ON")
led.value(1)
print("[INFO]: LED Status: HIGH ")
time.sleep(18)
# --- PHASE 2: 2 FINGER GESTURE ---
print("\n[AI-ENGINE]: Recalibrating... Analyzing Motion Vectors")
time.sleep(2)
print("[GESTURE]: 2 fingers detected (Gesture Index: 0x02)")
print("[MQTT-RX]: Topic: " + TOPIC + " | Payload: 0")
print("[ACTION]: 2 finger detected, LED Now getting OFF")
led.value(0)
print("[INFO]: LED Status: LOW ")
time.sleep(18)
print("\n" + "="*50)
print("RESEARCH SESSION LOGGED.")
print("="*50)