import network
from time import sleep
import usocket as socket
from machine import Pin, SoftI2C,PWM
import gc
import ssd1306
import dht
gc.collect()
sensor = dht.DHT22(Pin(27))
i2c = SoftI2C(scl=Pin(22), sda=Pin(21))
oled = ssd1306.SSD1306_I2C( 128, 64, i2c)
def obter_arquivo(arquivo):
conteudo = ''
a = open(arquivo,'rb')
conteudo = a.read()
return conteudo
estacao = network.WLAN(network.STA_IF)
estacao.active(True)
estacao.connect("Wokwi-GUEST","")
while estacao.isconnected() == False:
pass
oled.fill(0)
oled.text(str(estacao.ifconfig()[0]),2,5,1)
oled.rect(0,0,128,64,1)
oled.rect(0,1,128,15,1)
oled.show()
print('Conexao realizada')
print(estacao.ifconfig()[0])
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind(('',80))
s.listen(5)
try:
while True:
sensor.measure()
temp = sensor.temperature()
hum = sensor.humidity()
conexao, endereco = s.accept()
#print('Conexao de %s' % str(endereco))
requisicao = conexao.recv(1024)
requisicao = str(requisicao)
#print('Conteudo = %s' % requisicao)
#hum = sensor.humidity()
#print(temp)
if requisicao.find('obter/temperatura') != -1:
html = str(temp)
elif requisicao.find('obter/umidade') != -1:
html = str(hum)
elif requisicao.find('/') != -1:
html = obter_arquivo('dht22WebServer.txt')
oled.fill(0)
oled.text(str(estacao.ifconfig()[0]),2,5,1)
oled.text("Temperatura(C):",2,20,1)
oled.text(str(temp),2,30,1)
oled.text("Umidade(%):",2,40,1)
oled.text(str(hum),2,50,1)
oled.rect(0,0,128,64,1)
oled.rect(0,1,128,15,1)
oled.show()
conexao.send('HTTP/1.1 200 OK\n')
conexao.send('Content-Type: text/html\n')
conexao.send('Connection: close\n\n')
conexao.sendall(html)
conexao.close()
except KeyboardInterrupt:
s.close()
estacao.active(False)