Hallo Leute, habe meine alten versuche mit ESP8266 über Board geworfen, weil ich nicht weiter kam.
Nun habe ich ein Ethernet Schield W5100 bekommen und habe auch dazu im Internet ein Ketch gefunden
/**
* Ethernet shield attached to pins 10, 11, 12, 13
*/
#include <SPI.h>
#include <Ethernet.h>
// MAC address (printed on a sticker on the shield)
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
// IPAddress server(74, 125, 232, 128); // numeric IP (no DNS = reduce sketch size)
char server[] = "elektro.turanis.de"; // name address (using DNS)
// Static IP address to use if the DHCP fails to assign (find out in your router)
IPAddress ip(192, 168, 0, 177);
EthernetClient client;
void setup()
{
Serial.begin(9600);
if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP");
// try to congifure using IP address instead of DHCP:
Ethernet.begin(mac, ip);
}
// waiting for initialize
delay(1000);
Serial.println("Connecting...");
if (client.connect(server, 80)) {
Serial.println("OK");
client.println("GET / HTTP/1.1");
client.println("Host: " + String(server));
client.println("Connection: close");
client.println();
} else {
// if you didn't get a connection to the server:
Serial.println("FAILED!");
}
}
void loop()
{
// available incoming bytes from the server
if (client.available()) {
char c = client.read();
Serial.print(c);
}
// if the server is disconnected, stop the client
if (!client.connected()) {
Serial.println();
Serial.println("disconnecting.");
client.stop();
while (true);
}
}
Sketch überprüft und hochgeladen, Serielen Monitor aufgerufen hipp hipp hurra es läuft.
da ich auch einen Mifare Reader habe, habe ich etwas testen wollen, wie ich nach Chip etwas bewegen kann ( Stepper ( 28BYJ-48 ( ULN2003 ))) . In der beschreibung zum Sketch beim Stepper hätte erdieser die selben Pins wie der Reader genutzt, da ich die Pins nicht doppelt belegen wollte fand ich das in einer bestimmten Datei ich die Pins umbelegen kann, sketch überprüft und hoch geladen, und alles klappt, Belegt sind folgende Pins, Stepper Motor 7, 6, 5, 4, 5V, GND und für Reader 3,3V, GND, 9, 10, 11, 12, 13
Auszug aus CheapStepper.cpp
#include "Arduino.h"
#include "CheapStepper.h"
CheapStepper::CheapStepper () : pins({7,6,5,4}) {
for (int pin=0; pin<4; pin++){
pinMode(pins[pin], OUTPUT);
}
}
#include <SPI.h> // SPI-Bibiothek hinzufügen
#include <MFRC522.h> // RFID-Bibiothek hinzufügen
#define SS_PIN 10 // SDA an Pin 10 (bei MEGA anders)
#define RST_PIN 9 // RST an Pin 9 (bei MEGA anders)
MFRC522 mfrc522(SS_PIN, RST_PIN); // RFID-Empfänger benennen
#include <CheapStepper.h>
CheapStepper stepper;
boolean moveClockwise = true;
String LCard ="24623024560";
String RCard ="319916927";
String MCard ="137226219179";
void setup() // Beginn des Setups:
{
Serial.begin(9600); // Serielle Verbindung starten (Monitor)
SPI.begin(); // SPI-Verbindung aufbauen
mfrc522.PCD_Init(); // Initialisierung des RFID-Empfängers
}
void loop()
{
if ( ! mfrc522.PICC_IsNewCardPresent()) // Wenn keine Karte in Reichweite ist...
{
return; // ...springt das Programm zurück vor die if-Schleife, womit sich die Abfrage wiederholt.
}
if ( ! mfrc522.PICC_ReadCardSerial()) // Wenn kein RFID-Sender ausgewählt wurde
{
return; // ...springt das Programm zurück vor die if-Schleife, womit sich die Abfrage wiederholt.
}
String CardID ="";
for (byte i = 0; i < mfrc522.uid.size; i++) {
CardID += mfrc522.uid.uidByte[i];
if( CardID == LCard ){
Serial.println("Card ID = LCard = " + CardID);
for (int s=0; s<4096; s++){
//Eine volle Umdrehung beinhaltet 4096 Schritte
stepper.step(moveClockwise);
}
}
else if( CardID == RCard ) {
Serial.println("Card ID = RCard = " + CardID);
for (int s=0; s<4096; s++){
//Eine volle Umdrehung beinhaltet 4096 Schritte
stepper.step(!moveClockwise);
}
}
else if( CardID == MCard ) {
Serial.println("Card ID = MCard = " + CardID);
for (int s=0; s<4096; s++){
//Eine volle Umdrehung beinhaltet 4096 Schritte
stepper.step(moveClockwise);
}
delay (500);
for (int s=0; s<4096; s++){
//Eine volle Umdrehung beinhaltet 4096 Schritte
stepper.step(!moveClockwise);
}
}
else {
Serial.println("Unbekannt = " + CardID);
}
delay (500);
Serial.print("Weitere Karte");
Serial.print(" ");
}
}
Bevor ich zu sehr ins Details gehe wollte ich mich bei Euch erst mal um Rat bzw Vorabinformation einholen.
Mein Testaufbau war folgendes von unten nach oben:
Arduino Uno 3
Motor Shielt
EthernetShield
Der MotorShielt ist nur als Abstandhalter im Einsatz ( muß mir dan noch ersatz dafür besorgen.
Hardware wo zur Verfügung steht:
AZ-Delivery### Ethernet Shield W5100 mit MicroSD-Karten Slot
Arduino Uno, Arduino AT Mega
Welche Kombination ist zu Empfehlen,
Uno und Ethernet
oder AT Mega und Ethernet
Wenn möglich eine Pinbelegung mit geben umd Sketch kümmer ich mich später, Step bei Step.
Plan ist es immer noch meinen Raspberry mit MFRC zu ersetzen.