This commit is contained in:
unknown 2026-01-23 01:22:47 +03:00
parent 5e7c6a1f9c
commit d486bb07d9
5 changed files with 93 additions and 8 deletions

View File

@ -15,6 +15,8 @@ framework = arduino
monitor_speed = 115200
lib_deps =
adafruit/Adafruit GFX Library
adafruit/Adafruit SSD1306
links2004/WebSockets
adafruit/Adafruit BusIO@^1.17.4
adafruit/Adafruit GFX Library@^1.12.4
adafruit/Adafruit SSD1306@^2.5.16
links2004/WebSockets@^2.7.3
LiquidCrystal_I2C@^1.1.4

65
src/lcd_status.cpp Normal file
View File

@ -0,0 +1,65 @@
#include <Arduino.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "lcd_status.h"
// ===== LCD CONFIG =====
#define SDA_PIN 21
#define SCL_PIN 22
#define LCD_ADDR 0x3F
#define LCD_COLS 16
#define LCD_ROWS 2
static LiquidCrystal_I2C lcd(LCD_ADDR, LCD_COLS, LCD_ROWS);
void lcdInit() {
Wire.begin(SDA_PIN, SCL_PIN);
lcd.init();
lcd.backlight();
lcd.clear();
lcdShowBoot();
}
// ===== Screens =====
void lcdShowBoot() {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Robot booting");
lcd.setCursor(0, 1);
lcd.print("Please wait...");
}
void lcdShowWiFi(const char* ssid, int rssi) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("WiFi:");
lcd.print(ssid);
lcd.setCursor(0, 1);
lcd.print("RSSI:");
lcd.print(rssi);
lcd.print(" dBm");
}
void lcdShowMode(const char* mode) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("MODE:");
lcd.print(mode);
lcd.setCursor(0, 1);
lcd.print("Ready");
}
void lcdShowText(const char* line1, const char* line2) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(line1);
lcd.setCursor(0, 1);
lcd.print(line2);
}

11
src/lcd_status.h Normal file
View File

@ -0,0 +1,11 @@
#pragma once
void lcdInit();
// базовые экраны
void lcdShowBoot();
void lcdShowWiFi(const char* ssid, int rssi);
void lcdShowMode(const char* mode);
// универсально (2 строки)
void lcdShowText(const char* line1, const char* line2);

View File

@ -1,17 +1,20 @@
#include <Arduino.h>
#include "actuators.h"
#include "web_server.h"
#include "controller.h"
#include "robot_state.h"
#include "ws_server.h"
#include "lcd_status.h"
#include "servo.h"
#include "ultrasonic.h"
#include "face.h"
#include "robot_state.h"
#include "actuators.h"
#include "web_server.h"
#include "ws_server.h"
#include "controller.h"
void setup() {
Serial.begin(115200);
lcdInit();
servoInit();
ultrasonicInit();
faceInit();

View File

@ -6,6 +6,7 @@
#include "controller.h"
#include "robot_state.h"
#include "ultrasonic.h"
#include "lcd_status.h"
static WebServer server(80);
@ -64,6 +65,8 @@ void handleMode() {
return;
}
lcdShowMode(modeToStr(robot.mode));
// lcdShowText("SERVICE MODE", "Waiting...");
server.send(200, "text/plain",
String("OK MODE=") + modeToStr(robot.mode));
}
@ -96,6 +99,7 @@ void webServerInit() {
}
if (WiFi.status() == WL_CONNECTED) {
lcdShowWiFi(WIFI_SSID, WiFi.RSSI());
Serial.print("\nConnected. IP: ");
Serial.println(WiFi.localIP());
}