Показаны различия между двумя версиями страницы.
Следующая версия | Предыдущая версия | ||
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 = ' | ||
+ | </ | ||