Добрый день, появилась проблема с 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; } } В чем может быть проблема? Заранее спасибо.
Кирилл! Вчера свет включался, сегодня - нет. Сможете ВКЛЮЧИТЬ мысль и предположить в чем дело? А теперь по аналогии со своим устройством...
Кирилл! Если "вчера работало", а сегодня - нет, то проблема всегда в какой-то железке или потере контакта, а не в программе. Последовательно проверяйте соединения и работоспособность каждого элемента программным путем - обращайтесь к нему и смотрите ответ.
Нашел для проверки такой код Код (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-порт } } На команды не отвечает
При наличии (1) питания, (2) правильном соединении и (3) необрыве провода, может быть следующие вещи: - сгорела(маловероятно, но не исключено) - изменилась скорость порта модуля - слетела прошивка Два последние пункта лечатся перепрошивкой. Копайте интернет как восстанавливается/перепрошивается этот модуль АТ-прошивкой. Пункты 1-3 тоже надо проверить. И, главное, Кирилл! Запретите себе писать такие посты, как первый. Задайте себе вопрос - я все сделал, чтобы решить мою проблему сам? Это и ардуино помогает, и вообще по жизни важно.