Arduino – die neusten Beiträge

Wie messe ich das aktuelle Drehmoment, das an einem Gleichstrommotor wirkt?

Hallo zusammen

Ich möchte gerne einen Motorregler mit einem Gleichstrommotor machen. Man kann sich vorstellen, dass sich am Motor eine Seiltrommel befindet und es wird am Seil gezogen. Das Ziel ist es die Kraft, welche am Seil wirkt, zu regeln. Es gibt 3 Zustände:

- Am Seil wird fest gezogen und der Motor muss abwickeln um die Kraft beizubehalten

- Das Seil wird fest gehalten, aber es bewegt sich nicht. Der Motor dreht zwar nicht, aber es wirkt ein Gegenmoment um die Kraft im Seil zu erhalten.

- Am Seil wird zu wenig gezogen und der Motor wickelt das Seil auf, um die Kraft im Seil zu erhalten.

Nun möchte ich das realisieren. Meine Regelgrösse ist ja das Motordrehmoment. Im Fall 1 und 3 kann man das ja berechnen, in dem man die Drehzahl und die Leistung oder den Strom am Motor misst (können das Motorsteuergeräte?). Dann wäre die Formel ja F = R×I² / (w×r). w ist omega, die Winkelgeschwindigkeit und r der Radius der Seiltrommel. So könnte man ja den Stromregeln und somit auch F regeln. Bei einem Regelkreis würde es ja durch die positive oder negative Stellgrösse automatisch ein auf- oder abwickeln geben. Wie sieht das aber nun im Fall aus, wenn das Seil sich nicht bewegt? (Fall 2). Dann wäre Omegs ja 0 und man würde durch 0 teilen. Aber man kann ja auch dann ein Drehmoment auf den Motor geben, das entgegen haltet. Wie rechnet man in diesem Fall das Bremsmoment des Motors (Gegenmoment) aus, wenn der Motor gar nicht dreht? Und für Fall 1 und 3, misst ein Motordrive / shield den Strom, damit man den zum regeln nutzen kann? Würde das dann mit einem Arduino und einem PID Regler regeln. Die Drehzahl und Winkelgeschwindigkeit könnte ich über einen Encoder ermitteln.

Leistung, Elektronik, Strom, Elektromotor, Kraft, Elektrotechnik, Wissenschaft, Spannung, Motor, Arduino, Automation, Elektrizität, Engineering, Ingenieur, Mechatronik, Physik, Regelung, Widerstand, Drehmoment

Interrupt im Programmablaufplan?

Hey, ich muss gerade für NWT einen PAP zeichnen.in dem Programm kommt auch der interrupt- Befehl vor. Ich weiß aber nicht wie genau ich ihn in den PAP einbauen soll. Der Interrupt-Befehl kommt im setup vor fällt er dann also unter start, so wie die ganzen Deklaration zum Beispiel auch? Wie würdet ihr das machen? Wohin geht der Pfeil dann nieder zurück vom unterprogramm?
meine Idee war diese hier (grobe Skizze, Befehle sind noch nicht eingetragen):

Das Programm hierzu ist übrigens das:

int warteZeit = 500;     
int versagtZeit = 0;
int tasterStatus;
int tasterPin = 2;
int Pin;
int Signal = 0;
int startZeit = 500;
int LED1 = 4;
int LED2 = 5;
int LED3 = 6;
int LED4 = 7;
int LED5 = 8;
int DurchgangsZaehler = 0;

void setup() {
 pinMode(tasterPin, INPUT_PULLUP);         
 pinMode(LED1, OUTPUT);                    
 pinMode(LED2, OUTPUT);
 pinMode(LED3, OUTPUT);
 pinMode(LED4, OUTPUT);
 pinMode(LED5, OUTPUT);
 Serial.begin(9600);                       
 attachInterrupt(digitalPinToInterrupt(tasterPin), tempo, FALLING);     
}

void loop() {
  for ( Pin = LED1; Pin < LED5; Pin++) {  
   digitalWrite(Pin, HIGH);                    
   delay(warteZeit);                         
   digitalWrite(Pin, LOW);                     
   if (Signal == 1) {                       
    for (DurchgangsZaehler = 0; DurchgangsZaehler < 3; DurchgangsZaehler++) { 
     digitalWrite(LED1, HIGH);                
     digitalWrite(LED2, HIGH);
     digitalWrite(LED3, HIGH);
     digitalWrite(LED4, HIGH);
     digitalWrite(LED5, HIGH);
     delay(200);                              
     digitalWrite(LED1, LOW);                
     digitalWrite(LED2, LOW);
     digitalWrite(LED3, LOW);
     digitalWrite(LED4, LOW);
     digitalWrite(LED5, LOW);
     delay(200);                              
    }

    Signal = 0;                              
    warteZeit=startZeit;                       
  }
 }
 for ( Pin = LED5; Pin > LED1; Pin--) {                         
 digitalWrite(Pin,HIGH);
delay(warteZeit);                                                                                      digitalWrite(Pin, LOW);                                       
    if (Signal == 1) {                                          
   for (DurchgangsZaehler = 0; DurchgangsZaehler < 3; DurchgangsZaehler++) {  
     digitalWrite(LED1, HIGH);                                   
     digitalWrite(LED2, HIGH);
     digitalWrite(LED3, HIGH);
     digitalWrite(LED4, HIGH);
     digitalWrite(LED5, HIGH);
     delay(200);                                                
     digitalWrite(LED1, LOW);                                    
     digitalWrite(LED2, LOW);
     digitalWrite(LED3, LOW);
     digitalWrite(LED4, LOW);
     digitalWrite(LED5, LOW);
     delay(200);                                                 
   }
   Signal = 0;                                                   
   warteZeit=startZeit;                                         
  }
 }
 Serial.print("Wartezeit=");                                   
 Serial.println(warteZeit);
}
void tempo() {                                                  
if (digitalRead(tasterPin) == 0 && Pin == 6) {                  
   warteZeit = warteZeit - 50;                                  
   Serial.print("Richtig gedrückt, Wartezeit beträgt nun ");   
   Serial.print(warteZeit);
   Serial.println(" Millisekunden");
 }
 else {                                                       
   Signal = 1;                                                 
}
}

Danke schonmal, falls ihr trotz dieser langen Frage antwortet

Bild zum Beitrag
Cplusplus, Arduino, NWT, Programmiersprache, C (Programmiersprache), PAP, nwt-projekt, Arduino Uno, Arduino IDE

Infrarotfernbedienung mit Arduino kopieren?

Hi,

da die Fernbedienung meiner Klimaanlage in letzter Zeit immer häufiger den Geist aufgibt und ich sie auch gerne übers Wlan ansteuern würde, bin ich gerade dabei eine Ersatzfernbedienung mit einem Arduino UNO (später rüste ich auf einen ESP32 auf) zu bauen. Hierfür habe ich mithilfe des (Arduino) IR Reveivers und der IRLib2 libary, die Rohdaten des Fernbedienungssignals zum An- und Ausschalten der Klimaanlage ausgelesen und gespeichert.

Das Signal sieht folgendermaßen aus (in verkürzter Version):

#define RAW_DATA_LEN 100

uint16_t rawData[RAW_DATA_LEN]={

6342, 3218, 390, 886, 390, 886, 390, 2158, 514, 2038, 514, 1000};

Anschließend habe ich eine Schaltung mit einer IR LED, einem P2N2222A Transistor, 2 Widerständen und meinem Arduino Uno aufgebaut um das Signal senden zu können.

Da die Klimaanlage nicht angesprungen ist, hab ich meinen IR Receiver an einen zweiten Arduino UNO angeschlossen, um zu testen ob das IR Signal von Arduino 1 empfangen wird.

Obwohl die Länge bei jedem Test 100 entspricht, weichen die empfangenen Werte sehr stark von den gesendeten ab (zb 600 statt 6000) und nur jedes zwanzigste mal kommen ungefähr die richtigen Werte an.

Also habe ich das ganze mit der Fernbedienung meines Bose Soundtouch Lautsprechers probiert (mit einer Rohdaten Länge von nur 36) und nicht nur Arduino 2 hat die richtigen Rohdaten erhalten, sondern ich war auch in der Lage, meine Bose Box an- und ausschalten zu können.

Ich habe schon viel versucht aber bis jetzt habe ich noch keine funktionierende Lösung gefunden und hoffe daher, dass einer von euch eine Lösung für mein kleines Problem hat (ich tippe auf einen Fehlerhaften Code).

Vielen Dank im Voraus,

Sneax

(Senden des Signals an meine Bose Box)

(Empfangen von IR Signalen)

Bild zum Beitrag
PC, Computer, Lampe, Elektrik, Licht, Elektrotechnik, Mikrocontroller, Spannung, Arduino, Elektrizität, LED, Mikroelektronik, Schaltung, Widerstand, Transistor, Arduino Uno, Arduino Nano, Arduino IDE, ESP32

Wie kann ich mehrere Elektromotoren mit einem programmierbaren Board/Controller steuern?

Hallo alle zusammen,

Ich würde gerne diesen Motor (Adafruit DC Gearbox Motor) mit irgendeiner Form von programmierbarem Board oder Controller steuern. Am liebsten wäre mir tatsächlich ein Raspberry Pi, da ich a) sowohl einen RPi 3 als auch RPi 5 bereits habe und ich b) dann das Ganze dann vermutlich auch relativ einfach über WLAN/Internet ansteuern könnte. Mit Arduinos o.ä. habe ich bisher nicht wirklich gearbeitet, wäre aber auch kein Problem, mich damit auseinanderzusetzen.

Genauer möchte ich bis zu 6 dieser Motoren individuell ansteuern können. Wenn es gleichzeitig gehen würde, wäre das optimal, aber falls das die Sache verkompliziert, kann ich sie auch jeweils nacheinander laufen lassen, das wäre für meine Anwendung kein Problem.

Vereinfacht dargestellt, will ich sowas ähnlich einen Süßigkeitenautomat bauen, das heißt jeder Motor würde ein Produkt ausgeben. Deshalb fände ich auch einen Raspberry Pi am praktischsten, da ich da ja relativ einfach ein Display, eventuell sogar mit Touchscreen, dranhängen könnte, um den Automaten zu bedienen.

Allerdings weiß ich nicht wirklich, was ich brauche, um das mit einem RPi zu realisieren. Ich habe in den Shops schon viele verschiedene Hats und Motortreiber gesehen, weiß aber nicht wirklich, was ich für meine Anwendung tatsächlich bräuchte.

Am wichtigsten sind wie gesagt die Motoren, "nice-to-have" wäre es, wenn ich auch noch Taster oder Potentiometer verwenden könnte. Das Gerät über einen Screen zu bedienen wäre natürlich ausreichend, aber echte Knöpfe oder Drehregler wären nochmal etwas cooler.

Vielen Dank im Vorraus!

Elektromotor, Mikrocontroller, Arduino, Raspberry Pi

Leuchtbumerang - Aufbau und Komponenten?

Projektidee: regelbares Licht in einem Bumerang

Ich werfe seit vielen Jahren Bumerang und seit einiger Zeit bau ich sie auch selbst.

Auf dem Weg einen Bumerang zu bauen der auch im Dunkeln funktioniert habe ich von Wunderkerzen und Mini-Knicklichtern über fluoreszierende Materialien und Mini LED aus dem Angelsport bis hin zu batteriebetriebenen LED mit Magnetschalter schon ein paar leuchtende Bumerangs gebaut, die durchaus gute Flugeigenschaften haben.

Langzeitbelichtung - Bumerangflug

Mein Ziel ist nun aber ein steuerbares Licht einzubauen bei dem man Farbe, Helligkeit und eventuell auch verschiedene Effekte regeln kann. Da es sich um ein Wurfgerät handelt, muss alles batteriebetrieben werden.

Ob es mit SP110e über Bluetooth oder über eingebaute Membran-Folientasten oder über wlan mit esp32 und wled gesteuert wird ist nicht ausschlaggebend.

Wichtig ist die Funktionalität und Vielseitigkeit der Steuerung.

Dafür suche ich nach Ideen für den Aufbau bzw. die Schaltung und benötige auch euere Erfahrung welche die geeigneten Komponenten sind. Dabei ist die Stromversorgung auch ein nicht ganz einfach zu lösender Faktor. Am liebsten wäre mir eine Lösung bei der Akku-Monozellen direkt geladen werden könnten ohne sie rausnehmen zu müssen.

Dem ganzen sind gewichtstechnisch Grenzen gesetzt aber es ist davon auszugehen das 6xMonozelle CR 2032 (bzw. die Akkuvariante IL2032) + ein ca. 40cm LED Streifen oder 4x neopixel ring 8 + ein Controller und Kabel auf jeden Fall machbar sind. Jedes Einzelteil darf höchstens 5mm hoch sein und eine Fläche von ca. 5x5cm nicht überschreiten.

Alles so klein wie möglich.
Wie das alles in dem Bumerang verbaut wird ist nicht die Frage, sonder was soll ich verbauen.

Wie baue ich das ganze am besten auf und welche Einzelkomponenten schlägt die Community vor?

Ich würde mich sehr über spannende Ideen der Umsetzung freuen.

Bild zum Beitrag
Elektronik, Licht, Spannung, Arduino, LED, Schaltung, Raspberry Pi, ESP32

Arduino RFID reader mit Timer?

Ich habe folgendes Problem, ich versuche eine maschine in arduino zu bauen, welche die zeit misst wo keine RFID karte auf dem reader liegt. Nun habe ich aber folgendes Problem, wenn ich die karte auflege wird der Timer schon gesartet, dieser soll aber erst gesartet werden, wenn der user die karte vom reader entpfernt. kann mir da jemand helfen.

#include <SPI.h>
#include <MFRC522.h>


#define SS_PIN D4  // SDA Pin (Slave Select)
#define RST_PIN D3 // Reset Pin


MFRC522 mfrc522(SS_PIN, RST_PIN);  // RFID-Instanz


unsigned long startTime;
bool timerActive = false;
bool cardDetected = false;


void setup() {
  Serial.begin(115200);  // Initialisiere die serielle Kommunikation
  SPI.begin();           // Initialisiere den SPI-Bus
  mfrc522.PCD_Init();   // Initialisiere den RFID-Leser


  Serial.println("RFID-Leser bereit. Halten Sie eine Karte an den Leser.");
}


void loop() {
  bool cardPresent = mfrc522.PICC_IsNewCardPresent();
  
  if (cardPresent) {
    if (mfrc522.PICC_ReadCardSerial()) {
      // Karte wird erkannt
      if (timerActive) {
        // Timer stoppen und Zeit ausgeben
        unsigned long elapsedTime = millis() - startTime;
        Serial.print("Zeit gemessen: ");
        Serial.print(elapsedTime);
        Serial.println(" ms");
        timerActive = false;  // Timer zurücksetzen
      }
      cardDetected = true; // Karte wurde erkannt
      mfrc522.PICC_HaltA();  // Halt das Leseverfahren
      mfrc522.PCD_StopCrypto1();
    }
  } else {
    // Wenn keine Karte mehr vorhanden ist
    if (cardDetected && !timerActive) {
      // Timer starten, wenn der Timer nicht aktiv ist
      startTime = millis();
      timerActive = true;
      Serial.println("Timer gestartet.");
    }
    cardDetected = false; // Karte wurde entfernt
  }
}


Computer, Elektrik, Arduino, Elektrizität, Schaltung, Arduino Uno, ESP8266, Arduino IDE

IR Sensor mit Arduino Nano?

Hi, ich hab mir einen Arduino nano zugelegt um damit ein kleines Auto mit paar Sensoren und Aktoren zu betreiben.

Ich hab mir zur Hinderniserkennung IR Sensoren gekauft (Link unten) diese funktionen mit folgendem Code auch so wie sie sollen mit meinem Arduino Uno R3. Hierfür habe ich die einzelnen Sensoren direkt an 3,3V, GND und dem Arduino pin angeschlossen.

int sensorPin = 2;

int sensorValue = 0;

void setup() {

 Serial.begin(9600);

 pinMode(sensorPin, INPUT);

}

void loop() {

 sensorValue = digitalRead(sensorPin);

 if (sensorValue == LOW) {

  Serial.println("Hindernis erkannt!");

 } else {

  Serial.println("Kein Hindernis.");

 }

 delay(500);

}

Wenn ich nun den Nano abänder anschließe funktioniert der Sensor nicht mehr.

Ich benutze die Arduino IDE und habe als ich den Nano angeschlossen nur den USB Anschluss geändert (muss ich hier villt noch etwas anderes ändern?).

Weiß jemand wo das Problem liegen könnte?

Hinderniserkennung IR Sensoren:

https://www.ebay.de/itm/174942182964?_nkw=4+Kanal+IR+Infrarot+Tracking+Sensor+Modul+-+Hindernisserkennung+f%C3%BCr+Smart+Car&itmmeta=01J79NGC6KKJ439FSTJ9GG99QT&hash=item28bb5dde34:g:5TkAAOSwbLRjD1yt&itmprp=enc%3AAQAJAAABMHoV3kP08IDx%2BKZ9MfhVJKmC%2BPVC644mrcLgtwu5qPGjT1WwbPKL1n9u5px2XO2JuR83QNbwP1BuCqzHOZQzE%2BpO%2FwcR8C3YkZyWkMqbCX9WOTPRueH5JMxyq%2FqCbJqgj%2BMP%2FVdpjXVrh3tzWdZ7UsNYUIrsBNzkkdXK7lpfXju9zNJJJZg7%2FbvYnoASrwTAfg%2FwWH7cGK4pPb%2BVN6wLOajIwAXGuxxM1flqu30XY%2F1584jTCKZ--05Lu471fI%2FX%2FYcnjaIuVY%2Bhi9eLqUAd2L%2FiwKwQwz8HfLosxRffuNm5wUKa0HLwKc%2Bh%2Fk6xeeKJ0DX3b1ar%2BOYa%2BuCYAhZ28efA3oeQqgIaRDpzHeN%2Fy9ehTJDgysBu4kqMO4sOd9QwgWbI8hpnmaKgiqZ%2B8VhbD0k%3D%7Ctkp%3ABFBMuMPBtbpk&edge=1

Elektrotechnik, Mikrocontroller, Arduino, Schaltung, Sensor, Arduino Uno, Arduino IDE

Warum funktioniert mein Arduino Code nicht?

Ich möchte mit einem Sensor einen Sound abspielen und wenn der Sensor ausgeht, soll ein Verabschiedungssound gespielt werden.

Ich benutze Arduino Nano und DfPlayer Mini.

Es wird kein Sound abgespielt.

Danke im Voraus.

Der Code lautet:

#include <SoftwareSerial.h>
#include <DFRobotDFPlayerMini.h>

// DFPlayer Mini setup
SoftwareSerial mySoftwareSerial(2, 3); // RX, TX for DFPlayer Mini
DFRobotDFPlayerMini dfPlayer;

const int seatMatPin = 7; // Pin connected to seat occupancy mat
bool wasSeated = false;

void setup()
{
  // Start serial communication for debugging
  Serial.begin(9600); // Start serial communication at 9600 baud rate

  // Initialize serial for DFPlayer Mini
  mySoftwareSerial.begin(9600);

  // Try to start DFPlayer Mini
  if (!dfPlayer.begin(mySoftwareSerial)) {
    Serial.println("DFPlayer Mini konnte nicht gestartet werden."); // Print error message
    while (true); // Stop execution here if DFPlayer Mini fails to start
  }

  Serial.println("DFPlayer Mini bereit."); // Print success message

  // Initialize seat mat pin
  pinMode(seatMatPin, INPUT_PULLUP); // Assuming mat signal is active LOW
}

void loop()
{
  // Read seat mat state
  bool isSeated = digitalRead(seatMatPin) == LOW; // LOW means seat is occupied

  if (isSeated && !wasSeated) {
    // Seat was just occupied
    Serial.println("Sitz wurde besetzt. Begrüßungsmelodie abspielen."); // Print message
    dfPlayer.play(1); // Play greeting sound
    wasSeated = true;
  }
  else if (!isSeated && wasSeated) {
    // Seat was just vacated
    Serial.println("Sitz wurde verlassen. Verabschiedungsmelodie abspielen."); // Print message
    dfPlayer.play(2); // Play farewell sound
    wasSeated = false;
  }

  delay(100); // Small delay for stability
}
Arduino, Code, Programmiersprache, Arduino Nano, Arduino IDE

Fehlermeldung Esp8266 01?

Wenn ich versuche über Arduino das Programm auf die Esp zu spielen bekomme ich folgende Fehlermeldung: A fatal esptool.py error occured: Failed to Connect to ESP8266: Invalid Head of packen (0×72)

Hier ist der Code den ich benutze:

#define BLYNK_TEMPLATE_ID "steht drinne"

#define BLYNK_TEMPLATE_NAME "Bot1"

#include <Arduino.h>

#include <ESP8266WiFi.h>

#include <BlynkSimpleEsp8266.h>

#include "fauxmoESP.h"

#include <Servo.h>

// Dein Blynk-Auth-Code

char auth[] = "code steht drinne";

// Deine WLAN SSID und Passwort

char WIFI_SSID[] = "MagentaWLAN-43FZ";

char WIFI_PASS[] = "Passwort steht drinne";

// Initialisierung des Servo und fauxmoESP

Servo servo;

fauxmoESP fauxmo;

// Blynk-Steuerungslogik für virtuellen Pin V1

BLYNK_WRITE(V1) {

if (param.asInt() == 1) {

servo.write(0);

delay(500);

servo.write(70);

}

}

// Blynk-Steuerungslogik für virtuellen Pin V2

BLYNK_WRITE(V2) {

if (param.asInt() == 2) {

servo.write(70);

} else if (param.asInt() == 3) {

servo.write(0);

}

}

// WLAN-Verbindung einrichten

void wifiSetup() {

WiFi.mode(WIFI_STA);

WiFi.begin(WIFI_SSID, WIFI_PASS);

while (WiFi.status() != WL_CONNECTED) {

delay(100);

}

}

// Setup-Funktion, die einmal beim Start ausgeführt wird

void setup() {

servo.attach(0); // Servo an GPIO0 anschließen

Serial.begin(115200);

Blynk.begin(auth, WIFI_SSID, WIFI_PASS);

wifiSetup();

// fauxmoESP-Einstellungen

fauxmo.addDevice("Bot1");

fauxmo.setPort(80);

fauxmo.enable(true);

fauxmo.onSetState([](unsigned char device_id, const char * device_name, bool state, unsigned char value) {

if (state) {

servo.write(0);

} else {

servo.write(70);

}

});

}

// Loop-Funktion, die wiederholt ausgeführt wird

void loop() {

fauxmo.handle();

Blynk.run();

}

Bild zum Beitrag
Elektronik, Arduino, ESP8266

Arduino Uno Wifi Rev.2 verbindet sich nicht mit dem Internet?

Ich versuche meinen Arduino Uno Wifi Rev.2 mit dem WLAN zu verbinden. Der Code (Beispiel Code WiFi Nina ConnectWithWPA) lässt sich kompilieren und hochladen, keine Fehlermeldung. Alle "Werte" (Passwort, SSID) stimmen. Der Arduino hat die neuste Firmware. Wenn das Programm dann aber hochgeladen ist, entsteht eine Endlosschleife, in der der Arduino immer wieder "Attempting to connect to WPA SSID: XXXXXX" ausgibt, er sich aber nicht mit dem WLAN verbindet, da er sonst "You´re connected with the network" ausgeben würde.

Danke schonmal für eure Hilfe

Mein Code:
/*
 This example connects to an unencrypted WiFi network.
 Then it prints the MAC address of the WiFi module,
 the IP address obtained, and other network details.


 created 13 July 2010
 by dlf (Metodo2 srl)
 modified 31 May 2012
 by Tom Igoe
 */
#include <SPI.h>
#include <WiFiNINA.h>


#include "arduino_secrets.h" 
///////please enter your sensitive data in the Secret tab/arduino_secrets.h
char ssid[] = SECRET_SSID;        // your network SSID (name)
char pass[] = SECRET_PASS;    // your network password (use for WPA, or use as key for WEP)
int status = WL_IDLE_STATUS;     // the WiFi radio's status


void setup() {
  //Initialize serial and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }


  // check for the WiFi module:
  if (WiFi.status() == WL_NO_MODULE) {
    Serial.println("Communication with WiFi module failed!");
    // don't continue
    while (true);
  }


  String fv = WiFi.firmwareVersion();
  if (fv < WIFI_FIRMWARE_LATEST_VERSION) {
    Serial.println("Please upgrade the firmware");
  }


  // attempt to connect to WiFi network:
  while (status != WL_CONNECTED) {
    Serial.print("Attempting to connect to WPA SSID: ");
    Serial.println(ssid);
    // Connect to WPA/WPA2 network:
    status = WiFi.begin(ssid, pass);


    // wait 10 seconds for connection:
    delay(10000);
  }


  // you're connected now, so print out the data:
  Serial.print("You're connected to the network");
  printCurrentNet();
  printWifiData();


}


void loop() {
  // check the network connection once every 10 seconds:
  delay(10000);
  printCurrentNet();
}


void printWifiData() {
  // print your board's IP address:
  IPAddress ip = WiFi.localIP();
  Serial.print("IP Address: ");
  Serial.println(ip);
  Serial.println(ip);


  // print your MAC address:
  byte mac[6];
  WiFi.macAddress(mac);
  Serial.print("MAC address: ");
  printMacAddress(mac);
}


void printCurrentNet() {
  // print the SSID of the network you're attached to:
  Serial.print("SSID: ");
  Serial.println(WiFi.SSID());


  // print the MAC address of the router you're attached to:
  byte bssid[6];
  WiFi.BSSID(bssid);
  Serial.print("BSSID: ");
  printMacAddress(bssid);


  // print the received signal strength:
  long rssi = WiFi.RSSI();
  Serial.print("signal strength (RSSI):");
  Serial.println(rssi);


  // print the encryption type:
  byte encryption = WiFi.encryptionType();
  Serial.print("Encryption Type:");
  Serial.println(encryption, HEX);
  Serial.println();
}


void printMacAddress(byte mac[]) {
  for (int i = 5; i >= 0; i--) {
    if (mac[i] < 16) {
      Serial.print("0");
    }
    Serial.print(mac[i], HEX);
    if (i > 0) {
      Serial.print(":");
    }
  }
  Serial.println();
}
WLAN, Arduino, C (Programmiersprache)

Meistgelesene Beiträge zum Thema Arduino