#include <WiFi.h>
#include "LCD_1602_RUS.h"
#define WIFI_SSID "Wokwi-GUEST"
#define WIFI_PASS ""
#define BOT_TOKEN "6040632807:AAG8QHmaDlHUFftx4ELtBQVsjANOX2Cpzrk"
#define CHAT_ID "6164808768"
#include <FastBot.h>
FastBot bot(BOT_TOKEN);
//===============================================================================
int counter; // Data counter
int totalColumns = 16; // number of colums pixels on the LCD
int totalRows = 2; // number of rows pixels on the LCD
const int delayTime = 2000; // delay time on between each iteration
const int scrolling_time = 250; // Scrolling time of the test
//LiquidCrystal_I2C lcd(0x27, totalColumns, totalRows); // Define the lcd object from the liduidCrystal class
LCD_1602_RUS lcd(0x27, totalColumns, totalRows);
String staticMessage = "Телеграм бот";
String scrollingMessage = "LCD1602!";
//=============================================================================
// The below function allow us to scroll a test and it is used to scroll the ouput of data of the sensor
void scrollMessage(int row, String message, int delayTime, int totalColumns) {
for (int i = 0; i < totalColumns; i++) {
message = message;
}
message = message + " ";
for (int position = 0; position < message.length(); position++) {
lcd.setCursor(0, row);
lcd.print(message.substring(position, position + totalColumns));
delay(delayTime);
}
}
//=================================================================================
void setup() {
Serial.begin(9600);
lcd.init();
lcd.backlight();
Serial.print("Connecting to WiFi");
WiFi.begin("Wokwi-GUEST", "", 6);
while (WiFi.status() != WL_CONNECTED) {
delay(100);
Serial.print(".");
}
Serial.println(" Connected!");
// connectWiFi();
bot.setChatID(CHAT_ID);
// подключаем функцию-обработчик
bot.attach(newMsg);
// показать юзер меню (\t - горизонтальное разделение кнопок, \n - вертикальное
bot.showMenu("Menu1 \t Menu2 \t Menu3 \n Close");
lcd.print(staticMessage); // print the static message
scrollMessage(1, scrollingMessage, scrolling_time, totalColumns);
}
// обработчик сообщений
void newMsg(FB_msg& msg) {
if (msg.text == "Close") bot.closeMenu();
else Serial.println(msg.text);
lcd.clear();
delay(150);
// lcd.setCursor(0, 1);
// lcd.print(msg.text);
//delay(1000);
lcd.setCursor(0, 0);
lcd.print("от: " + msg.username);
delay(1000);
//lcd.clear();
// lcd.setCursor(0, 1);
// lcd.print(msg.text);
// delay(500);
lcd.setCursor(0, 1);
String scrollingMessageHumidity = msg.text;
scrollMessage(1, scrollingMessageHumidity, scrolling_time, totalColumns);
lcd.clear();
// Print he values of Temperature in Celsus
// String scrollingMessageTemperature = msg.text;
// scrollMessage(1, scrollingMessageTemperature, scrolling_time, totalColumns);
// Print the values of temperature in Fahrenheit
// String scrollingMessageTemperatureFahrenheit = msg.text;
// scrollMessage(1, scrollingMessageTemperatureFahrenheit, scrolling_time, totalColumns);
// // Распечатайте значения индекса тепла для обеих единиц.
// String scrollingMessageHeatIndexCelsus = msg.text;
// scrollMessage(1, scrollingMessageHeatIndexCelsus, scrolling_time, totalColumns);
// String scrollingMessageHeatIndexFahrenheit = msg.text;
// scrollMessage(1, scrollingMessageHeatIndexFahrenheit, scrolling_time, totalColumns);
delay(delayTime);
counter++; // update the counbter
}
void loop() {
bot.tick(); // тикаем в луп
Serial.print(bot.tick());
}
void connectWiFi() {
delay(2000);
Serial.begin(115200);
Serial.println();
WiFi.begin(WIFI_SSID, WIFI_PASS);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
// if (millis() > 15000) ESP.restart();
}
Serial.println("Connected");
}
// // /* Hello Wokwi! */
// // #include <LiquidCrystal_I2C.h>
// // LiquidCrystal_I2C lcd(0x27, 20, 4);
// // void setup() {
// // lcd.init();
// // lcd.backlight();
// // lcd.setCursor(1, 0);
// // lcd.print("Hello, Wokwi!");
// // }
// // void loop() {
// // lcd.setCursor(7, 1);
// // lcd.print(millis() / 1000);
// // }
// #include "LCD_1602_RUS.h"
// LCD_1602_RUS lcd(0x27, 16, 2);
// void setup()
// {
// lcd.init(); // initialize the lcd
// // Print a message to the LCD.
// lcd.backlight();
// lcd.setCursor(2, 0);
// lcd.print(L"Теперь можно");
// lcd.setCursor(3, 1);
// lcd.print(L"по-русски");
// }
// void loop()
// {
// }