Я пытался запрограммировать свой ESP32-S3 так, чтобы, когда он воссоединен, он начинает счет, откуда он остался. Я пытаюсь войти в систему данных в листе Google, и это счетчик, где количество увеличивает счет на 1. Для этого я использовал Google App-Script и регистрировал данные в электронном таблице Google. Я делюсь тем, что я попробовал в коде Arduino и коде приложения.#include
#include
const char* ssid = "";
const char* password = "";
// Web App URL (for GET and POST)
const char* baseURL = "";
int count = 0;
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
Serial.print("Connecting to WiFi...");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nConnected to WiFi");
// Fetch last count from Google Sheets
HTTPClient http;
String getURL = String(baseURL) + "?getCount=true";
http.begin(getURL);
int httpResponseCode = http.GET();
if (httpResponseCode > 0) {
String response = http.getString();
Serial.print("Last count from Google Sheets: ");
Serial.println(response);
count = response.toInt(); // Update count to last known value
} else {
Serial.print("GET Error code: ");
Serial.println(httpResponseCode);
}
http.end();
}
void loop() {
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
http.begin(baseURL);
http.addHeader("Content-Type", "application/json");
// JSON payload
String jsonPayload = "{\"count\":" + String(count) + "}";
int httpResponseCode = http.POST(jsonPayload);
if (httpResponseCode > 0) {
String response = http.getString();
Serial.print("POST Response code: ");
Serial.println(httpResponseCode);
Serial.print("Response: ");
Serial.println(response);
} else {
Serial.print("POST Error code: ");
Serial.println(httpResponseCode);
}
http.end();
count++;
delay(2000); // Send every 2 seconds
} else {
Serial.println("WiFi Disconnected. Reconnecting...");
WiFi.reconnect();
}
}
// код приложения-сценария
function doGet(e) {
if (e && e.parameter && e.parameter.getCount === "true") {
const sheet = SpreadsheetApp.openById("").getSheetByName("Sheet1");
const lastCount = sheet.getRange("B38").getValue();
return ContentService.createTextOutput(String(lastCount)).setMimeType(ContentService.MimeType.TEXT);
}
return ContentService.createTextOutput("Invalid Request").setMimeType(ContentService.MimeType.TEXT);
}
function doPost(e) {
try {
const data = JSON.parse(e.postData.contents);
const sheet = SpreadsheetApp.openById("").getSheetByName("Sheet1");
sheet.getRange("B38").setValue(data.count);
return ContentService.createTextOutput("Success").setMimeType(ContentService.MimeType.TEXT);
} catch (error) {
Logger.log("Error: " + error.message);
return ContentService.createTextOutput("Error: " + error.message).setMimeType(ContentService.MimeType.TEXT);
}
}
Подробнее здесь: https://stackoverflow.com/questions/795 ... om-0-again
ESP32-S3 сбрасывает счет и снова начинается с 0 ⇐ C++
Программы на C++. Форум разработчиков
-
Anonymous
1745050511
Anonymous
Я пытался запрограммировать свой ESP32-S3 так, чтобы, когда он воссоединен, он начинает счет, откуда он остался. Я пытаюсь войти в систему данных в листе Google, и это счетчик, где количество увеличивает счет на 1. Для этого я использовал Google App-Script и регистрировал данные в электронном таблице Google. Я делюсь тем, что я попробовал в коде Arduino и коде приложения.#include
#include
const char* ssid = "";
const char* password = "";
// Web App URL (for GET and POST)
const char* baseURL = "";
int count = 0;
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
Serial.print("Connecting to WiFi...");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nConnected to WiFi");
// Fetch last count from Google Sheets
HTTPClient http;
String getURL = String(baseURL) + "?getCount=true";
http.begin(getURL);
int httpResponseCode = http.GET();
if (httpResponseCode > 0) {
String response = http.getString();
Serial.print("Last count from Google Sheets: ");
Serial.println(response);
count = response.toInt(); // Update count to last known value
} else {
Serial.print("GET Error code: ");
Serial.println(httpResponseCode);
}
http.end();
}
void loop() {
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
http.begin(baseURL);
http.addHeader("Content-Type", "application/json");
// JSON payload
String jsonPayload = "{\"count\":" + String(count) + "}";
int httpResponseCode = http.POST(jsonPayload);
if (httpResponseCode > 0) {
String response = http.getString();
Serial.print("POST Response code: ");
Serial.println(httpResponseCode);
Serial.print("Response: ");
Serial.println(response);
} else {
Serial.print("POST Error code: ");
Serial.println(httpResponseCode);
}
http.end();
count++;
delay(2000); // Send every 2 seconds
} else {
Serial.println("WiFi Disconnected. Reconnecting...");
WiFi.reconnect();
}
}
// код приложения-сценария
function doGet(e) {
if (e && e.parameter && e.parameter.getCount === "true") {
const sheet = SpreadsheetApp.openById("").getSheetByName("Sheet1");
const lastCount = sheet.getRange("B38").getValue();
return ContentService.createTextOutput(String(lastCount)).setMimeType(ContentService.MimeType.TEXT);
}
return ContentService.createTextOutput("Invalid Request").setMimeType(ContentService.MimeType.TEXT);
}
function doPost(e) {
try {
const data = JSON.parse(e.postData.contents);
const sheet = SpreadsheetApp.openById("").getSheetByName("Sheet1");
sheet.getRange("B38").setValue(data.count);
return ContentService.createTextOutput("Success").setMimeType(ContentService.MimeType.TEXT);
} catch (error) {
Logger.log("Error: " + error.message);
return ContentService.createTextOutput("Error: " + error.message).setMimeType(ContentService.MimeType.TEXT);
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79581987/the-esp32-s3-resets-the-count-and-starts-from-0-again[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия