ESP8266 + Arduino

Тема в разделе "ESP8266, ESP32", создана пользователем Кириллstrelok, 16 ноя 2017.

  1. Добрый день, появилась проблема с ESP8266.Вчера все работало прекрасно, а сегодня когда включил ардуину(NANO) модуль даже к wi-fi подключаться не хочет. Вот код
    Код (C++):
    #include <SoftwareSerial.h>
    #include <DS1307.h>           // Подключение библиотеки для часового модуля
    DS1307 rtc(A1, A0);
    #include <DallasTemperature.h>
    #include <OneWire.h>

    #define ONE_WIRE_BUS 9

    OneWire oneWire(ONE_WIRE_BUS);

    DallasTemperature sensors(&oneWire);

    DeviceAddress Thermometer1 = {
      0x28, 0xFF, 0x71, 0xDB, 0x00, 0x17, 0x05, 0xC0
    };  // адрес датчика DS18B20 280054B604000092

    DeviceAddress Thermometer2 = {
      0x28, 0xFF, 0x71, 0xDB, 0x00, 0x17, 0x05, 0xC0
    };

    DeviceAddress Thermometer3 = {
      0x28, 0xFF, 0x8C, 0x52, 0x72, 0x16, 0x04, 0xFA
    };

    SoftwareSerial wifiSerial(4, 5);

    float vat = 0;

    void setup() {
      Serial.begin(115200);
      wifiSerial.begin(115200);
      wifiSerial.setTimeout(5000);
      wifiSerial.println("AT+CIOBAUD=9600");
      wifiSerial.end();
      wifiSerial.begin(9600);
      boolean connected = false;//подключение к сети
      for (int i = 0; i < 5; i++) {
        if (connectWiFi()) {
          connected = true;
          break;
        }
      }
      sensors.begin();
      sensors.setResolution(Thermometer1, 10);
      sensors.setResolution(Thermometer2, 10);
      sensors.setResolution(Thermometer3, 10);

    }
    int p =0;
    void loop() {
      String stringOne = rtc.getTimeStr();
      String Hour =  stringOne.substring(0, 2);   // Отображение часов
      String Minute = stringOne.substring(3, 5);  // Отображение минут
      String Second = stringOne.substring(6, 9);  // Отображение секунд
      String Date = rtc.getDateStr();    // Отображение даты
        sensors.requestTemperatures();

      float Temp = sensors.getTempC(Thermometer1);
      float Temp2 = sensors.getTempC(Thermometer2);
      float Temp3 = sensors.getTempC(Thermometer3);
      String t_ = String(Temp);
      String t_2 = String(Temp2);
      String t_3 = String(Temp3);

      float main, main2 = 0, main3 = 0;
      for (int i = 0; i < 250; i++) {
        main = analogRead(A7);
        main2 += main;
        delay(1);
      }
      main3 = main2 / 250;
      main3 = main3 / 3.67;

      float Volts = main3;
      int arr[100];
      for (int i = 0; i < 100; i++) {
        arr[i] = (analogRead(A3) - 512) / ((1023 - 512) / 30);
        delay(1);
      }
      float sum = 0 , col = 0, sred;
      for (int i = 0; i < 100; i++) {
          sum = sum + arr[i];
          col++;
      }

      sred = sum / col;
      float result = sred * 2;
      float ampers = result * -1;
     
      vat += (ampers * Volts) / 3600;
      String Vats_ = String(vat);
      col++;
      wifiSerial.println("AT+CIPSTART=\"TCP\",\"economics.zzz.com.ua\",80");
      delay(10);
      String cmd =  "GET /ru/scripts/***********.php?0=" + Hour + "&1=" + Minute + "&2=" + Second + "&3=" + Date + "&5=" + t_ + "&6=" + t_2 +"&7=" + t_3 +"&8=" + Vats_ +"&9=" + Volts + "&16=" + ampers + " HTTP/1.1\r\nHost: economics.zzz.com.ua\r\n\r\n";
      wifiSerial.print("AT+CIPSEND=");
      wifiSerial.println(cmd.length());
      delay(10);
      wifiSerial.print(cmd);
      //    wifiSerial.print("AT+CIPCLOSE");
      //    delay(100);
      delay(1000);
    }

    boolean connectWiFi() {
      wifiCmd("AT+CWMODE=3", 1000, "OK");
      wifiCmd("AT+CWJAP=\"DIR-615\",\"6Zg73Qlm46@ng01W@x\"", 2000, "OK");
      return true;
    }
    boolean  wifiCmd(char cmd[], int timeout, char answer[]) {
      wifiSerial.print(cmd);
      wifiSerial.println();
      if (wifiSerial.find(answer)) {
        return true;
      }
    }
    В чем может быть проблема? Заранее спасибо.
     
  2. ИгорьК

    ИгорьК Гуру

    Кирилл! Вчера свет включался, сегодня - нет.
    Сможете ВКЛЮЧИТЬ мысль и предположить в чем дело?
    А теперь по аналогии со своим устройством...
     
  3. Попробовал на Mega тоже самое(
     
  4. ИгорьК

    ИгорьК Гуру

    Ок, поменяли выключатель - лампочка не включилась. Дальше мысли есть?
     
  5. Вы имеете в виду, что сам ESP сгорел? Но как?
     
  6. ИгорьК

    ИгорьК Гуру

    А еще варианты?

    Думайте!
     
  7. Проводка?
     
  8. ИгорьК

    ИгорьК Гуру

    Еще
     
  9. Питание? У меня закончились варианты)
     
  10. ИгорьК

    ИгорьК Гуру

    а сам датчик?
     
  11. Не понял, Вы о ESP8266?
     
  12. ИгорьК

    ИгорьК Гуру

    upload_2017-11-16_13-52-59.png

    Там же еще разные железки есть.
     
  13. Я попробовал без них, то есть оставил только то, что связанно с модулем, происходит тоже самое.
     
  14. ИгорьК

    ИгорьК Гуру

    Кирилл!
    Если "вчера работало", а сегодня - нет, то проблема всегда в какой-то железке или потере контакта, а не в программе.

    Последовательно проверяйте соединения и работоспособность каждого элемента программным путем - обращайтесь к нему и смотрите ответ.
     
  15. ИгорьК

    ИгорьК Гуру

    А модуль на АТ-команды отвечает?
     
  16. Не пробовал. Сейчас проверю.
     
  17. ИгорьК

    ИгорьК Гуру

    Очень глубокая мысль - не находите? Никто до нее не додумается...
     
  18. Нашел для проверки такой код
    Код (C++):
    #include <SoftwareSerial.h>
    SoftwareSerial mySerial(4, 5); // указываем пины rx и tx
    void setup()
    {
    pinMode(4,INPUT);
    pinMode(5,OUTPUT);
    Serial.begin(9600);
    mySerial.begin(115200);
    mySerial.setTimeout(5000);
    mySerial.println("AT+CIOBAUD=9600");
    mySerial.end();
    mySerial.begin(9600);
    }
    void loop()
    {
    if (Serial.available())
    {
    mySerial.write(Serial.read()); // пишем в software-порт
    }
    if (mySerial.available())
    {
    Serial.write(mySerial.read()); // пишем в hardware-порт
    }
    }
    На команды не отвечает
     
  19. ИгорьК

    ИгорьК Гуру

    При наличии (1) питания, (2) правильном соединении и (3) необрыве провода, может быть следующие вещи:
    - сгорела(маловероятно, но не исключено)
    - изменилась скорость порта модуля
    - слетела прошивка

    Два последние пункта лечатся перепрошивкой. Копайте интернет как восстанавливается/перепрошивается этот модуль АТ-прошивкой.
    Пункты 1-3 тоже надо проверить.

    И, главное, Кирилл! Запретите себе писать такие посты, как первый.
    Задайте себе вопрос - я все сделал, чтобы решить мою проблему сам?

    Это и ардуино помогает, и вообще по жизни важно.
     
  20. Спасибо за совет и помощь, буду пробовать.