| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- #include "esp_interface.h"
- HardwareSerial MySerial(1);
- void EspInterface::begin() {
- pinMode(ESP_RST, OUTPUT);
- pinMode(ESP_ZERO, OUTPUT);
- delay(100);
- digitalWrite(ESP_ZERO, HIGH);
- Serial.println("Checking for ESP8266...");
- MySerial.begin(BAUD, SERIAL_8N1, 27, 26);
- delay(100);
- #ifdef HAS_SCREEN
- display_obj.tft.println("Checking for ESP8266...");
- #endif
- 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") {
- #ifdef HAS_SCREEN
- display_obj.tft.setTextColor(TFT_GREEN, TFT_BLACK);
- display_obj.tft.println("ESP8266 Found!");
- display_obj.tft.setTextColor(TFT_CYAN, TFT_BLACK);
- #endif
- Serial.println("ESP8266 Found!");
- this->supported = true;
- }
- else {
- #ifdef HAS_SCREEN
- display_obj.tft.setTextColor(TFT_RED, TFT_BLACK);
- display_obj.tft.println("ESP8266 Not Found");
- display_obj.tft.setTextColor(TFT_CYAN, TFT_BLACK);
- #endif
- }
- this->initTime = millis();
- }
- void EspInterface::RunUpdate() {
- this->bootProgramMode();
- #ifdef HAS_SCREEN
- display_obj.tft.setTextWrap(true);
- display_obj.tft.setFreeFont(NULL);
- display_obj.tft.setCursor(0, 100);
- display_obj.tft.setTextSize(1);
- display_obj.tft.setTextColor(TFT_GREEN);
-
- display_obj.tft.println("Waiting for serial data...");
-
- display_obj.tft.setTextColor(TFT_WHITE);
- #endif
- }
- void EspInterface::bootProgramMode() {
- Serial.println("[!] Setting ESP12 in program mode...");
- digitalWrite(ESP_ZERO, LOW);
- delay(100);
- digitalWrite(ESP_RST, LOW);
- delay(100);
- digitalWrite(ESP_RST, HIGH);
- delay(100);
- digitalWrite(ESP_ZERO, HIGH);
- Serial.println("[!] Complete");
- Serial.end();
- Serial.begin(57600);
- }
- void EspInterface::bootRunMode() {
- Serial.end();
- Serial.begin(115200);
- Serial.println("[!] Setting ESP12 in run mode...");
- digitalWrite(ESP_ZERO, HIGH);
- delay(100);
- digitalWrite(ESP_RST, LOW);
- delay(100);
- digitalWrite(ESP_RST, HIGH);
- delay(100);
- digitalWrite(ESP_ZERO, HIGH);
- Serial.println("[!] Complete");
- }
- void EspInterface::program() {
- if (MySerial.available()) {
- Serial.write((uint8_t)MySerial.read());
- }
- if (Serial.available()) {
- #ifdef HAS_SCREEN
- display_obj.tft.print(".");
- #endif
- while (Serial.available()) {
- MySerial.write((uint8_t)Serial.read());
- }
- }
- }
- void EspInterface::main(uint32_t current_time) {
- if (current_time - this->initTime >= 1000) {
- this->initTime = millis();
- //MySerial.write("PING");
- }
-
- while (MySerial.available()) {
- Serial.print((char)MySerial.read());
- }
- if (Serial.available()) {
- MySerial.write((uint8_t)Serial.read());
- }
- }
|