• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Вопрос по Wemos D1 R1

Sever44

Member
Привет.

Модуль Wemos D1 R1 перестал прошиваться после обновления списка плат и библиотек в версии Ардуино 1.8.13.
Сообщение выводится на скорости 74880:
12:08:23.610 ->
12:08:23.610 -> ets Jan 8 2013,rst cause:2, boot mode:(3,6)
12:08:23.610 ->
12:08:23.610 -> load 0x4010f000, len 1384, room 16
12:08:23.610 -> tail 8
12:08:23.610 -> chksum 0x2d
12:08:23.610 -> csum 0x2d
12:08:23.610 -> vbc204a9b
12:08:23.610 -> ~ld
12:08:23.656 -> need boot 1.4+

Что сделать, чтобы работало?
Заранее спасибо.
 

enjoynering

Well-known member
она у вас прошилась. просто не грузится.

было такое - забыл wire.begin() в setup()
 

Sever44

Member
Увы, не помого:
'wire' was not declared in this scope
И вообще непонятно, при чем тут wire.
 

enjoynering

Well-known member
я не говорил что вам поможет. это просто как иноформация к размышлению. разжую специально для вас - вы может что-то забыли проинициализировать в setup().
 

Sever44

Member
Вроде ничего не забыл.

#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#include <ESP8266HTTPClient.h>
int tm;
unsigned long K;

const char *ssid = "******";
const char* const staPass = "******";

const char *mqtt_server = "******";
const int mqtt_port = 17862;
const char *mqtt_user = "******";
const char *mqtt_pass = "******";
const char *mqtt_client_name = "******";
#define BUFFER_SIZE 100

WiFiClient wclient;
PubSubClient client(wclient, mqtt_server, mqtt_port);

void setup() {
Serial.setTimeout(10);
tm=299;
Serial.begin(9600);
K = 0;
client.set_callback(callback);
}

void loop() {
// подключаемся к wi-fi
if (WiFi.status() != WL_CONNECTED) {
Serial.println("...");
Serial.print("Connecting to ");
Serial.print(ssid);
Serial.println("...");
WiFi.begin(ssid, staPass);

if (WiFi.waitForConnectResult() != WL_CONNECTED)
return;
Serial.println("WiFi connected");
}

// подключаемся к MQTT серверу
if (WiFi.status() == WL_CONNECTED) {
if (!client.connected()) {
Serial.println("Connecting to MQTT server");
if (client.connect(MQTT::Connect(mqtt_client_name)
.set_auth(mqtt_user, mqtt_pass))) {
Serial.println("Connected to MQTT server");
client.subscribe("POP");

} else {
Serial.println("Could not connect to MQTT server");

}
}
if (client.connected()){
client.loop();
Send();

}
}
}

void Send(){
delay (20);
tm--;
if (tm < 0) tm=299;
if (tm == 290){
K ++;
client.publish("Info","Current beat = " + String(K));
Serial.print("Current beat = ");
Serial.println(K);
}
}

void callback(const MQTT::publish& pub){
Serial.println(pub.topic());
if(String(pub.topic()) == "POP"){
Serial.println("YES");
}
}
 

Sever44

Member
Скетч нормально работает с другими WiFi модулями, и только с WeMos'om капризничает.
 

Sever44

Member
ВеМос нормально прошивался, пока я, сдуру, не обновил список плат.
 

Sever44

Member
А как это сделать? Это же не Винда. В Ардуине такой возможности не нашел.
 

Sever44

Member
Спасибо, нашел. Но не помогло.
Видимо, мое предположение насчет влияния версии списка плат, ошибочно.
А как откатить версию библиотеки?
 
Сверху Снизу