import machine
import os
import time
import network
# from umqtt.simple import MQTTClient # Temporarily comment out the MQTT module
# Initialize the SD card (Wokwi default pins: SCK=18, MISO=19, MOSI=23, CS=5)
sd = machine.SDCard(slot=2)
os.mount(sd, "/sd")
print("✅ SD card mounted successfully")
# Initialize WiFi (Wokwi virtual network)
wifi = network.WLAN(network.STA_IF)
wifi.active(True)
wifi.connect('Wokwi-GUEST', '') # Wokwi's default hotspot
while not wifi.isconnected():
time.sleep(0.5)
print("✅ WiFi connected successfully:", wifi.ifconfig())
# ========== MQTT section is commented out ==========
# client_id = "esp32_sim"
# mqtt_server = "mqtt3.thingspeak.com"
# username = "Your MQTT username"
# password = "Your MQTT password"
# topic = "channels/YourChannelID/publish/YourWriteAPIKey"
# client = MQTTClient(client_id, mqtt_server, user=username, password=password)
# client.connect()
# print("✅ MQTT connected successfully")
# ====================================
# Open the CSV file
csv_path = "/sd/IoTSensorStream.csv"
with open(csv_path, "r") as f:
f.readline() # Skip the header line
while True:
line = f.readline()
if not line.strip(): # Handle empty lines
continue
data = line.strip().split(",")
if len(data) < 5:
print("⚠️ Data line format error, skipping:", line)
continue
# Extract data from columns 2 to 5 (volt ~ vibration)
volt = data[1]
rotate = data[2]
pressure = data[3]
vibration = data[4]
print(f"📄 Data read: volt={volt}, rotate={rotate}, pressure={pressure}, vibration={vibration}")
time.sleep(10)