add lcd
This commit is contained in:
parent
5e7c6a1f9c
commit
d486bb07d9
@ -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
65
src/lcd_status.cpp
Normal 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
11
src/lcd_status.h
Normal 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);
|
||||
13
src/main.cpp
13
src/main.cpp
@ -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();
|
||||
|
||||
@ -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());
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user