• Система автоматизации с открытым исходным кодом на базе 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
Спасибо, нашел. Но не помогло.
Видимо, мое предположение насчет влияния версии списка плат, ошибочно.
А как откатить версию библиотеки?
 
Сверху Снизу