Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
| products:laboratory_iot:exp71 [2020/06/15 17:49] – создано labuser29 | products:laboratory_iot:exp71 [2021/07/21 17:48] (текущий) – [Программный код эксперимента] labuser29 | ||
|---|---|---|---|
| Строка 5: | Строка 5: | ||
| ==== Схема эксперимента ==== | ==== Схема эксперимента ==== | ||
| Схема эксперимента не изменилась по сравнению с предыдущей | Схема эксперимента не изменилась по сравнению с предыдущей | ||
| + | |||
| {{ : | {{ : | ||
| - | // | + | // |
| + | |||
| + | {{ : | ||
| + | // | ||
| + | ==== Программный код эксперимента ==== | ||
| + | |||
| + | <file python Exp71.py[enable_line_numbers=" | ||
| + | from machine import Pin, SPI | ||
| + | from tft import TFT_GREEN | ||
| + | import font | ||
| + | import network | ||
| + | import gc | ||
| + | import time | ||
| + | import socket | ||
| + | import json | ||
| + | _init() | ||
| + | gc.collect() | ||
| + | |||
| + | wlan_id = " | ||
| + | wlan_pass = " | ||
| + | |||
| + | dc = Pin(4, Pin.OUT) | ||
| + | cs = Pin(2, Pin.OUT) | ||
| + | rst = Pin(5, Pin.OUT) | ||
| + | |||
| + | spi = SPI(1, baudrate=40000000, | ||
| + | tft = TFT_GREEN(128, | ||
| + | tft.initr(tft.BGR) # tft.initr(tft.RGB) #Если вместо синего цвета отображается красный, | ||
| + | |||
| + | |||
| + | FontColor = tft.rgbcolor(33, | ||
| + | FontColor2 = tft.rgbcolor(8, | ||
| + | |||
| + | wlan = network.WLAN(network.STA_IF) | ||
| + | wlan.active(True) | ||
| + | wlan.connect(wlan_id, | ||
| + | |||
| + | tft.clear(tft.rgbcolor(255, | ||
| + | |||
| + | |||
| + | while wlan.isconnected() == False: | ||
| + | pass | ||
| + | |||
| + | print(' | ||
| + | |||
| + | apiKey = ' | ||
| + | cityName = ' | ||
| + | |||
| + | |||
| + | def http_get(url, | ||
| + | _, _, host, path = url.split('/', | ||
| + | addr = socket.getaddrinfo(host, | ||
| + | |||
| + | s = socket.socket() | ||
| + | s.connect(addr) | ||
| + | s.send(bytes(' | ||
| + | |||
| + | text = '' | ||
| + | |||
| + | while True: | ||
| + | data = s.recv(100) | ||
| + | if data: | ||
| + | text += str(data, ' | ||
| + | pass | ||
| + | else: | ||
| + | a = text.split(' | ||
| + | return a | ||
| + | break | ||
| + | |||
| + | |||
| + | json_data = http_get(' | ||
| + | |||
| + | if not json_data: | ||
| + | raise SystemExit | ||
| + | |||
| + | data = json.loads(json_data) | ||
| + | |||
| + | wCity = data[' | ||
| + | wTemp = round(data[' | ||
| + | wTempFeels = data[' | ||
| + | wHumidity = data[' | ||
| + | wWind = data[' | ||
| + | |||
| + | pod = data[' | ||
| + | |||
| + | wCode = int(data[' | ||
| + | |||
| + | if wCode <= 233: | ||
| + | wPic = ' | ||
| + | elif (wCode >= 300 and wCode <= 520) or wCode == 522: | ||
| + | wPic = ' | ||
| + | elif wCode in (521, 600): | ||
| + | wPic = ' | ||
| + | elif wCode >= 601 and wCode <= 622: | ||
| + | wPic = ' | ||
| + | elif wCode >= 623 and wCode <= 751: | ||
| + | wPic = ' | ||
| + | elif wCode == 800: | ||
| + | wPic = ' | ||
| + | elif wCode in (801, 802): | ||
| + | wPic = ' | ||
| + | elif wCode == 803: | ||
| + | wPic = ' | ||
| + | elif wCode == 804: | ||
| + | wPic = ' | ||
| + | |||
| + | if (wTemp > 0): | ||
| + | wTempPic = ' | ||
| + | else: | ||
| + | wTempPic = ' | ||
| + | |||
| + | tft.text(1, | ||
| + | |||
| + | tft.draw_bmp(34, | ||
| + | tft.draw_bmp(5, | ||
| + | |||
| + | tft.text(30, | ||
| + | |||
| + | tft.text(5, | ||
| + | tft.text(5, | ||
| + | tft.text(5, | ||
| + | </ | ||
| + | |||
| + | Не забудь заменить в коде название сети Wi-Fi и ее пароль | ||
| + | <code python[enable_line_numbers=" | ||
| + | wlan_id = " | ||
| + | wlan_pass = " | ||
| + | </ | ||
| + | |||
| + | Не забудь заменить в коде ключ доступа к сервису weatherbit.io, | ||
| + | <code python[enable_line_numbers=" | ||
| + | apiKey = ' | ||
| + | </ | ||