• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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 на более толстый, а также порт на компе. Надеюсь шьёте не на ноутбуке? На них могут возникать проблемы с питанием при прошивке.
 
Сверху Снизу