COM-Server
eigentlich "RS-232 over
Ethernet"
mit
Arduino Nano

Die chaotische Entwicklungsumgebung:
Schaltung (Prinzipschaltbild):
Das Ethernet-Modul darf nicht direkt am 3V3-Ausgang des Arduino Nano
angeschlossen werden (entgegen anderen Angaben im Internet).
Dieser Ausgang liefert max. 50mA! Das Modul braucht bis zu 180mA!
Deswegen habe ich einen eigenen 3V3-LDO-Regler spendiert.
Da der China-Nachbau anstelle einer Schottky-Diode eine billige Siliziumdiode eingebaut hat, bricht die Spannung
bei Belastung auf unter 4V zusammen. Daher die Lösung mit dem separaten USB-Anschluss.
/*
* ENC28J60 based TCP server
* at 192.168.1.99 on port 23 (Telnet).
*/
#include <SPI.h>
#include <UIPEthernet.h>
// network configuration. gateway and subnet are optional.
// the media access control (ethernet hardware) address for the shield:
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
//the IP address for the shield:
byte ip[] = { 192, 168, 1, 99 };
// the router's gateway address:
byte gateway[] = { 10, 0, 0, 1 };
// the subnet:
byte subnet[] = { 255, 255, 255, 0 };
// telnet defaults to port 23
EthernetServer server = EthernetServer(23);
void setup()
{
Serial.begin(2400, SERIAL_8N2);
Serial.setTimeout(100);
// initialize the ethernet device
Ethernet.begin(mac,ip);
// start listening for clients
server.begin();
}
void loop()
{
// if an incoming client connects, there will be bytes available to read:
EthernetClient client = server.available();
if (client == true) {
// liest Daten aus der seriellen Schnittstelle falls vorhanden
// und schicke sie an den Client
if (Serial.available() > 0) {
client.print(Serial.readString());
}
// schicke vom Client empfangene Daten auf die serielle Schnittstelle
// das funktioniert super
Serial.write(client.read());
}
}
Besucherzähler Versteckt