Это старая версия документа!
Устройства интернета- вещей не только отправляют данные в интернет, но и получают их оттуда. В интернете есть ресурсы, предназначенные для получения информации человеком- обычныйе сайты. Но кроме того, есть интернет- ресурсы для получения данных другими программами — веб-сервисы. Их главное отличие от обычного сайта в том, что они предоставляют данные в удобном для программ виде, без излишеств. Без визуального оформления, только чистые данные в определенном формате. Форматы предоставления данных могут быть разными.
Попробуем поработать с веб- сервисом. Для получения погодных данных хорошо подходит веб- сервис weatherbit.io. Основные данные о погоде данный сервис предоставляет бесплатно до 500 запросов в сутки, но необходимо пройти простую процедуру регистрации.
Регистрация происходит на странице https://www.weatherbit.io/account/create
Вводим в поле Username логин, например pinlab. В поле Password пароль, который нужно придумать. Например 123456789. В поле Re-Enter Password for Verification вводим тот же пароль еще раз. В поле E-mail вводим адрес электронной почты.
Устанавливаем галочку I accept the Terms and Conditions and the Privacy Policy, которой мы подтверждаем согласие с условиями предоставления сервиса. По желанию можно убрать галочку Send me updates via email, чтобы не получать писем от этого сервиса.
Ставим галочку Я не робот и нажимаем на кнопку Submit.
Если форма заполнена правильно, то увидим сообщение Thank you for registering! You may now login to your account, and access your API Key!, которое сообщает нам, что регистрация пройдена. На этой странице вводим логин и пароль чтобы авторизоваться в сервисе.
После авторизации в сервисе мы попадаем на страницу, где необходимо предоставить немного дополнительной информации. Заполнить ее можно согласно картинке ниже.
После заполнения формы нажимаем на кнопку Proceed to Dashboard. После этого открывается страница с ключом доступа
В нашем случае наш ключ доступа это 341182dee74d4049a0dc5470919e39fa, он будет другим. Этот ключ самое важное, то для чего мы проходили регистрацию. Этот ключ нужно будет использовать в каждом запросе к сервису.
Схема отсутствует.
from machine import Pin import network import gc import time import socket import json _init() gc.collect() wlan_id = "WiFi_name" wlan_pass = "WiFi_pass" wlan = network.WLAN(network.STA_IF) wlan.active(True) wlan.connect(wlan_id, wlan_pass) time.sleep(1) while wlan.isconnected() == False: pass print('Device IP:', wlan.ifconfig()[0]) def http_get(url, port=80): _, _, host, path = url.split('/', 3) addr = socket.getaddrinfo(host, port)[0][-1] s = socket.socket() s.connect(addr) s.send(bytes('GET /%s HTTP/1.0\r\nHost: %s\r\n\r\n' % (path, host), 'utf8')) text = '' while True: data = s.recv(100) if data: text += str(data, 'utf8') pass else: a = text.split('\r\n\r\n', 2)[1] return a break apiKey = 'YourApiKey' cityName = 'Moscow,RU' json_data = http_get('http://api.weatherbit.io/v2.0/current?city=' + cityName + '&key=' + apiKey) data = json.loads(json_data) print(data) print(data['data'][0]['temp'])
В коде необходимо заменить