Add detect ESP8266

This commit is contained in:
Just Call Me Koko
2021-04-13 20:05:04 -04:00
parent 6ce7f598eb
commit c822bba6da
5 changed files with 75 additions and 20 deletions

View File

@@ -19,16 +19,16 @@ void A32u4Interface::test() {
} }
void A32u4Interface::main(uint32_t current_time) { void A32u4Interface::main(uint32_t current_time) {
/*
if (current_time - this->initTime >= 1000) { if (current_time - this->initTime >= 1000) {
this->initTime = millis(); this->initTime = millis();
MySerial_two.write("PING"); //MySerial_two.write("PING");
delay(1); //delay(1);
if (MySerial_two.available()) { if (MySerial_two.available()) {
Serial.println("Got A32U4 Serial data"); Serial.println("Got A32U4 Serial data");
Serial.println(MySerial_two.readString()); Serial.println(MySerial_two.read());
} }
} }

View File

@@ -75,10 +75,6 @@ void setup()
//Serial.begin(115200); //Serial.begin(115200);
esp_obj.begin();
a32u4_obj.begin();
display_obj.RunSetup(); display_obj.RunSetup();
display_obj.tft.setTextColor(TFT_CYAN, TFT_BLACK); display_obj.tft.setTextColor(TFT_CYAN, TFT_BLACK);
digitalWrite(TFT_BL, HIGH); digitalWrite(TFT_BL, HIGH);
@@ -152,7 +148,7 @@ void setup()
display_obj.tft.println(F("Starting...")); display_obj.tft.println(F("Starting..."));
delay(1000); delay(500);
display_obj.tft.setTextColor(TFT_WHITE, TFT_BLACK); display_obj.tft.setTextColor(TFT_WHITE, TFT_BLACK);
@@ -166,7 +162,11 @@ void setup()
digitalWrite(TFT_BL, HIGH); digitalWrite(TFT_BL, HIGH);
delay(5000); esp_obj.begin();
a32u4_obj.begin(); // This goes last to make sure nothing is messed up when reading serial
delay(2000);
menu_function_obj.RunSetup(); menu_function_obj.RunSetup();
} }

View File

@@ -10,9 +10,40 @@ void EspInterface::begin() {
digitalWrite(ESP_ZERO, HIGH); digitalWrite(ESP_ZERO, HIGH);
Serial.println("Checking for ESP8266...");
MySerial.begin(BAUD, SERIAL_8N1, 27, 26); MySerial.begin(BAUD, SERIAL_8N1, 27, 26);
//this->bootRunMode(); delay(100);
//display_obj.tft.println("Checking for ESP8266...");
this->bootRunMode();
delay(500);
while (MySerial.available())
MySerial.read();
MySerial.write("PING");
delay(2000);
String display_string = "";
while (MySerial.available()) {
display_string.concat((char)MySerial.read());
}
display_string.trim();
Serial.println("\nDisplay string: " + (String)display_string);
if (display_string == "ESP8266 Pong") {
//display_obj.tft.println("ESP8266 Found!");
Serial.println("ESP8266 Found!");
this->supported = true;
}
this->initTime = millis(); this->initTime = millis();
} }
@@ -42,7 +73,7 @@ void EspInterface::bootProgramMode() {
digitalWrite(ESP_ZERO, HIGH); digitalWrite(ESP_ZERO, HIGH);
Serial.println("[!] Complete"); Serial.println("[!] Complete");
Serial.end(); Serial.end();
Serial.begin(BAUD); Serial.begin(57600);
} }
void EspInterface::bootRunMode() { void EspInterface::bootRunMode() {
@@ -75,11 +106,11 @@ void EspInterface::program() {
void EspInterface::main(uint32_t current_time) { void EspInterface::main(uint32_t current_time) {
if (current_time - this->initTime >= 1000) { if (current_time - this->initTime >= 1000) {
this->initTime = millis(); this->initTime = millis();
MySerial.write("PING"); //MySerial.write("PING");
} }
if (MySerial.available()) { while (MySerial.available()) {
Serial.write((uint8_t)MySerial.read()); Serial.print((char)MySerial.read());
} }
if (Serial.available()) { if (Serial.available()) {

View File

@@ -6,7 +6,7 @@
#define ESP_RST 14 #define ESP_RST 14
#define ESP_ZERO 13 #define ESP_ZERO 13
#define BAUD 57600 #define BAUD 115200
extern Display display_obj; extern Display display_obj;

View File

@@ -1,13 +1,37 @@
// the setup function runs once when you press reset or power the board // the setup function runs once when you press reset or power the board
void setup() { void setup() {
Serial.begin(115200);
delay(100);
// initialize digital pin LED_BUILTIN as an output. // initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT); pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, HIGH);
} }
// the loop function runs over and over again forever // the loop function runs over and over again forever
void loop() { void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level) //digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second //delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW //digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second //delay(1000); // wait for a second
if (Serial.available()) {
String input = Serial.readString();
input.trim();
if (input == "PING") {
Serial.println("ESP8266 Pong");
digitalWrite(LED_BUILTIN, LOW);
delay(1);
digitalWrite(LED_BUILTIN, HIGH);
}
//Serial.println(input);
}
else
delay(1);
} }