2017年1月27日 星期五

ESP8266 温湿度计 WIFI

ESP8266 温湿度计 WIFI

http://www.micropython.org.cn/forum.php?mod=viewthread&tid=464&page=2#lastpost


将ESP8266模块作为 Simple HTTP server,手机浏览器当做 客户端,获取温度数据。
有个问题要注意:ESP8266的IP要在路由器中分配一个固定的地址。

源码如下:(第一次写micropython代码,很乱)
  1. html = """<!DOCTYPE html>
  2. <html>
  3.         <head> <title>indoor temperature</title> </head>
  4.         <body> <h1>indoor temperature</h1>
  5.                 <table border="1"> <tr><th>content</th><th>Value</th></tr> %s </table>
  6.     </body>
  7. </html>
  8. """
  9. import machine, time
  10. led = machine.Pin(16, machine.Pin.OUT)

  11. time.sleep(5)

  12. import socket
  13. addr = socket.getaddrinfo('192.168.0.137', 80)[0][-1]

  14. import dht
  15. d0 = dht.DHT11(machine.Pin(5))


  16. s = socket.socket()
  17. s.bind(addr)
  18. s.listen(1)



  19. print('listening on', addr)

  20. from machine import Timer

  21. tim = Timer(-1)
  22. tim.init(period=60000, mode=Timer.PERIODIC, callback=lambda t:d0.measure())


  23. while True:
  24.         cl, addr = s.accept()
  25.         print('client connected from', addr)
  26.         led.low()
  27.         rows = ['<tr><td>%s</td><td>%d</td></tr>' % ('temp', d0.temperature()), '<tr><td>%s</td><td>%d</td></tr>' % ('humi', d0.humidity())]
  28.         response = html % '\n'.join(rows)
  29.         cl.send(response)
  30.         cl.close()
  31.         led.high()

沒有留言:

張貼留言

WOKWI DHT22 & LED , Node-Red + SQLite database

 WOKWI DHT22 & LED , Node-Red + SQLite database Node-Red程式 [{"id":"6f0240353e534bbd","type":"comment&...