add lcd
This commit is contained in:
parent
5e7c6a1f9c
commit
d486bb07d9
@ -15,6 +15,8 @@ framework = arduino
|
|||||||
monitor_speed = 115200
|
monitor_speed = 115200
|
||||||
|
|
||||||
lib_deps =
|
lib_deps =
|
||||||
adafruit/Adafruit GFX Library
|
adafruit/Adafruit BusIO@^1.17.4
|
||||||
adafruit/Adafruit SSD1306
|
adafruit/Adafruit GFX Library@^1.12.4
|
||||||
links2004/WebSockets
|
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 <Arduino.h>
|
||||||
|
|
||||||
#include "actuators.h"
|
#include "lcd_status.h"
|
||||||
#include "web_server.h"
|
|
||||||
#include "controller.h"
|
|
||||||
#include "robot_state.h"
|
|
||||||
#include "ws_server.h"
|
|
||||||
#include "servo.h"
|
#include "servo.h"
|
||||||
#include "ultrasonic.h"
|
#include "ultrasonic.h"
|
||||||
#include "face.h"
|
#include "face.h"
|
||||||
|
#include "robot_state.h"
|
||||||
|
|
||||||
|
#include "actuators.h"
|
||||||
|
#include "web_server.h"
|
||||||
|
#include "ws_server.h"
|
||||||
|
#include "controller.h"
|
||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
Serial.begin(115200);
|
Serial.begin(115200);
|
||||||
|
|
||||||
|
lcdInit();
|
||||||
servoInit();
|
servoInit();
|
||||||
ultrasonicInit();
|
ultrasonicInit();
|
||||||
faceInit();
|
faceInit();
|
||||||
|
|||||||
@ -6,6 +6,7 @@
|
|||||||
#include "controller.h"
|
#include "controller.h"
|
||||||
#include "robot_state.h"
|
#include "robot_state.h"
|
||||||
#include "ultrasonic.h"
|
#include "ultrasonic.h"
|
||||||
|
#include "lcd_status.h"
|
||||||
|
|
||||||
static WebServer server(80);
|
static WebServer server(80);
|
||||||
|
|
||||||
@ -64,6 +65,8 @@ void handleMode() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
lcdShowMode(modeToStr(robot.mode));
|
||||||
|
// lcdShowText("SERVICE MODE", "Waiting...");
|
||||||
server.send(200, "text/plain",
|
server.send(200, "text/plain",
|
||||||
String("OK MODE=") + modeToStr(robot.mode));
|
String("OK MODE=") + modeToStr(robot.mode));
|
||||||
}
|
}
|
||||||
@ -96,6 +99,7 @@ void webServerInit() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (WiFi.status() == WL_CONNECTED) {
|
if (WiFi.status() == WL_CONNECTED) {
|
||||||
|
lcdShowWiFi(WIFI_SSID, WiFi.RSSI());
|
||||||
Serial.print("\nConnected. IP: ");
|
Serial.print("\nConnected. IP: ");
|
||||||
Serial.println(WiFi.localIP());
|
Serial.println(WiFi.localIP());
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user