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

Ошибка компиляции для платы

Volt-Amper

New member
При компиляции в Arduino IDE вышла вот такая ошибка: Ошибка компиляции платы ModeMCU 1.0, причем скетчи из примеров нормально грузится без ошибок. Вот код моей программы для NodeMCU:

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

const char* ssid = "ASUS";
const char* password = "379931sbmc";

ESP8266WebServer server(80);

void setup() {
  Serial.begin(115200);
 

// Connecting WiFi
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.mode(WIFI_STA); // Задаем режим работы WIFI_STA (клиент)
WiFi.begin(ssid, password); // Подключаемся
while (WiFi.status() != WL_CONNECTED) // Ждем пока статус не станет WL_CONNECTED
{
delay(500);
}
Serial.println("WiFi connected");
Serial.print("IP address: ");
Serial.println(WiFi.localIP()); // показывает наше IP
// Starting WEB-server
     server.on ( "/", HTTP_handleRoot );
     server.onNotFound ( HTTP_handleRoot );
     server.begin();
}
void HTTP_handleRoot(void) {

if( server.hasArg("State") ){
       Serial.println(server.arg("State"));
  }
  server.send ( 200, "text/html", "" );
  delay(1);
}
 

Volt-Amper

New member
Не хватало вот этих строк, но все равно компиляции с ошибками:
warning: espcomm_sync failed
error: espcomm_open failed
error: espcomm_upload_mem failed
error: espcomm_upload_mem failed

Код:
void loop() {
    server.handleClient();
}
 

nikolz

Well-known member
Не хватало вот этих строк, но все равно компиляции с ошибками:
warning: espcomm_sync failed
error: espcomm_open failed
error: espcomm_upload_mem failed
error: espcomm_upload_mem failed

Код:
void loop() {
    server.handleClient();
}
ESP8266:Прошивки/Arduino/FAQ/При попытке загрузить ESP8266 получаю ошибку «espcomm sync failed». Как решить эту проблему? — Онлайн справочник
 

Volt-Amper

New member
Все равно не подключается NODEMCU к wi-fi сети
Код программы для Arduino Uno:
Код:
#define ENA 7        // Включить обороты переднего правого двигателя
#define ENB 8        // Включить обороты заднего правого двигателя

#define IN1  11            // L298N in 1 Передний правый мотор
#define IN2  10            // L298N in 2 Передний правый мотор
#define IN3  9            // L298N in 3 Задний правый мотор
#define IN4  6            // L298N in 4 Задний правый мотор

int command;                   // Int to store app command state.
int speedCar = 100;         // 50 - 255.
int speed_Coeff = 4;

void setup()
{ 
      pinMode(ENA, OUTPUT);
      pinMode(ENB, OUTPUT);
    pinMode(IN1, OUTPUT);
    pinMode(IN2, OUTPUT);
    pinMode(IN3, OUTPUT);
    pinMode(IN4, OUTPUT);
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, LOW);
  digitalWrite(IN3, LOW);
  digitalWrite(IN4, LOW);
    Serial.begin(9600);

  }

void goAhead(){

      digitalWrite(IN1, HIGH);
      digitalWrite(IN2, LOW);
        analogWrite(ENA, speedCar);

      digitalWrite(IN3, LOW);
      digitalWrite(IN4, HIGH);
        analogWrite(ENB, speedCar);

  }

void goBack(){

      digitalWrite(IN1, LOW);
      digitalWrite(IN2, HIGH);
        analogWrite(ENA, speedCar);


      digitalWrite(IN3, HIGH);
      digitalWrite(IN4, LOW);
        analogWrite(ENB, speedCar);

  }

void goRight(){

      digitalWrite(IN1, LOW);
      digitalWrite(IN2, HIGH);
        analogWrite(ENA, speedCar);


      digitalWrite(IN3, HIGH);
      digitalWrite(IN4, LOW);
        analogWrite(ENB, speedCar);

  }

void goLeft(){

      digitalWrite(IN1, HIGH);
      digitalWrite(IN2, LOW);
        analogWrite(ENA, speedCar);


      digitalWrite(IN3, LOW);
      digitalWrite(IN4, HIGH);
        analogWrite(ENB, speedCar);
      
  }

void goAheadRight(){
    
      digitalWrite(IN1, HIGH);
      digitalWrite(IN2, LOW);
      analogWrite(ENA, speedCar/speed_Coeff);

      digitalWrite(IN3, LOW);
      digitalWrite(IN4, HIGH);
      analogWrite(ENB, speedCar/speed_Coeff);
  }

void goAheadLeft(){
    
      digitalWrite(IN1, HIGH);
      digitalWrite(IN2, LOW);
      analogWrite(ENA, speedCar);

      digitalWrite(IN3, LOW);
      digitalWrite(IN4, HIGH);
      analogWrite(ENB, speedCar);
  }

void goBackRight(){

      digitalWrite(IN1, LOW);
      digitalWrite(IN2, HIGH);
      analogWrite(ENA, speedCar/speed_Coeff);


      digitalWrite(IN3, HIGH);
      digitalWrite(IN4, LOW);
      analogWrite(ENB, speedCar/speed_Coeff);

  }

void goBackLeft(){

      digitalWrite(IN1, LOW);
      digitalWrite(IN2, HIGH);
      analogWrite(ENA, speedCar);


      digitalWrite(IN3, HIGH);
      digitalWrite(IN4, LOW);
      analogWrite(ENB, speedCar);

  }

void stopRobot(){

      digitalWrite(IN1, LOW);
      digitalWrite(IN2, LOW);
        analogWrite(ENA, speedCar);


      digitalWrite(IN3, LOW);
      digitalWrite(IN4, LOW);
        analogWrite(ENB, speedCar);
  }
 
void loop(){
  
if (Serial.available() > 0) {
    command = Serial.read();

switch (command) {
case 'F':goAhead();break;
case 'B':goBack();break;
case 'L':goLeft();break;
case 'R':goRight();break;
case 'I':goAheadRight();break;
case 'G':goAheadLeft();break;
case 'J':goBackRight();break;
case 'H':goBackLeft();break;
case '0':speedCar = 100;break;
case '1':speedCar = 120;break;
case '2':speedCar = 135;break;
case '3':speedCar = 155;break;
case '4':speedCar = 170;break;
case '5':speedCar = 185;break;
case '6':speedCar = 195;break;
case '7':speedCar = 215;break;
case '8':speedCar = 235;break;
case '9':speedCar = 255;break;
case 'S':stopRobot();break;

}
}
}
И код программы для NODEMCU:
Код:
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
const char* ssid = "RobotMCU";
const char* password = "379931sbmc";
ESP8266WebServer server(80);
void setup() {
  Serial.begin(115200);
// Connecting WiFi
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.mode(WIFI_AP); // Задаем режим работы WIFI_AP_STA (клиент)
WiFi.begin(ssid, password); // Подключаемся
while (WiFi.status() != WL_CONNECTED) // Ждем пока статус не станет WL_CONNECTED
{
delay(500);
}
Serial.println("WiFi connected");
Serial.print("IP address: ");
Serial.println(WiFi.localIP()); // показывает наше IP
// Starting WEB-server
     server.on ( "/", HTTP_handleRoot );
     server.onNotFound ( HTTP_handleRoot );
     server.begin();
}
void loop() {
    server.handleClient();
}
void HTTP_handleRoot(void) {
if( server.hasArg("State") ){
       Serial.println(server.arg("State"));
  }
  server.send ( 200, "text/html", "" );
  delay(1);
}
Пины RX(GPIO3) и TX(GPIO1) nodeMCU, подключаю к выходам Arduino Uno TX>>RX, RX>>TX.
Когда пытаюсь с телефона подключиться к сети Robot_car пишет подключено, но без доступа к сети. Ошибок при загрузке и компиляции в этот раз не было. Подскажите где мне копать.
 

nikolz

Well-known member
Все равно не подключается NODEMCU к wi-fi сети
Код программы для Arduino Uno:
Код:
#define ENA 7        // Включить обороты переднего правого двигателя
#define ENB 8        // Включить обороты заднего правого двигателя

#define IN1  11            // L298N in 1 Передний правый мотор
#define IN2  10            // L298N in 2 Передний правый мотор
#define IN3  9            // L298N in 3 Задний правый мотор
#define IN4  6            // L298N in 4 Задний правый мотор

int command;                   // Int to store app command state.
int speedCar = 100;         // 50 - 255.
int speed_Coeff = 4;

void setup()
{
      pinMode(ENA, OUTPUT);
      pinMode(ENB, OUTPUT);
    pinMode(IN1, OUTPUT);
    pinMode(IN2, OUTPUT);
    pinMode(IN3, OUTPUT);
    pinMode(IN4, OUTPUT);
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, LOW);
  digitalWrite(IN3, LOW);
  digitalWrite(IN4, LOW);
    Serial.begin(9600);

  }

void goAhead(){

      digitalWrite(IN1, HIGH);
      digitalWrite(IN2, LOW);
        analogWrite(ENA, speedCar);

      digitalWrite(IN3, LOW);
      digitalWrite(IN4, HIGH);
        analogWrite(ENB, speedCar);

  }

void goBack(){

      digitalWrite(IN1, LOW);
      digitalWrite(IN2, HIGH);
        analogWrite(ENA, speedCar);


      digitalWrite(IN3, HIGH);
      digitalWrite(IN4, LOW);
        analogWrite(ENB, speedCar);

  }

void goRight(){

      digitalWrite(IN1, LOW);
      digitalWrite(IN2, HIGH);
        analogWrite(ENA, speedCar);


      digitalWrite(IN3, HIGH);
      digitalWrite(IN4, LOW);
        analogWrite(ENB, speedCar);

  }

void goLeft(){

      digitalWrite(IN1, HIGH);
      digitalWrite(IN2, LOW);
        analogWrite(ENA, speedCar);


      digitalWrite(IN3, LOW);
      digitalWrite(IN4, HIGH);
        analogWrite(ENB, speedCar);
    
  }

void goAheadRight(){
  
      digitalWrite(IN1, HIGH);
      digitalWrite(IN2, LOW);
      analogWrite(ENA, speedCar/speed_Coeff);

      digitalWrite(IN3, LOW);
      digitalWrite(IN4, HIGH);
      analogWrite(ENB, speedCar/speed_Coeff);
  }

void goAheadLeft(){
  
      digitalWrite(IN1, HIGH);
      digitalWrite(IN2, LOW);
      analogWrite(ENA, speedCar);

      digitalWrite(IN3, LOW);
      digitalWrite(IN4, HIGH);
      analogWrite(ENB, speedCar);
  }

void goBackRight(){

      digitalWrite(IN1, LOW);
      digitalWrite(IN2, HIGH);
      analogWrite(ENA, speedCar/speed_Coeff);


      digitalWrite(IN3, HIGH);
      digitalWrite(IN4, LOW);
      analogWrite(ENB, speedCar/speed_Coeff);

  }

void goBackLeft(){

      digitalWrite(IN1, LOW);
      digitalWrite(IN2, HIGH);
      analogWrite(ENA, speedCar);


      digitalWrite(IN3, HIGH);
      digitalWrite(IN4, LOW);
      analogWrite(ENB, speedCar);

  }

void stopRobot(){

      digitalWrite(IN1, LOW);
      digitalWrite(IN2, LOW);
        analogWrite(ENA, speedCar);


      digitalWrite(IN3, LOW);
      digitalWrite(IN4, LOW);
        analogWrite(ENB, speedCar);
  }
 
void loop(){
 
if (Serial.available() > 0) {
    command = Serial.read();

switch (command) {
case 'F':goAhead();break;
case 'B':goBack();break;
case 'L':goLeft();break;
case 'R':goRight();break;
case 'I':goAheadRight();break;
case 'G':goAheadLeft();break;
case 'J':goBackRight();break;
case 'H':goBackLeft();break;
case '0':speedCar = 100;break;
case '1':speedCar = 120;break;
case '2':speedCar = 135;break;
case '3':speedCar = 155;break;
case '4':speedCar = 170;break;
case '5':speedCar = 185;break;
case '6':speedCar = 195;break;
case '7':speedCar = 215;break;
case '8':speedCar = 235;break;
case '9':speedCar = 255;break;
case 'S':stopRobot();break;

}
}
}
И код программы для NODEMCU:
Код:
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
const char* ssid = "RobotMCU";
const char* password = "379931sbmc";
ESP8266WebServer server(80);
void setup() {
  Serial.begin(115200);
// Connecting WiFi
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.mode(WIFI_AP); // Задаем режим работы WIFI_AP_STA (клиент)
WiFi.begin(ssid, password); // Подключаемся
while (WiFi.status() != WL_CONNECTED) // Ждем пока статус не станет WL_CONNECTED
{
delay(500);
}
Serial.println("WiFi connected");
Serial.print("IP address: ");
Serial.println(WiFi.localIP()); // показывает наше IP
// Starting WEB-server
     server.on ( "/", HTTP_handleRoot );
     server.onNotFound ( HTTP_handleRoot );
     server.begin();
}
void loop() {
    server.handleClient();
}
void HTTP_handleRoot(void) {
if( server.hasArg("State") ){
       Serial.println(server.arg("State"));
  }
  server.send ( 200, "text/html", "" );
  delay(1);
}
Пины RX(GPIO3) и TX(GPIO1) nodeMCU, подключаю к выходам Arduino Uno TX>>RX, RX>>TX.
Когда пытаюсь с телефона подключиться к сети Robot_car пишет подключено, но без доступа к сети. Ошибок при загрузке и компиляции в этот раз не было. Подскажите где мне копать.
что означает - без доступа к сети?
т е по логину и паролю подключились или нет?
если вы задали AP то к вам будут подключатся а не вы
если задали станция то вы должны подключиться к домашней сети
и потом передавать или принимать в ней.
 

Volt-Amper

New member
что означает - без доступа к сети?
т е по логину и паролю подключились или нет?
если вы задали AP то к вам будут подключатся а не вы
если задали станция то вы должны подключиться к домашней сети
и потом передавать или принимать в ней.
Т.е. я попробовал подключить Wi-Fi NodeMCU через плату Arduino Uno, проблема в том что RX TX не передают данные. NodeMCU подключился к Wi-fi через Arduino, с Arduino взял питание для NodeMCU, а сама передача по TX и RX не работает , я подключаю все через Sensor Shield v5.0, теперь хочу спаять провода и подключить минуя это шилд напрямую к Arduino Uno. Шилд отдельно не запитывается, а просто воткнут в Arduino Uno и питается от него.
 

Volt-Amper

New member
Программа Fritizing не работает, схему хотел там набросать. Схема такая:
Arduino Uno pins:
D11 - IN1(от L298N);
D10 - IN2(от L298N);
D9 - IN3(ОТ L298N);
D6 - IN4(от L298N);

NODEMCU pins:
VIN >> VIN(Arduino UNO);
GND >> GND(Arduino Uno);
RX >> TX(Arduino Uno);
TX >> TX(Arduino Uno);
Больше ничего не подключено. Питание L298N от двух 18650 к выходу +12В, и от него же питание для Arduino Uno.
 

Volt-Amper

New member
Не пойму как задействовать RX и TX на Arduino Uno и NODEMCU, потому-что скетчей для RX и TX не нашёл. При подаче питания на Arduino Uno, должны вроде моргать TX и RX вроде, светодиод L светится. Как проверить работу RX и TX в NODEMCU и Arduino Uno?
 

Volt-Amper

New member
Скорость сериалов должна быть одинаковая.
Нет не помогает, выставил одинаковую скорость 115200 у Arduino Uno и NODEMCU.
Покажите на схеме типа такой,

что куда подключили
Как сохранить во Fritizing файл в формате jpg или другие, программа сохраняет только во .fzz, схему нарисовал.
 
Сверху Снизу