Показаны различия между двумя версиями страницы.
Следующая версия | Предыдущая версия | ||
products:laboratory_iot_c:exp67 [2024/12/05 17:43] – создано labuser30 | products:laboratory_iot_c:exp67 [2024/12/16 15:00] (текущий) – [Программный код эксперимента] labuser30 | ||
---|---|---|---|
Строка 9: | Строка 9: | ||
Для начала нам нужно просто научиться соединяться с интернет-сервисом и передавать туда хоть какие-то данные. Поэтому пока не будем собирать термометр, | Для начала нам нужно просто научиться соединяться с интернет-сервисом и передавать туда хоть какие-то данные. Поэтому пока не будем собирать термометр, | ||
- | < | + | ==== Программный код эксперимента ==== |
- | from machine import Pin | + | < |
- | import network | + | #include < |
- | import gc | + | #include < |
- | import time | + | #include < |
- | import socket | + | |
- | _init() | + | #define WIFI_NAME |
- | gc.collect() | + | #define WIFI_PASSWORD " |
+ | void httpGet(String url) { | ||
+ | WiFiClient client; | ||
+ | HTTPClient http; | ||
- | wlan_id | + | if (http.begin(client, |
- | wlan_pass | + | Serial.print(" |
+ | int httpCode | ||
+ | if (httpCode > 0) { | ||
+ | Serial.printf("[HTTP] GET code: %d\n", httpCode); | ||
+ | if (httpCode == HTTP_CODE_OK) { | ||
+ | String payload = http.getString(); | ||
+ | Serial.println(payload); | ||
+ | } else { | ||
+ | Serial.printf(" | ||
+ | } | ||
+ | http.end(); | ||
+ | } else { | ||
+ | Serial.println(" | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | void setup() { | ||
+ | Serial.begin(9600); | ||
+ | Serial.println(); | ||
+ | |||
+ | Serial.print(" | ||
+ | | ||
+ | WiFi.begin(WIFI_NAME, | ||
+ | while (WiFi.status() != WL_CONNECTED) { | ||
+ | Serial.print("."); | ||
+ | delay(500); | ||
+ | } | ||
+ | Serial.println(); | ||
+ | Serial.println(" | ||
+ | Serial.print(" | ||
+ | Serial.println(WiFi.localIP()); | ||
+ | String device_name = " | ||
+ | float temp = 22.9; | ||
- | wlan = network.WLAN(network.STA_IF) | + | httpGet(" |
- | wlan.active(True) | + | } |
- | wlan.connect(wlan_id, | + | |
- | time.sleep(1) | + | |
- | + | void loop() { | |
- | while wlan.isconnected() == False: | + | } |
- | | + | |
- | + | ||
- | print(' | + | |
- | + | ||
- | + | ||
- | + | ||
- | 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 | + | |
- | + | ||
- | + | ||
- | deviceName = ' | + | |
- | temp = 22.9 | + | |
- | + | ||
- | data = http_get(' | + | |
</ | </ | ||
- | Первым делом нам необходимо подключиться к WiFi сети с доступом в интернет. После этого мы готовы к отправке данных. Для этого нам потребуется библиотека для работы | + | Первым делом нам необходимо подключиться к WiFi сети с доступом в интернет. После этого мы готовы к отправке данных. Для этого нам потребуется библиотеки для работы |
- | + | ||
- | <WRAP center round info 60%> | + | |
- | [[https:// | + | |
- | </ | + | |
- | Чтобы передать данные на сервер нам нужно знать его адрес | + | Чтобы передать данные на сервер нам нужно знать его адрес. В нашем случае адрес http:// |
- | Вместо DEVICENAME нужно подставить свое имя устройства. Имя может быть любым, но желательно придумать уникальное. Такое, которое точно еще не использовано. Мы придумали PinLabIoTSensor010520. Вам необходимо придумать свое, например IvanovIvanSPBSensor123. | + | |
После знака ''?'' | После знака ''?'' | ||
Запишем имя нашего устройства и значение температуры в переменные для удобства дальнейшего их использования: | Запишем имя нашего устройства и значение температуры в переменные для удобства дальнейшего их использования: | ||
- | <code python[enable_line_numbers=" | + | <code python[enable_line_numbers=" |
- | deviceName | + | |
- | temp = 22.9 | + | |
</ | </ | ||
Теперь формируем адрес в интернете (URL), по которому мы будем обращаться с параметрами, | Теперь формируем адрес в интернете (URL), по которому мы будем обращаться с параметрами, | ||
- | < | + | < |
- | data = http_get('http:// | + | |
</ | </ | ||
- | Функция '' | + | Функция '' |
Код функции '' | Код функции '' |