import machine
import network
import socket
import onewire
import ds18x20
import time
import urequests
# Konfiguracja pinów
sensor_pin = machine.Pin(4)
relay = machine.Pin(2, machine.Pin.OUT)
led_red = machine.Pin(5, machine.Pin.OUT)
led_green = machine.Pin(18, machine.Pin.OUT)
led_yellow = machine.Pin(19, machine.Pin.OUT)
ds_sensor = ds18x20.DS18X20(onewire.OneWire(sensor_pin))
roms = ds_sensor.scan()
# Ustawienia sieci WiFi
ssid = "Wokwi-GUEST"
password = ""
station = network.WLAN(network.STA_IF)
station.active(True)
station.connect(ssid, password)
while not station.isconnected():
pass
print("Połączono z WiFi")
# Funkcje sterowania grzejnikiem i LED
def get_temperature():
ds_sensor.convert_temp()
time.sleep_ms(500)
return ds_sensor.read_temp(roms[0])
def heater_on():
relay.value(1)
led_red.value(1)
def heater_off():
relay.value(0)
led_red.value(0)
def set_leds(manual, schedule, auto):
led_red.value(manual)
led_green.value(schedule)
led_yellow.value(auto)
# Serwer HTTP do sterowania przez WiFi
print("Adres IP ESP32: ", station.ifconfig()[0])
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('10.10.0.2', 80))
s.listen(5)
def handle_request(conn):
request = conn.recv(1024)
request = str(request)
if '/manual_on' in request:
heater_on()
set_leds(1, 0, 0)
elif '/manual_off' in request:
heater_off()
set_leds(0, 0, 0)
elif '/schedule' in request:
set_leds(0, 1, 0)
elif '/auto' in request:
set_leds(0, 0, 1)
response = "HTTP/1.1 200 OK\nContent-Type: text/html\n\nOK"
conn.send(response)
conn.close()
while True:
conn, addr = s.accept()
print("Oczekiwanie na wybor programu")
handle_request(conn)
time.sleep(1)
~ 230V
5V
GND
LED ON
LED GREEN
LED YELLOW
LED RED
R1=R2=R3=R4=330