Arduino und ESP8266 Fehler?

Hi, ich habe den Wifichip an den Arduino angeschlossen, wie hier:

Ich habe die Bibliotheken importiert und als Board auch bei Tools > Board > ESP8266 > Arduino gewählt. Wenn ich aber diesen Code hochlade :

#include <Adafruit_NeoPixel.h>
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>


#define NUM_STRIPS 5
#define LED_PER_STRIP 60


const char* ssid = "#######";
const char* password = "########";


Adafruit_NeoPixel strips[NUM_STRIPS];
ESP8266WebServer server(80);


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


  // WLAN-Verbindung herstellen
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Verbindung zum WLAN herstellen...");
  }
  Serial.println("Verbunden mit WLAN");


  // Lichtstreifen initialisieren
  int stripPins[NUM_STRIPS] = {2, 3, 4, 5, 6}; // An Ihre Verkabelung anpassen



  for (int i = 0; i < NUM_STRIPS; i++) {
    strips[i] = Adafruit_NeoPixel(LED_PER_STRIP, stripPins[i]);
    strips[i].begin();
    strips[i].show();
  }


  // Webserver-Routen festlegen
  server.on("/", HTTP_GET, handleRoot);
  server.on("/led/on", HTTP_GET, handleLedOn);
  server.on("/led/off", HTTP_GET, handleLedOff);
  server.on("/led/color", HTTP_GET, handleLedColor);
  server.on("/led/brightness", HTTP_GET, handleLedBrightness);


  server.begin();
  Serial.println("Webserver gestartet");
}


void loop() {
  server.handleClient();
}


void handleRoot() {
  server.send(200, "text/html", "Willkommen bei der Lichtstreifen-Steuerung");
}


void handleLedOn() {
  int stripIndex = server.arg("strip").toInt();
  if (stripIndex >= 0 && stripIndex < NUM_STRIPS) {
    strips[stripIndex].fill(strips[stripIndex].Color(255, 255, 255));
    strips[stripIndex].show();
    server.send(200, "text/plain", "Lichtstreifen eingeschaltet");
  } else {
    server.send(400, "text/plain", "Ungültiger Streifenindex");
  }
}


void handleLedOff() {
  int stripIndex = server.arg("strip").toInt();
  if (stripIndex >= 0 && stripIndex < NUM_STRIPS) {
    strips[stripIndex].clear();
    strips[stripIndex].show();
    server.send(200, "text/plain", "Lichtstreifen ausgeschaltet");
  } else {
    server.send(400, "text/plain", "Ungültiger Streifenindex");
  }
}


void handleLedColor() {
  int stripIndex = server.arg("strip").toInt();
  int r = server.arg("R").toInt();
  int g = server.arg("G").toInt();
  int b = server.arg("B").toInt();


  if (stripIndex >= 0 && stripIndex < NUM_STRIPS) {
    strips[stripIndex].fill(strips[stripIndex].Color(r, g, b));
    strips[stripIndex].show();
    server.send(200, "text/plain", "Lichtfarbe aktualisiert");
  } else {
    server.send(400, "text/plain", "Ungültiger Streifenindex");
  }
}


void handleLedBrightness() {
  int stripIndex = server.arg("strip").toInt();
  int brightness = server.arg("brightness").toInt();


  if (stripIndex >= 0 && stripIndex < NUM_STRIPS) {
    strips[stripIndex].setBrightness(brightness);
    strips[stripIndex].show();
    server.send(200, "text/plain", "Helligkeit aktualisiert");
  } else {
    server.send(400, "text/plain", "Ungültiger Streifenindex");
  }
  }

Kommt immer diese Fehlermeldung:

. Variables and constants in RAM (global, static), used 29040 / 80192 bytes (36%)
║   SEGMENT  BYTES    DESCRIPTION
╠══ DATA     1504     initialized variables
╠══ RODATA   1320     constants       
╚══ BSS      26216    zeroed variables
. Instruction RAM (IRAM_ATTR, ICACHE_RAM_ATTR), used 60527 / 65536 bytes (92%)
║   SEGMENT  BYTES    DESCRIPTION
╠══ ICACHE   32768    reserved space for flash instruction cache
╚══ IRAM     27759    code in IRAM    
. Code in flash (default, ICACHE_FLASH_ATTR), used 271296 / 1048576 bytes (25%)
║   SEGMENT  BYTES    DESCRIPTION
╚══ IROM     271296   code in flash   
esptool.py v3.0
Serial port COM3
Connecting........_____....._____....._____....._____....._____....._____....._____


A fatal esptool.py error occurred: Failed to connect to ESP8266: Timed out waiting for packet header

Ich habe es auch schon versucht mit den Anschluss Flash in GND beim Arduino, hilf aber nicht

Weiß jemand was ich tun kann?

Vg Tmm

Bild zu Frage
Fehler, programmieren, Arduino, Script, Platine, ESP8266, Arduino IDE
WLED LED Leiste über 10 Meter anschließen?

Hallo,

ich möchte ein Paar LED Leisten in meiner Schreibtischnähe anbringen und habe einige Fragen an euch.

1. Ein Netzsteil, welches über 40A schafft

2. Ein Kontroller, ESP8266

3. Die LED Leiste WS2812B (18W per Meter, 90W per 5 Meter)

Da wollte ich fragen ob 10 m LED (ggfs später mehr mit einem Netzteil mit mind über 60A) über den einen Kontroller laufen können oder ob ich mehrere benutzen muss die ich ans selbe Netzteil anschließe. Dazu möchte ich das Programm WLED dafür nutzen und wollte Fragen ob man dort Problemlos mehrere Kontroller steuern kann.

Ich bedanke mich jetzt schon mal für eure Hilfe

Mit freundlichen Grüßen

Jan

Elektrik, Kabel, Licht, Spannung, Elektrizität, LED, ESP8266
ESP8266 mit OLED Display?

Ich habe ein ESP8266 Developer Board, und möchte damit ein OLED-Display steuern (.94", 128x64px).

Ich finde nur Tutorials für Displays mit einem I2C-Protokoll, da hat das Display die Pins GND, VCC, SCL und SDA. Ich habe die Pins GND, VDD, SCK und SDA.

Laut meiner Recherche ist das ein SPI-Protokoll. Wenn ich dafür nach Tutorials suche, finde ich nur welche für Displays mit 6 Pins.

Mein Code (von einem I2C Tutorial) benutzt die Adafruit SDD1306 Library, keine Ahnung ob die nur mit I2C oder auch mit ISP funktioniert.

Wenn ich mit einem I2C Scanner die Screen Address suche, findet es das Display nicht.

Meine Schaltung:

OLED GND --> Chip GND

OLED VDD --> Chip 3V3

OLED SCK --> Digital IO 1

OLED SDA --> Digital IO 2

Kann ich einfach die ISP Adresse in den Code einfügen, und wenn ja wie finde ich diese? Oder brauch ich ganz anderen Code / Schaltung?

Code:

 #include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>


#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels


// Declaration for SSD1306 display connected using I2C
#define OLED_RESET     -1 // Reset pin
#define SCREEN_ADDRESS 0x3C
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);


void setup() {
  Serial.begin(9600);
  display.clearDisplay(); //Clear
  
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(0,28);
  display.println("Hello world!");
  display.display();
  delay(2000);
}


void loop() {
  delay(1000);
}

Display (Ich weiß dass die Schutzfolie noch drauf ist):

Bild zu Frage
Display, Technik, programmieren, Arduino, ISP, ESP8266
ESP8266-12F mit MPU6050?

Hallo, ich versuche gerade mit einem ESP-12F einen MPU6050 auszulesen. Der Sensor ist über IO04 und IO05 angeschlossen. Mit einem i2c Scanner wurde dieser auch erkannt mit der Adresse 0x68. Wenn ich den Sensor nun auslesen möchte, bekomme ich nur 0en oder -1en ausgegeben für Lage und Beschleunigung. Anderen Sensor und esp habe ich bereits ausprobiert.

Auf dem Bild der Aufbau. Ich benutze einen Programmiersockel für die ESPs.

Hier der Code:

#include <Wire.h>

const int MPU_addr = 0x68;

int16_t Acc_rawX, Acc_rawY, Acc_rawZ, Tmp, Gyr_rawX, Gyr_rawY, Gyr_rawZ;

void setup() {
  delay(1000);
  Wire.begin();
  Wire.beginTransmission(MPU_addr);
  Wire.write(0x6B);
  Wire.write(0);
  Wire.endTransmission(true);
  Serial.begin(115200);
}

void loop() {
  Wire.beginTransmission(MPU_addr);
  Wire.write(0x3B);
  Wire.endTransmission(false);
  Wire.requestFrom(MPU_addr, 14, true);

  Acc_rawX = Wire.read() << 8 | Wire.read();
  Acc_rawY = Wire.read() << 8 | Wire.read();
  Acc_rawZ = Wire.read() << 8 | Wire.read();
  Tmp = Wire.read() << 8 | Wire.read();
  Gyr_rawX = Wire.read() << 8 | Wire.read();
  Gyr_rawY = Wire.read() << 8 | Wire.read();
  Gyr_rawZ = Wire.read() << 8 | Wire.read();

  Serial.print (Acc_rawX);
  Serial.print (" ");
  Serial.print (Acc_rawY);
  Serial.print (" ");
  Serial.print (Acc_rawZ);
  Serial.print (" ");
  Serial.print (Gyr_rawX);
  Serial.print (" ");
  Serial.print (Gyr_rawY);
  Serial.print (" ");
  Serial.println (Gyr_rawZ);
}
Bild zu Frage
Arduino, I2C, ESP8266
mehrere Funktionen mit einem Taster ausführen?

Hallo

Ich möchte, dass ich wenn ich den Taster 1x drücke, die LEDs Weiss sind und wenn ich ihn 2x drücke, dass sie z.B. Blau sind. Wie kann ich so etwas machen?

Ich habe den Code, damit sie weiss sind schon einmal. Doch wie kann ich bei 2x drücken eine Funktion ausführen?



#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif




int tasterPin = 5; //taster an pin5






#define PIN        4 // An welchem Pin ist die LED angeschlossen


#define NUMPIXELS 60 // Anzahl LEDs




Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);


#define DELAYVAL 30 // Definiert, dass die Variabel DELAYVAL 30millisekunden pause bedeutet




void setup() {


  //
  Serial.begin(115200);
  Serial.println();
  Serial.println("ESP gestartet");


  pinMode(tasterPin, INPUT_PULLUP);
  //




  //einstellungen für LEDs
#if defined(__AVR_ATtiny85__) && (F_CPU == 16000000)
  clock_prescale_set(clock_div_1);
#endif
  // nur, falls man eine externe energiequelle hat


  pixels.setBrightness(255); // Helligkeit auf 50 - höchster wert : 255
  pixels.begin();
}
//einstellungen für LEDs ende


void loop() {




  if (digitalRead(tasterPin) == LOW) {
    Serial.println("Status: Taster Gedrückt");
    Serial.println("Effekt wird abgespielt...");
    delay(100);


    pixels.clear(); // Schaltet alle Pixel auf "OFF"


    for (int i = 0; i < NUMPIXELS; i++) { // Für jede LED...


      //Das ist ein RGB LED streifen das R steht für ROT G = Grün und B = Blau
      pixels.setPixelColor(i, pixels.Color(255, 255, 255));


      pixels.show();   // Sendet die geänderten LED farben zum LED Streifen (neue Farbe)


      delay(DELAYVAL); //pause
    } //...


    //
    delay(30000); //30000 Millisekunden weiss (wartet 10000 Millisekunden)
    //


    for (int i = 0; i < NUMPIXELS; i++) { // Für jede LED...


      pixels.setPixelColor(i, pixels.Color(0, 0, 0));


      pixels.show();


      delay(DELAYVAL); // Pause bevor es neu startet


    }


  } else {
    Serial.println("Status: Taster nicht Gedrückt");
    delay(100);
  }




}//...

Danke für die Antworten :)

LG

Computer, Technik, Elektronik, programmieren, Arduino, Technologie, taster, ESP8266, Spiele und Gaming, Arduino IDE
NodeMCU V3 - ESP8266 Crash?

Hallo, ich versuche derzeit einen Schrittmotor mit einem A4988 Treiber zum laufen zu bekommen.

Als der ESP bei Libarys wie dem AccelStepper versagte, habe ich erst mal folgendenen simplen Code versucht:

#define DIR 12
#define STEP 14

void setup(){
  pinMode(DIR,OUTPUT);
  pinMode(STEP,OUTPUT);
}
 void loop(){
  digitalWrite(DIR,HIGH);
  for(int x=0;x<1000;x++){
    digitalWrite(STEP,HIGH);
    delayMicroseconds(5000);
    digitalWrite(STEP,LOW);
    delayMicroseconds(5000);
  }
  delay(1000);
  digitalWrite(DIR,LOW);
  for(int x=0;x<1000;x++){
    digitalWrite(STEP,HIGH);
    delayMicroseconds(5000);
    digitalWrite(STEP,LOW);
    delayMicroseconds(5000);
  }
  delay(1000);
 }

Keinerlei Libarys, nur direkte digitalWrite calls, doch der ESP crasht immer wieder mit folgender Message im 115200 Baud:


 ets Jan  8 2013,rst cause:2, boot mode:(3,6)
 
load 0x4010f000, len 3460, room 16  
tail 4
chksum 0xcc
load 0x3fff20b8, len 40, room 4  
tail 4
chksum 0xc9
csum 0xc9
v00040bf0
~ld

Woran könnte das denn liegen? Zumal das ohne Libarys und bei einfachen Systemaufrufen passiert... Bei Libarys passiert das gleiche.

Ich habe schon versucht:
  • Alle Pins vom NodeMCU "frei" machen, nur USB zum Rechner
  • Einen anderen NodeMCU um einen Defekt auszuschließen
  • Einen simplen Sketch welcher "Test" in die Serielle Konsole schreibt funktioniert

Danke!

Computer, Technik, Arduino, Technologie, ESP8266, Spiele und Gaming
Welche Fähigkeiten hat der Wemo D1 (Mini) im Vergleich zum Arduino und welche Möglichkeiten bietet das W-Lan?

Hallo,

ich habe mich hier angemeldet, da ich mich für das Basteln mit Elektronik-Entwickler-Boards interessiere, aber mich nicht wirklich gut auskenne. Bisher habe ich ich einige Arduinos, und bin zufällig auf den ESP8266, bzw. auf die Wemos-Produkte gestoßen. Grundsätzlich bin ich mit Arduino voll zufrieden, aber wenn ich eine Funkübertragung herstellen möchte, ist das damit ein relativ großer Aufwand (bzw. teuer), da man bei den häufig empfohlenen Funkmodulen oft einen Level-Shifter benötigt, oder die Platinen mit eingebautem Shifter mit 20 Euro pro Stück für mich zu teuer sind. (Mit den billigen 433Mhz-Modulen habe ich schlechte Erfahrungen gemacht).

Erste Frage zum Vergleich mit dem Arduino: Ich würde gerne vorhandene Hardware, wie z.B. ein 20x4 oder 16x2 Display verwenden, kann ich das genauso am Wemos D1 Mini anschließen? In Beispielen sehe ich sonst immer nur grafische Displays...

Und zum Funk: Ich möchte gerne einfache Daten zwischen zwei Geräten verschicken, z.B. zwischen zwei Wemos oder einem Wemos und einem Raspberry Pi. Müssen beide Geräte an einem gemeinsamen W-Lan Router angemeldet sein, oder kann man eine direkte Verbindung zwischen den beiden Devices herstellen (ähnlich wie eine Verbindung zwischen einem Smartphone und einer Kamera möglich ist)?

Computer, WLAN, Technik, Elektronik, Arduino, Funk, Raspberry Pi, ESP8266

Meistgelesene Fragen zum Thema ESP8266