#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <UniversalTelegramBot.h>
#include <WiFi.h>
// Настройки Wi-Fi
const char* ssid = "M-WIFI";
const char* password = "";
// Настройки для подключения дисплея LCD1602 через I2C
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Ваш API токен от BotFather
#define BOT_TOKEN "6516985274:AAHVZyMkO2_qdzMZ6BJtH07faEQYAqn3tk4"
// Создание объекта бота
UniversalTelegramBot bot(BOT_TOKEN);
// Статичное сообщение для вывода
const String staticMessage = "Hello from FastBot!";
void setup() {
// Инициализация дисплея
lcd.init();
lcd.backlight();
// Подключение к Wi-Fi
Serial.print("Connecting to WiFi");
WiFi.begin("Wokwi-GUEST", "", 6);
while (WiFi.status() != WL_CONNECTED) {
delay(100);
Serial.print(".");
}
Serial.println(" Connected!");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
Serial.begin(115200);
}
void loop() {
// Получение обновлений от Telegram
if (bot.getUpdates(bot.last_message_received + 1)) {
for (int i = 0; i < bot.message_count; i++) {
// Очищаем дисплей перед выводом нового сообщения
lcd.clear();
String message = bot.messages[i].text;
int messageLength = message.length();
// Выводим статичное сообщение на дисплей
lcd.setCursor(0, 0);
lcd.print(staticMessage);
// Выводим динамическое сообщение с прокруткой
for (int j = 0; j <= messageLength - 16; j++) {
lcd.setCursor(0, 1);
lcd.print(message.substring(j, j + 16));
delay(500); // Пауза для прокрутки
}
// Вторая строка дисплея для последнего сообщения
lcd.setCursor(0, 1);
lcd.print(message.substring(messageLength - 16));
// Отправляем ответное сообщение на Telegram
bot.sendMessage(bot.messages[i].chat_id, "Received: " + message);
}
}
}