Это старая версия документа!


Эксперимент 57. Wi-Fi термометр

В прошлых экспериментах мы научились создавать веб- сервер на Python и получать данные от пользователя. Мы управляли цветом светодиода. Теперь наоборот, мы создадим веб сервер, который сообщает нам полезную информацию. Пусть это будут данные о температуре. Создадим прострой термометр, к которому мы сможем обратиться с помощью браузера.

Схема эксперимента

Рисунок 1. Электрическая принципиальная схема эксперимента

Рисунок 2. Монтажная схема эксперимента

Программный код эксперимента

Exp39.py
  1. import time
  2. from machine import I2C, Pin
  3. import onewire
  4. import ds18x20
  5. from micropyserver import MicroPyServer
  6. import network
  7. import gc
  8. _init()
  9. gc.collect()
  10.  
  11. # the device is on GPIO12
  12. ow = onewire.OneWire(Pin(12))
  13.  
  14. # create the onewire object
  15. ds = ds18x20.DS18X20(ow)
  16.  
  17. wlan_id = "realme 6s"
  18. wlan_pass = "33947255"
  19.  
  20. wlan = network.WLAN(network.STA_IF)
  21. wlan.active(True)
  22. wlan.connect(wlan_id, wlan_pass)
  23. time.sleep(1)
  24.  
  25. while wlan.isconnected() == False:
  26. pass
  27.  
  28. print('Device IP:', wlan.ifconfig()[0])
  29.  
  30. def show_message(request, params):
  31. ''' request handler '''
  32. roms = ds.scan()
  33. ds.convert_temp()
  34. time.sleep_ms(750)
  35.  
  36. for rom in roms:
  37. temp = str(ds.read_temp(rom))
  38. server.send(temp)
  39.  
  40. server = MicroPyServer()
  41. ''' add request handler '''
  42. server.add_route("/", show_message)
  43. ''' start server '''
  44. server.start()