-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.py
79 lines (64 loc) · 2.18 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import machine, esp32, network, json, ssd1306, utils, dht
from machine import Pin, SoftI2C
from micropyserver import MicroPyServer
from time import sleep
i2c = SoftI2C(scl=Pin(32), sda=Pin(33), freq=400000) # IO33=485_EN / IO32=CFG
sensor = dht.DHT22(machine.Pin(4))
display = ssd1306.SSD1306_I2C(128, 64, i2c)
# Visto no site do MicroPython - Wireless-Tag's WT32-ETH01 v1.4
lan = network.LAN(mdc=machine.Pin(23), mdio=machine.Pin(18),
phy_type=network.PHY_LAN8720, phy_addr=1,
power=machine.Pin(16))
if not lan.active():
lan.active(True)
while not lan.isconnected():
pass
sleep(3)
endip = lan.ifconfig()[0]
sensor.measure()
temperatura = sensor.temperature()
umidade = sensor.humidity()
json_str = json.dumps({"temperatura": temperatura, "umidade": umidade})
temp = "Temp.: " + str(temperatura)
umid = "Umidade: " + str(umidade)
display.fill(0)
display.text('End. IP:', 0, 0, 1)
display.text(endip, 0, 16, 1)
display.text(temp, 0, 32, 1)
display.text(umid, 0, 48, 1)
display.show()
def temp_umidade(request):
''' rota principal '''
sensor.measure()
temperatura = sensor.temperature()
umidade = sensor.humidity()
json_str = json.dumps({"temperatura": temperatura, "umidade": umidade})
temp = "Temp.: " + str(temperatura)
umid = "Umidade: " + str(umidade)
display.fill(0)
display.text('End. IP:', 0, 0, 1)
display.text(endip, 0, 16, 1)
display.text(temp, 0, 32, 1)
display.text(umid, 0, 48, 1)
display.show()
server.send("HTTP/1.0 200 OK\n")
server.send("Content-Type: application/json\n")
server.send("Connection: close\n\n")
server.send(json_str)
def mensagem_display(request):
''' rota display '''
# http://IP/mostra?mensagem=Teste
params = utils.get_request_query_params(request)
mensagem = params["mensagem"]
display.fill(0)
display.text('End. IP:', 0, 0, 1)
display.text(endip, 0, 16, 1)
display.text(mensagem, 0, 34, 1)
display.show()
server.send("Mensagem enviada para o display: " + mensagem)
server = MicroPyServer()
''' add routes '''
server.add_route("/", temp_umidade)
server.add_route("/mostra", mensagem_display)
''' start server '''
server.start()