#include <ESP32Servo.h>
#include <GyverOLED.h>
#include <WiFi.h>
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>
GyverOLED<SSD1306_128x64, OLED_NO_BUFFER> oled;
#include <Wire.h>
#define NTP_SERVER "pool.ntp.org"
#define UTC_OFFSET_DST 0
#define WIFI_SSID "Wokwi-GUEST"
#define WIFI_PASSWORD ""
#define BOT_TOKEN "6734483397:AAEaj-M8KTXZoNwXmVRDVxGo6YrPN66AXtc"
const unsigned long BOT_MTBS = 1000; // mean time between scan messages
WiFiClientSecure secured_client;
UniversalTelegramBot bot(BOT_TOKEN, secured_client);
unsigned long bot_lasttime; // last time messages' scan has been done
bool fu1 = LOW;
const int servoPin = 18;
#define rus1 34
#define rus2 35
#define ON1 14
#define OFF1 27
Servo servo;
int ru1, ru2, sch = 0;
String dfdp[] = {"nnn", "6233273659"};//nnn
String Kor1, Bun1, nn = "\n";
String phot1, poshl1 = "https://avatars.mds.yandex.net/i?id=d1987bd7cbcd7287df4487948fe1f7de03448eef-12422712-images-thumbs&n=13";
const uint8_t bitmapv_32x32[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xC0, 0xC0, 0xC0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x18, 0x3C, 0x1E, 0x0F, 0x0F, 0x87, 0xC3, 0xE3, 0xE1, 0xF1, 0xF1, 0x71, 0x78, 0x78, 0x38, 0x38, 0x78, 0x78, 0x71, 0x71, 0xF1, 0xE1, 0xE3, 0xC3, 0x87, 0x87, 0x0F, 0x1E, 0x3C, 0x3C, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x03, 0x01, 0x21, 0x70, 0x78, 0x3C, 0x3C, 0x1C, 0x1C, 0x1C, 0x1C, 0x3C, 0x3C, 0x78, 0x78, 0x70, 0x01, 0x03, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0F, 0x0F, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
const uint8_t bitmapGov_128x64[] PROGMEM = {
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x78, 0x00, 0x00, 0x80, 0xF8, 0xF8, 0xF8, 0xF1, 0xF1, 0xE3, 0xC3, 0xC7, 0x8F, 0x0F, 0x1F, 0x7F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x03, 0x00, 0x00, 0x7C, 0x7E, 0x7F, 0x7F, 0x3F, 0x3F, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFC, 0xF0, 0xE0, 0x83, 0x07, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x0F, 0x87, 0xC3, 0xF1, 0xF8, 0xF8, 0xFC, 0xFC, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x7F, 0x3F, 0x9F, 0xCF, 0xC7, 0xE0, 0xE0, 0xE1, 0xC7, 0xC7, 0xCF, 0x8F, 0x1F, 0x3F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x3F, 0x3F, 0x00, 0x00, 0x0F, 0x0F, 0xC7, 0xE7, 0xF3, 0x73, 0x3B, 0x3B, 0x73, 0xF3, 0xE7, 0xC7, 0x07, 0x27, 0xE7, 0xF3, 0xF3, 0xF3, 0xF9, 0xFC, 0xFC, 0x3E, 0x1E, 0xCF, 0xE7, 0xF3, 0x73, 0x33, 0x3B, 0x33, 0x73, 0xF3, 0xE7, 0x8F, 0x1E, 0x80, 0x80, 0x13, 0x1F, 0x3F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x03, 0x01, 0xF0, 0xFC, 0xFE, 0xFE, 0xFF, 0x80, 0x00, 0xFF, 0xFF, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0xFF, 0xFF, 0x00, 0x81, 0xFF, 0x7F, 0x7F, 0x7F, 0x3F, 0x01, 0x00, 0x7F, 0xFF, 0xE3, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFE, 0xF8, 0xF0, 0x01, 0x03, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x3F, 0x1F, 0x8F, 0x8F, 0xC0, 0xC0, 0xE0, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE6, 0xE0, 0xE1, 0xE7, 0xE7, 0x4E, 0x4E, 0x4E, 0x6E, 0x67, 0x63, 0x71, 0x78, 0x78, 0x7C, 0x7C, 0xFE, 0xFE, 0xFE, 0xFF, 0x7F, 0x7E, 0x7C, 0x71, 0x73, 0x67, 0x6E, 0x4E, 0x4E, 0x4E, 0xE7, 0xE7, 0xF3, 0xF8, 0xFC, 0xFF, 0xFF, 0xFF, 0x7F, 0x3F, 0x8F, 0xC3, 0xC0, 0xC0, 0x8E, 0x9F, 0x1F, 0x3F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x60, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xF8, 0xF3, 0xE7, 0xCF, 0xCE, 0x9E, 0x9E, 0x3E, 0x3E, 0x3E, 0x7E, 0x7E, 0x7E, 0x3E, 0x3E, 0x3E, 0x3E, 0x1E, 0x4E, 0x4E, 0x27, 0x23, 0x91, 0x9C, 0xCE, 0xCF, 0xC7, 0xE7, 0xF3, 0xF1, 0xF9, 0xFC, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xF8, 0x00, 0x01, 0xDF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xF0, 0xC0, 0xC7, 0x8F, 0x9F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x9F, 0x9F, 0x8F, 0x8F, 0x8F, 0x8F, 0xCF, 0x87, 0x87, 0x87, 0x87, 0x83, 0x93, 0x93, 0x93, 0x93, 0x19, 0x19, 0x19, 0x1C, 0x1C, 0x1E, 0x1E, 0x1E, 0x3E, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x9F, 0x9F, 0x8F, 0x8F, 0xC7, 0xC7, 0xE3, 0xE1, 0xF0, 0xF8, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
};
const uint8_t bitmapOk_32x32[] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xE0, 0xF0, 0xF0, 0xF0, 0xF0, 0xE0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF0, 0xF8, 0xFC, 0xFE, 0xFF, 0x7F, 0x3F, 0x1F, 0x0E, 0x00,
0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x1F, 0x3F, 0x7F, 0xFF, 0xFE, 0xF8, 0xFC, 0xFC, 0xFE, 0x7F, 0x3F, 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
const uint8_t bitmapNo_32x32[] PROGMEM = {
0x00, 0x00, 0x00, 0x60, 0xF0, 0xF8, 0xF8, 0xF0, 0xE0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xF8, 0xF0, 0x60, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFE, 0xFC, 0xF8, 0xF0, 0xF0, 0xF0, 0xF8, 0xFC, 0xFE, 0x7F, 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, 0xFE, 0x7F, 0x3F, 0x1F, 0x0F, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF, 0xFC, 0xF8, 0xF0, 0xE0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0E, 0x1F, 0x3F, 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x3F, 0x1E, 0x0C, 0x00, 0x00,
};
uint32_t timer7, time1;
void handleNewMessages(int numNewMessages)
{
Serial.print("handleNewMessages ");
Serial.println(numNewMessages);
for (int i = 0; i < numNewMessages; i++)
{
String chat_id = bot.messages[i].chat_id;
String text = bot.messages[i].text;
String from_name = bot.messages[i].from_name;
int i2=0;
do{
if (dfdp[i2] == chat_id) {
if (text == "💩"){
bot.sendPhoto(chat_id, poshl1, "💩Пасхалочка💩");
oled.drawBitmap(0, 0, bitmapGov_128x64, 128, 64);
}
if (text == "/otchet"){
String dok = "Бункер" + nn;
dok += "Корм: ";
dok += Kor1 + nn;
bot.sendPhoto(chat_id, phot1, dok);
}
if (text == "/start"){
String welcome1 = "Вас приветствует бот Умной кормушки, " + from_name + nn;
welcome1 += "У вас есть права пользователя системы." + nn;
welcome1 += "Вам доступно меню:" + nn;
welcome1 += "/otchet : нажми, чтобы получить полный отчёт системы." + nn;
bot.sendPhoto(chat_id, "https://mykaleidoscope.ru/uploads/posts/2023-09/1696076623_mykaleidoscope-ru-p-kuritsa-s-chelkoi-pinterest-40.jpg", welcome1);
}
break;
}
bot.sendChatAction(chat_id, "typing");
if (i2==((sizeof(dfdp)/sizeof(String))-1)&&text == "/start"||(sizeof(dfdp)/sizeof(String))==0&&text == "/start") {
String keyboardStart = "[[{ \"text\" : \"👨🏻💻Telegram администратора системы👨🏻💻\", \"url\" : \"https://t.me/Kriko11\" }]]";
String ww1 = "Вас приветствует бот Умной кормушки, " + from_name + nn;
ww1 += "🔒В настоящее время у Вас нет прав на использование системы🔒." + nn;
ww1 += "Чтобы получить доступ можете обратиться к администратору системы по ссылке ниже." + nn;
ww1 += "Ваш chat_id: " + chat_id;
bot.sendMessageWithInlineKeyboard(chat_id, ww1 , "", keyboardStart);
break;
}
++i2;
}while (i2<(sizeof(dfdp)/sizeof(String)));
}
}
void setup() {
Serial.begin(115200);
servo.attach(servoPin, 500, 2400);
pinMode(rus1, INPUT);
pinMode(rus2, INPUT);
pinMode(ON1, OUTPUT);
pinMode(OFF1, OUTPUT);
oled.init();
oled.clear();
oled.setScale(2);
oled.home();
oled.print(" Загрузка");
oled.setScale(1);
oled.setCursor(0,2);
oled.print("Подключене к:");
oled.setCursor(0,3);
oled.print(WIFI_SSID);
oled.drawBitmap(76, 32, bitmapv_32x32, 32, 32);
Serial.print("Connecting to Wifi SSID ");
Serial.print(WIFI_SSID);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
secured_client.setCACert(TELEGRAM_CERTIFICATE_ROOT); // Add root certificate for api.telegram.org
while (WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(500);
}
Serial.print("\nWiFi connected. IP address: ");
Serial.println(WiFi.localIP());
Serial.print("Retrieving time: ");
configTime(0, 0, "pool.ntp.org"); // get UTC time via NTP
time_t now = time(nullptr);
while (now < 24 * 3600)
{
Serial.print(".");
delay(100);
now = time(nullptr);
}
Serial.println(now);
configTime(3600 * 7, UTC_OFFSET_DST, NTP_SERVER);
oled.clear();
}
void loop() {
struct tm timeinfo;
if (!getLocalTime(&timeinfo)) {
return;
}
ru1 = analogRead(rus1);
ru2 = analogRead(rus2);
if(ru2 >= 3000){
digitalWrite(ON1, HIGH);
digitalWrite(OFF1, LOW);
Kor1 = "есть";
phot1 = "https://disk.yandex.ru/i/EEE2G-vl1ZD8ig";
}else{
digitalWrite(OFF1, HIGH);
digitalWrite(ON1, LOW);
Kor1 = "нет";
phot1 = "https://disk.yandex.ru/i/GHadasEuo8bM2g";
}
if(millis() - timer7 >= 2000){
if(ru2 <= 4000){
for (int i = 0; i < sizeof(dfdp)/sizeof(String); i++){
bot.sendPhoto(dfdp[i], phot1 , "🔴Внимание! Корма в бункере нет!🔴");
}
}
}
if(ru1 >= 4000){
servo.write(90);
delay(1000);
}else{
servo.write(180);
delay(1000);
}
switch(sch){
case 0:
if(millis() - time1 >= 5000){
time1 = millis();
oled.clear();
oled.setScale(2);
oled.home();
oled.print(" Время");
oled.setScale(1);
oled.setCursor(0,2);
oled.print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
oled.setScale(3);
oled.setCursor(24,3);
oled.print(&timeinfo, "%H:%M");
oled.setScale(2);
oled.setCursor(6,6);
oled.print(&timeinfo, "%d.%m.%Y");
sch = sch + 1;
}
break;
case 1:
if(millis() - time1 >= 5000){
time1 = millis();
oled.clear();
oled.setScale(2);
oled.home();
oled.print(" Корм");
oled.setScale(3);
oled.setCursor(0,2);
oled.print(Kor1);
if(ru2 >= 3000){
oled.drawBitmap(79, 22, bitmapOk_32x32, 32, 32);
}else{
oled.drawBitmap(79, 22, bitmapNo_32x32, 32, 32);
}
sch = 0;
}
}
if (millis() - bot_lasttime > BOT_MTBS)
{
int numNewMessages = bot.getUpdates(bot.last_message_received + 1);
while (numNewMessages)
{
Serial.println("got response");
handleNewMessages(numNewMessages);
numNewMessages = bot.getUpdates(bot.last_message_received + 1);
}
bot_lasttime = millis();
}
}