• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь ESP-12E в состоянии кирпича

alnif

New member
Всем добрый день, всех с прошедшими. В общем первый модуль я так и не смог завести (GPIO2 через резистор подтягивал). Получил новый контроллер, уже распаянный на плате со всей необходимой обвязкой и конвертером питания.

Теперь вопрос по нему - взял скетч для теста, который выводит в вебморду три кнопку управления встроенными светодиодами и показания датчиков DHT11 и DS18B20, залил (скомпилировалось и загрузилось без ошибок). После рестарта к Wi-fi не подключается, в ком-порт выводит какую то чушь.
Код:
 ets Jan  8 2013,rst cause:2, boot mode:(3,6)

load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v09f0c112
~ld

ллгллглггггггггггглгггггггггллглгггглггггллгггггглггггггллггггггггггггггггггггггглг

Последняя строчка кириллических символов идет бесконечно, до перезапуска модуля.

Сам скетч:

Код:
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>

#include <OneWire.h>
#include <DallasTemperature.h>

#include <SimpleDHT.h>

#define ONE_WIRE_BUS 15

int pinDHT11 = 13;
SimpleDHT11 dht11;

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

MDNSResponder mdns;

// Wi-Fi
const char* ssid = "WIFIAP";
const char* password = "WIFIPASS";

byte arduino_mac[] = { 0xDE, 0xED, 0xBA, 0xFE, 0xFE, 0xED };
IPAddress ip(192,168,1,5);
IPAddress gateway(192,168,1,1);
IPAddress subnet(255,255,255,0);

ESP8266WebServer server(80);

//int D0_pin = 16;
//int D2_pin = 2;//d4
//int D1_pin = 5;


void setup(void){
  // preparing GPIOs
/*  pinMode(D0_pin, OUTPUT);
  digitalWrite(D0_pin, LOW);
  pinMode(D2_pin, OUTPUT);
  digitalWrite(D2_pin, LOW);
  pinMode(D1_pin, OUTPUT);
  digitalWrite(D1_pin, LOW); */
  sensors.begin();

  delay(100);
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  WiFi.config(ip, gateway, subnet);
 
  Serial.println("");

  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
   Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
 
  if (mdns.begin("esp8266", WiFi.localIP())) {
    Serial.println("MDNS responder started");
  }
 
/*  //+++++++++++++++++++++++ START  LED-1 ++++++++++++++++++++
  server.on("/", [](){
    server.send(200, "text/html", webPage());
  });
  server.on("/socket1On", [](){
    digitalWrite(D0_pin, HIGH);
    server.send(200, "text/html", webPage());
    delay(100);
  
  });
  server.on("/socket1Off", [](){
    digitalWrite(D0_pin, LOW);
    server.send(200, "text/html", webPage());
    delay(100);
}); 
   //+++++++++++++++++++++++ END  LED-1 ++++++++++++++++++++
  
   //+++++++++++++++++++++++ START  LED-2  ++++++++++++++++++++
 
  server.on("/socket2On", [](){
    digitalWrite(D2_pin, HIGH);
    server.send(200, "text/html", webPage());
    delay(100);  
  });
  server.on("/socket2Off", [](){
    digitalWrite(D2_pin, LOW);
    server.send(200, "text/html", webPage());
    delay(100);
    });
   // +++++++++++++++++++++++ END  LED-2 ++++++++++++++++++++
 
   //+++++++++++++++++++++++ START  LED-3  ++++++++++++++++++++

  server.on("/socket3On", [](){
    digitalWrite(D1_pin, HIGH);
    server.send(200, "text/html", webPage());
    delay(100);  
  });
  server.on("/socket3Off", [](){
    digitalWrite(D1_pin, LOW);
    server.send(200, "text/html", webPage());
    delay(100);
   });
   // +++++++++++++++++++++++ END  LED-3 ++++++++++++++++++++
    */
  
 
  server.begin();
  Serial.println("HTTP server started");
}
void loop(void){
  server.handleClient();
}

String webPage()
{
  sensors.requestTemperatures();
  byte temperature = 0;
  byte humidity = 0;
  dht11.read(pinDHT11, &temperature, &humidity, NULL);
  String web;
  web += "<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"/> <meta charset=\"utf-8\"><title>ESP 8266</title><style>button{color:red;padding: 10px 27px;}</style></head>";
  web += "<h1 style=\"text-align: center;font-family: Open sans;font-weight: 100;font-size: 20px;\">ESP8266 Web Server</h1><div>";
/*  //++++++++++ LED-1  +++++++++++++
  web += "<p style=\"text-align: center;margin-top: 0px;margin-bottom: 5px;\">----LED 1----</p>";
  if (digitalRead(D0_pin) == 1)
  {
    web += "<div style=\"text-align: center;width: 98px;color:white ;padding: 10px 30px;background-color: #43a209;margin: 0 auto;\">ON</div>";
  }
  else
  {
    web += "<div style=\"text-align: center;width: 98px;color:white ;padding: 10px 30px;background-color: #ec1212;margin: 0 auto;\">OFF</div>";
  }
  web += "<div style=\"text-align: center;margin: 5px 0px;\"> <a href=\"socket1On\"><button>ON</button></a>&nbsp;<a href=\"socket1Off\"><button>OFF</button></a></div>";
  // ++++++++ LED-1 +++++++++++++
 
  //++++++++++ LED-2  +++++++++++++
  web += "<p style=\"text-align: center;margin-top: 0px;margin-bottom: 5px;\">----LED 2----</p>";
  if (digitalRead(D2_pin) == 1)
  {
    web += "<div style=\"text-align: center;width: 98px;color:white ;padding: 10px 30px;background-color: #43a209;margin: 0 auto;\">ON</div>";
  }
  else
  {
    web += "<div style=\"text-align: center;width: 98px;color:white ;padding: 10px 30px;background-color: #ec1212;margin: 0 auto;\">OFF</div>";
  }
  web += "<div style=\"text-align: center;margin: 5px 0px;\"> <a href=\"socket2On\"><button>ON</button></a>&nbsp;<a href=\"socket2Off\"><button>OFF</button></a></div>";
  // ++++++++ LED-2 +++++++++++++
 
  //++++++++++ LED-3  +++++++++++++
  web += "<p style=\"text-align: center;margin-top: 0px;margin-bottom: 5px;\">----LED 3----</p>";
  if (digitalRead(D1_pin) == 1)
  {
    web += "<div style=\"text-align: center;width: 98px;color:white ;padding: 10px 30px;background-color: #43a209;margin: 0 auto;\">ON</div>";
  }
  else
  {
    web += "<div style=\"text-align: center;width: 98px;color:white ;padding: 10px 30px;background-color: #ec1212;margin: 0 auto;\">OFF</div>";
  }
  web += "<div style=\"text-align: center;margin: 5px 0px;\"> <a href=\"socket3On\"><button>ON</button></a>&nbsp;<a href=\"socket3Off\"><button>OFF</button></a></div>";
  // ++++++++ LED-3 +++++++++++++ */
 
   //++++++++++ DS18B20 TEMP  +++++++++++++
  web += "<p style=\"text-align: center;margin-top: 0px;margin-bottom: 5px;\">----DS18B20 TEMP----</p>";
  web += "<div style=\"text-align: center;width: 98px;color:white ;padding: 10px 30px;background-color: #5191e4;margin: 0 auto;\">"+ String(sensors.getTempCByIndex(0))+"</div>";
  // ++++++++ DS18B20 TEMP  +++++++++++++
 
  //++++++++++ DHT11 TEMP  +++++++++++++
  web += "<p style=\"text-align: center;margin-top: 0px;margin-bottom: 5px;\">----DHT11 TEMP----</p>";
  web += "<div style=\"text-align: center;width: 98px;color:white ;padding: 10px 30px;background-color: #5191e4;margin: 0 auto;\">"+ String((int)temperature)+"</div>";
  // ++++++++ DHT11 TEMP  +++++++++++++
 
  //++++++++++ DHT11 H  +++++++++++++
  web += "<p style=\"text-align: center;margin-top: 0px;margin-bottom: 5px;\">----DHT11 H----</p>";
  web += "<div style=\"text-align: center;width: 98px;color:white ;padding: 10px 30px;background-color: #5191e4;margin: 0 auto;\">"+ String((int)humidity)+"</div>";
  // ++++++++ DHT11 H  +++++++++++++
 
  // ========REFRESH=============
  web += "<div style=\"text-align:center;margin-top: 20px;\"><a href=\"/\"><button style=\"width:158px;\">REFRESH</button></a></div>";
  // ========REFRESH=============
 
 
  web += "</div>";
  return(web);
}

Здесь я закомментировал управление светодиодами на всякий пожарный.
 

Вложения

alnif

New member
два дня назад объяснял чел что надо сделать.
посмотрите здесь:
https://esp8266.ru/forum/threads/ne-zapuskaetsja-proshivka.3094/page-2#post-46918
--------------------
Попробовал, через ESPFlashDownloadTool залил boot.bin в 0x0, сгенерированный в Arduino IDE bin в 0x01000, и esp_init_data_default.bin в 0x3fc000, прошилось без ошибок, вывод в COM после рестарта:

Код:
ets Jan  8 2013,rst cause:2, boot mode:(3,7)

load 0x40100000, len 2592, room 16
tail 0
chksum 0xef
load 0x00000000, len 0, room 8
tail 0
chksum 0xef
load 0x00000000, len 0, room 0
tail 0
chksum 0xef
csum 0xef
csum err
ets_main.c

и больше ничего, в сети устройство не появилось
 

Вложения

Сергей_Ф

Moderator
Команда форума
@nikolz думаю дело не в этом.
@alnif вы переключитесь в мониторе порта на скорость указанную в скетче. Что то мне кажется, вы в скетче забыли указать свою точку доступа и пароль от неё. Вот он и пытается подсоединиться в никуда. И выводит точки, как указано в скетче.
 

alnif

New member
@nikolz думаю дело не в этом.
@alnif вы переключитесь монитор порта на скорость указанную в скетче. Что о мне кажется, вы в скетче забыли указать свою точку доступа и пароль от неё. Вот он и пытается подсоединиться в никуда.
Нет, я просто в скетче выше заменил на абстрактные, в моем валидные данные для подключения, несколько раз перепроверил. И скорость в скетче 115200 указана, на ней и смотрю
 

alnif

New member
И еще, ESPFLashFownloadTool показывает следующую инфу
Код:
flash vendor:
C8h : GD
flash devID:
4016h
QUAD;32Mbit
crystal:
40 Mhz
Не значит ли это, что я неверно выбрал размер памяти (4 вместо 32)? Это же и адрес для прошивки поменяется
 

Сергей_Ф

Moderator
Команда форума
@alnif вы пользуетесь Ардуино ИДЕ? Откройте там Монитор порта. Проверьте скорость 115200. Проверьте выбранную плату. Прошение заново и смотрите в Монитор порта.
Должно быть: сначала кракозябры, потом вывод из скетча. Если нет - ищите что вы с портами начудили.
 

alnif

New member
Вот вывод, если из Arduino IDE напрямую скетч заливать. Вряд ли там 32 метра, нигде о существовании такого размера на 12-E не нашел, в т.ч. в описании у китайца
 

Вложения

Сергей_Ф

Moderator
Команда форума
@alnif, если у вас 12-E, то попробуйте указать 1 МБ в настройках. Хотя странности со скоростью порта это объяснить не может. Может китаец кварц левый распаял на вашей плате?
 

alnif

New member
@alnif, если у вас 12-E, то попробуйте указать 1 МБ в настройках. Хотя странности со скоростью порта это объяснить не может. Может китаец кварц левый распаял на вашей плате?
Кварц 12 МГц, 1 метр сейчас попробую (в ардуино иде вообще варианта в мегабайт нет)

P.S. во ESPFlashDownloadTool тоже...
 

Вложения

Сергей_Ф

Moderator
Команда форума
Последнее редактирование:

pvvx

Активный участник сообщества
@nikolz думаю дело не в этом.
@alnif вы переключитесь в мониторе порта на скорость указанную в скетче. Что то мне кажется, вы в скетче забыли указать свою точку доступа и пароль от неё. Вот он и пытается подсоединиться в никуда. И выводит точки, как указано в скетче.
Там
csum 0xef
сsum err -> ошибка контрольной суммы первого блока
ets_main.c -> вывалилось в ROM из его загрузчика. Код даже не запускался.
Всё не туда гадаете :)
 

Сергей_Ф

Moderator
Команда форума
@pvvx это где в первом сообщении csum error?
ets Jan 8 2013,rst cause:2, boot mode:(3,6)

load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v09f0c112
~ld

ллгллглггггггггггглгггггггггллглгггглггггллгггггглггггггллггггггггггггггггггггггглг
ошибка csum возникла при попытке ТС воспользоваться советом @nikolz, потому я и сказал что дело не в том, что он посоветовал.
вы бы хоть хронологию сообщений смотрели, прежде чем обвинять кого-то. А лучше помогли бы, если знаете ответ.
 
Последнее редактирование:

pvvx

Активный участник сообщества
@pvvx это где в первом сообщении csum error?


ошибка csum возникла при попытке ТС воспользоваться советом @nikolz, потому я и сказал что дело не в том, что он посоветовал.
вы бы хоть хронологию сообщений смотрели, прежде чем обвинять кого-то. А лучше помогли бы, если знаете ответ.
Там дальше всё то-же самое. Хронологию читал.
Ответов почему у некоторых возникают ошибки контрольки нет. Специально сделать можно, но чтобы само...(?)
На форуме таких за 3 года около 5..7 обращения и итого ни разу не раскрыто.
 

Сергей_Ф

Moderator
Команда форума
@pvvx, а есть мысли, как ТС видит отладочную информацию на скорости 115200? Может всё таки с кварцем лажа?
 

Сергей_Ф

Moderator
Команда форума
@alnif, попробуйте сменить кабель USB на более толстый, а также порт на компе. Надеюсь шьёте не на ноутбуке? На них могут возникать проблемы с питанием при прошивке.
 
Сверху Снизу