Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
products:laboratory_iot:exp69 [2020/06/15 15:56] – labuser29 | products:laboratory_iot:exp69 [2024/12/16 15:23] (текущий) – labuser30 | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ===== Эксперимент 69. Получение данных с интернет- сервиса ===== | + | ===== Эксперимент 69. Получение данных с интернет-сервиса ===== |
- | Устройства интернета- вещей не только отправляют данные в интернет, | + | Устройства интернета-вещей не только отправляют данные в интернет, |
- | Попробуем поработать с веб- сервисом. Для получения погодных данных хорошо подходит веб- сервис weatherbit.io. Основные данные о погоде данный сервис предоставляет бесплатно до 500 запросов в сутки, но необходимо пройти простую процедуру регистрации. | + | Попробуем поработать с веб-сервисом. Для получения погодных данных хорошо подходит веб-сервис weatherbit.io. Основные данные о погоде данный сервис предоставляет бесплатно до 500 запросов в сутки, но необходимо пройти простую процедуру регистрации. |
Регистрация происходит на странице [[https:// | Регистрация происходит на странице [[https:// | ||
Строка 13: | Строка 13: | ||
Ставим галочку **Я не робот** и нажимаем на кнопку **Submit**. | Ставим галочку **Я не робот** и нажимаем на кнопку **Submit**. | ||
+ | |||
+ | Если выводится сообщение **Signup blocked due to suspected spam. If you are a human, please use another VPN / IP address.** нужно попробовать включить VPN. | ||
Если форма заполнена правильно, | Если форма заполнена правильно, | ||
Строка 48: | Строка 50: | ||
- | wlan_id = "HUAWEI P10 lite" | + | wlan_id = "WiFi_name" |
- | wlan_pass = "33947255" | + | wlan_pass = "WiFi_pass" |
Строка 86: | Строка 88: | ||
- | apiKey = '9285838c5a854ff0ad222ddf479c45aa' | + | apiKey = 'YourApiKey' |
cityName = ' | cityName = ' | ||
Строка 94: | Строка 96: | ||
print(data[' | print(data[' | ||
</ | </ | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | В коде необходимо заменить | ||
+ | * WiFi_name нужно заменить на имя WifI сети | ||
+ | * WiFi_pass нужно заменить на пароль от нее | ||
+ | * YourApiKey нужно заменить на ключ доступа, | ||
+ | </ | ||
+ | |||
+ | Нужно заменить имя сети и пароль на свои | ||
+ | <code python[enable_line_numbers=" | ||
+ | wlan_id = " | ||
+ | wlan_pass = " | ||
+ | </ | ||
+ | |||
+ | Создаем объект сетевого интерфейса, | ||
+ | <code python[enable_line_numbers=" | ||
+ | wlan = network.WLAN(network.STA_IF) | ||
+ | wlan.active(True) | ||
+ | wlan.connect(wlan_id, | ||
+ | time.sleep(1) | ||
+ | </ | ||
+ | |||
+ | Проверяем установилось ли соединение с беспроводной сетью до тех пор, пока оно не будет установлено | ||
+ | <code python[enable_line_numbers=" | ||
+ | while wlan.isconnected() == False: | ||
+ | pass | ||
+ | </ | ||
+ | |||
+ | Выводим IP адрес, который получил наш микроконтроллер при подключении к Wi-Fi сети | ||
+ | <code python[enable_line_numbers=" | ||
+ | print(' | ||
+ | </ | ||
+ | |||
+ | Функция http_get предназначена для формирования запроса к веб-серверу. В качестве параметров она принимает адрес веб страницы (url) и порт (по умолчанию 80, стандартный для веб-страниц). Функция возвращает данные, | ||
+ | |||
+ | Здесь необходимо ввести свой ключ доступа к сервису weatherbit.io, | ||
+ | <code python[enable_line_numbers=" | ||
+ | apiKey = ' | ||
+ | cityName = ' | ||
+ | </ | ||
+ | |||
+ | Отправляем запрос сервису на предоставления данный о текущей погоде | ||
+ | <code python[enable_line_numbers=" | ||
+ | json_data = http_get(' | ||
+ | </ | ||
+ | |||
+ | Запрос отправляется на сервер сервиса, | ||
+ | |||
+ | <WRAP center round info 60%> | ||
+ | [[https:// | ||
+ | </ | ||
+ | |||
+ | В переменной '' | ||
+ | <code python[enable_line_numbers=" | ||
+ | data = json.loads(json_data) | ||
+ | </ | ||
+ | |||
+ | Теперь в переменной '' | ||
+ | <code python[enable_line_numbers=" | ||
+ | print(data) | ||
+ | </ | ||
+ | |||
+ | В нашем случае выводится строка (в вашем случае данные будут другими так как запрос будет сделан в другое время и будет другая погода) | ||
+ | < | ||
+ | {' | ||
+ | </ | ||
+ | |||
+ | Это и есть данные, | ||
+ | <code python[enable_line_numbers=" | ||
+ | print(data[' | ||
+ | </ | ||
+ | |||
+ | В нашем случае выводится 23.9 | ||
+ | |||
+ | Таким образом мы только что запросили данные о текущей погоде в городе Москва у интернет-сервиса weatherbit.io | ||
+ | |||
+ | <WRAP center round info 60%> | ||
+ | Подробное описание данных, | ||
+ | </ | ||