shinji2009
Member
привет. помогите пожалуйста. почему скетч отправляет 2 смс? использую программный и аппаратный (резистор+конденсатор) антизвон из этой статьи https://arduinomaster.ru/datchiki-arduino/ustranenie-drebezg-kontaktov-knopki/#i-5 и всё равно esp отправляет 2 смс. с промежутком 20с. алгоритм отправки смс взят отсюда https://esp8266.ru/forum/threads/otpravka-sms-s-servisa-sms-ru.3869/page-2 платка esp-01
Код:
#include <Bounce2.h>;
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <WiFiClientSecureBearSSL.h>
#define PIN_BUTTON 2
// Создаем объект
Bounce debouncer = Bounce();
void setup() {
Serial.begin(115200);
Serial.println(F("\n\r* * * ESP BOOT * * *"));
Serial.println(F("WiFi begin!"));
WiFi.mode(WIFI_STA);
WiFi.begin("", "");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println(F("\n\rWiFi connected!"));
// Устаовили тип пина
pinMode(PIN_BUTTON, INPUT_PULLUP);
// Даем бибилотеке знать, к какому пину мы подключили кнопку
debouncer.attach(PIN_BUTTON);
debouncer.interval(5); // Интервал, в течение которого мы не буем получать значения с пина
//Setup the LED :
//pinMode(PIN_LED, OUTPUT);
}
void loop() {
// Даем объекту бибилотеки знать, что надо обновить состояние - мы вошли в новый цкил loop
debouncer.update();
// Получаем значение кнопки
int value = debouncer.read();
// Теперь мы точно знаем, в каком состоянии находится наша кнопка
if ( value == LOW ) {
sendsms();
}
else {
delay(200);
}
}
void getpr24h() {
std::unique_ptr<BearSSL::WiFiClientSecure>client(new BearSSL::WiFiClientSecure);
client->setInsecure();
HTTPClient https;
if (https.begin(*client, "https://sms.ru/sms/send?api_id=1111&to=7111&msg=111&json=1")) { // HTTPS
Serial.println("[HTTPS] GET...");
int httpCode = https.GET();
// httpCode will be negative on error
if (httpCode > 0) {
// HTTP header has been send and Server response header has been handled
Serial.printf("[HTTPS] GET... code: %d\n", httpCode);
// file found at server?
if (httpCode == HTTP_CODE_OK) {
String payload = https.getString();
Serial.println(payload);
}
} else {
Serial.printf("[HTTPS] GET... failed, error: %s\n\r", https.errorToString(httpCode).c_str());
}
https.end();
} else {
Serial.printf("[HTTPS] Unable to connect\n\r");
}
}
void sendsms() {
getpr24h();
Serial.println("Wait 20s before next round to not get banned on API server...");
delay(20000);
}