Всем привет! сегодня решил поработать с ESP и инетом. Но как надо отредактировать кода, так чтобы в dweet.io можно было выводить 2 значения? Код (Text): #include <TroykaMeteoSensor.h> #include "ESP8266.h" #include <SoftwareSerial.h> #include <math.h> #define SSID "имя_твоего_wifi" #define PASSWORD "пароль" TroykaMeteoSensor meteoSensor; SoftwareSerial mySerial(4, 5); ESP8266 wifi(mySerial); String name = "Danuel_2507"; void setup(void) { Serial.begin(9600); meteoSensor.begin(); if (wifi.joinAP(SSID, PASSWORD)) { Serial.println("https://dweet.io/follow/" + name); } else { Serial.println("Wi-Fi connection error"); } } void loop(void) { if (wifi.createTCP("www.dweet.io", 80)) { String data = "GET /dweet/for/" + name + "?"; String data_2 = "GET /dweet/for/" + name + "?"; int stateSensor = meteoSensor.read(); // проверяем состояние данных switch (stateSensor) { case SHT_OK: data += "temp=" + String(meteoSensor.getTemperatureC()) + " HTTP/1.1\r\n"; data += "Host: dweet.io\r\n\r\n"; wifi.send(data.c_str(), data.length()); data_2 += "humidity=" + String(meteoSensor.getHumidity()) + " HTTP/2.2\r\n"; data_2 += "Host: dweet.io\r\n\r\n"; wifi.send(data_2.c_str(), data_2.length()); wifi.releaseTCP(); break; case SHT_ERROR_DATA: Serial.println("Data error or sensor not connected"); break; // ошибка контрольной суммы case SHT_ERROR_CHECKSUM: Serial.println("Checksum error"); break; } } else { Serial.println("create TCP error"); } delay(1000); } P.S. если 2 значения можно выводить, то можно ли 3 значения?
Я не совсем понял как его изменить, чтобы он нормально работал, можете часть кода скинуть, который выводит в dweet два значения
А как пробовали изменить и что не получилось? Ошибку пишет, или еще что? Присылайте ваш вариант, посмотрим что не так.
есть такой варик Код (Text): #include <TroykaMeteoSensor.h> #include "ESP8266.h" #include <SoftwareSerial.h> #include <math.h> #define SSID "ваш_инет" #define PASSWORD "пароль" TroykaMeteoSensor meteoSensor; SoftwareSerial mySerial(4, 5); ESP8266 wifi(mySerial); String name = "ключ"; void setup(void) { Serial.begin(9600); meteoSensor.begin(); if (wifi.joinAP(SSID, PASSWORD)) { Serial.println("https://dweet.io/follow/" + name); } else { Serial.println("Wi-Fi connection error"); } } void loop(void) { int count = 0; if (wifi.createTCP("www.dweet.io", 80)) { String data = "GET /dweet/for/" + name + "?"; String data_2 = "GET /dweet/for/" + name + "?"; int stateSensor = meteoSensor.read(); // проверяем состояние данных switch (stateSensor) { case SHT_OK: while (count == 3) { count++; if (count == 1) { data += "temp=" + String(meteoSensor.getTemperatureC()) + " HTTP/1.1\r\n"; data += "Host: dweet.io\r\n\r\n"; wifi.send(data.c_str(), data.length()); wifi.releaseTCP(); delay(1000); }; if (count == 2) { data_2 += "humidity=" + String(meteoSensor.getHumidity()) + " HTTP/2.2\r\n"; data_2 += "Host: dweet.io\r\n\r\n"; wifi.send(data_2.c_str(), data_2.length()); wifi.releaseTCP(); delay(1000); }; }; break; break; case SHT_ERROR_DATA: Serial.println("Data error or sensor not connected"); break; // ошибка контрольной суммы case SHT_ERROR_CHECKSUM: Serial.println("Checksum error"); break; } } else { Serial.println("create TCP error"); } delay(1000); } Но чёт датчик перестал норм работать, позже попробую на мк и других ардуинок
@даниил2000, каким образом Вы написали этот код? Вы понимаете, что он делает? Он никогда не будет ничего отправлять, потому что 'count' будет всегда равна нулю. Достаточно было просто добавить: Код (C++): data_2 += "&myAwesomeVal=" + String(meteoSensor.getHumidity()) + " HTTP/2.2\r\n"; после: Код (C++): data_2 += "humidity=" + String(meteoSensor.getHumidity()) + " HTTP/2.2\r\n";
@даниил2000, попробуйте так http://dweet.io/#HowTo Код (C++): data += "temp=" + String(meteoSensor.getTemperatureC()) + "&humidity=" + String(meteoSensor.getHumidity()) + " HTTP/1.1\r\n"; Интересно, а для третьего параметра написали бы - String(meteoSensor.getPressure ()) + " HTTP/3.3\r\n" ?