Tag 3: UDP-Send

In dem heutigen Projekt werden zum ersten Mal Daten zwischen Board und PC über das WLAN ausgetauscht. Voraussetzung dafür ist, dass Ihr Rechner über einen WLAN-Adapter verfügt. Es wird das sogenannte UDP (User Datagram Protocol) verwendet. Ein weiteres Programm auf der PC Seite sorgt für das erfolgreiche Empfangen der Nachrichten.

Hinter dem dritten Türchen des Kalenders finden Sie ein isoliertes Kabel das für den Aufbau von Schaltungen unerlässlich ist. Als Vorbereitung für spätere Versuche können Sie die Versorgungsleitungen Masse und VCC auf die äußeren Bahnen legen.

Die Versorgungsleitungen auf den äußeren Bahnen

Die Versorgungsleitungen auf den äußeren Bahnen

Das Programm: Day3_UPDBasics

Wenn Sie das Programm auf den Controller laden, wird der Controller als AccesPoint konfiguriert und Sie sollten ein offenes Netzwerk mit dem Namen NanoESP sehen. Bevor Sie sich allerdings mit dem Netzwerk verbinden, sollten Sie zunächst noch ein Programm aus dem Internet downloaden. Bei meinen Versuchen habe ich das Programm Packet Sender von Dan Nagle verwendet, welches Sie unter diesem Link downloaden können:

https://packetsender.com/

Nach dem Laden und Installieren des Programms können Sie nun Ihren PC mit dem offenen Netzwerk des NanoESP verbinden. Achten Sie darauf, dass die Firewall das Netzwerk als Heimnetzwerk erkennt, damit keine Daten geblockt werden. Ihr Rechner sollte nun die IP 192.168.4.2 bekommen haben. Sie können dies überprüfen, indem Sie den AT-Befehl

AT+CWLIF

über den Seriellen Monitor an das Modul senden. Dieser Befehl zeigt alle mit dem AccesPoint verbundenen Rechner mit IP und MAC-Adresse an.

Nun starten Sie das Packet Sender Programm und stellen unter Settings->Network den UDP Server Port auf 90 und klicken die Checkbox „Enable UDP Server“ an. In der Regel sollte unten links dann UDP:90 stehen. Falls nicht müssen Sie die Software einmal neu starten.

Einstellungen im Packet Sender

Einstellungen im Packet Sender

! Achtung: Einige MAC-Nutzer berichten von einem Bug in dem PackerSender-Programm, welcher nicht erlaubt, die Ports umzustellen. Es gibt allerings auch die Möglichkeit die Ports in dem Arduino Programm zu verändern. Falls das Problem auftritt, müssen Sie für den heutigen Versuch die Zeile 55 von
succes &= sendCom(„AT+CIPSTART=\“UDP\“,\“192.168.4.2\“,90″, „OK“); //UDP-Server
in
succes &= sendCom(„AT+CIPSTART=\“UDP\“,\“192.168.4.2\“,55005″, „OK“); //UDP-Server
umändern.

Das Programm auf dem Rechner dient nun als UDP Server, während der Controller als UDP Client eingestellt ist. Im UDP-Protokoll ist die Unterscheidung Client Server nicht eindeutig, aber in diesem Fall bedeute dies, dass Sie mit dem Controller Daten an Ihren Rechner schicken.

Um Daten zu senden verwenden Sie den Befehl

AT+CIPSEND=7

Wobei die 7 für die Anzahl der zu sendenden Zeichen steht. Es erscheint das Zeichen > als Rückgabewert. Dies bedeutet, Sie können nun Ihre Nachricht übermitteln. Tippen Sie hello ein und bestätigen Sie wieder mit Enter. Als Rückgabewert sendet das Modul SEND OK, und das obwohl Sie nur 5 Zeichen eingegeben haben. Das liegt daran, dass nach Ihrer Eingabe noch Carriage Return und New Line mit gesendet werden, also zwei Zeichen mehr, die Sie in Ihre Nachrichtenlänge mit einkalkulieren müssen.

Verwendung des CIPSEND-Befehls

Verwendung des CIPSEND-Befehls

Wenn Sie nun wieder zum Paket Sender wechseln und dort unter Traffic Log schauen, können Sie den Eingang der Nachricht sehen. In der ASCII-Ansicht sehen Sie sogar die beiden mitgesendet Zeichen repräsentiert durch \r und \n. Die erste Kommunikation zwischen Board und PC über das WLAN war also ein Erfolg.

Die Nachricht wurde vom Packet Sender Programm empfangen

Die Nachricht wurde vom Packet Sender Programm empfangen

108 Kommentare

  1. Ralf

    Ich habe wahrscheinlich einen Denkfehler, ich komme nicht weiter.
    Also mein Nano ist mit dem Programm Tag 3 geladen. Das WLAN steht und ein Laptop (nicht mein Rechner) ist mit dem Nano verbunden, der Packetsender installiert und konfiguriert (Port 90).
    Jetzt habe ich auf dem Seriellen Monitor die Ok-Meldungen für AP und UDP und sende einen Befehl wie AT+CWLIF. Jetzt erwarte ich die Meldung der IP des verbundenen WLAN-Rechners. (IP-192.168.4.2.)

    Ich bekomme keine Rückmeldung vom Nano. Was habe ich falsch gemacht?

    Kommt die Rückmeldung vom Nano oder vom Packetsender des WLAN-Rechners?

    1. fk (Beitrag Autor)

      Hi, die at-befehle können nur über den serielle Monitor gesendet und empfangen werden. Benutzt du bewusst die Beispiele aus dem letzten Jahr?

  2. Michael

    Hallo,

    woher kommt der Port 14299 bei „From Port“ im Screenshot des PacketSenders http://iot.fkainka.de/wp-content/uploads/2015/09/Day3-5.jpeg oben hier auf dieser Seite? Im Quellcode wird dieser Port nirgends eingestellt?

    1. Klaus

      Jedes Datenpaket bei TCP besitzt eine Quell-IP, eine Ziel-IP, einen Quell-Port und einen Ziel-Port. Als Quell-IP wird die eigene IP eingesetzt, als Ziel-IP die IP des Empfängers. Als Ziel-Port wird der Port des Dienstes beim Empfänger eingesetzt. Beim Quell-Port gibt es 2 verschiedene Möglichkeiten. Entweder es wird ein fester Port eingetragen (dieser darf aber von keiner anderen Anwendung bereits belegt sein) oder es wird einfach per Zufallsgenerator ein Port gewählt. Bei der nächsten Verbindung kann dann ein völlig anderer Port gewählt werden.
      Genau das ist hier passiert. Der ESP hat sich einfach per Zufallsgenerator einen Port gewählt, von dem aus das Paket gesendet wurde. An exakt diesen Port muss nun die Antwort zurück gesendet werden. Wenn Du also einen Server programmierst, musst Du den Quellport der ankommenden Anfrage ermitteln und die Antwort an diesen Port zurück senden.

      ich hoffe, dass ich damit die Zusamenhänge etwas klarer machen konnte. Das Thema IP-Kommunikation ist recht komplex.

  3. Ed

    Hallo! Ich weiß es ist etwas spät aber als ich nicht mehr weiterwusste hab ich den Kalender erstmal ruhen gelassen. Der cipsend-Befehl funktioniert nicht… („Link is not valid“) ich hoffe auf baldige Antwort und frohe Weihnachten an alle.

  4. Dubst3pg4m3r

    Bei mir kommt leider kein Hallo im PacetSender an, und der Port im Programm lässt sich auch nicht umstellen, er springt immer auf 55005 zurück. Ausserdem muss der NanoESP doch immer über usb verbunden sein oder?!
    Kann man den Seriellen Monitor auch über das WLAN verwenden?! Bitte um Hilfe!
    LG

  5. Tom

    Ich kam die letzten Tage nicht zum Basteln und muss nun aufholen ;)

    Ich kann sagen, das Rumtüfteln macht wirklich Spass und man lernt noch was.

    Habs jetzt geschafft, am Laptop (WLAN) den UDP Text zu empfangen, den ich vom PC (via USB) versandt habe :)

  6. RICI

    Nach den Laden werden 2 ICMP Nachrichten ausgetauscht das sieht ok aus. (type 8 Echo(ping request) antwort ping reply
    Dann per Monitor Hallo via UDP auch ok.

    Wenn man denn den ESP weiter laufen lässt. gibt es ständig ICMP Error MSGs
    Es werden von 192.168.4.2 nach 192.168.4.1 weiter ICMP geschickt (bzw von 192.168.4.1 nach 192.168.4.2
    mit dem Ergebnis „Destination unreachable (port Unreachable)“
    Gibt es für diese permaneten Error MSGs eine Erlärung ?

    Ich kann weiter ohne Problem noch mal „Hallo“ per UDP send. Es funktinoniert also alles. wie am Day3 geplant.

  7. Doc

    Eigentlich hat alles funktioniert. Doch jetzt geht gar nixhts mehr. Wenn ich di Ports umstellen möchte kommt die Meldung:
    Arduino: 1.6.5 (Mac OS X), Platine: „Arduino Nano, ATmega328“

    Day3_UPDBasics:55: error: stray ‚\‘ in program
    Day3_UPDBasics:55: error: stray ‚\‘ in program
    Day3_UPDBasics:55: error: stray ‚\‘ in program
    Day3_UPDBasics:55: error: stray ‚\‘ in program
    Day3_UPDBasics:55: error: stray ‚\‘ in program
    Day3_UPDBasics:55: error: stray ‚\‘ in program
    Day3_UPDBasics:55: error: stray ‚\‘ in program
    Day3_UPDBasics:55: error: too many decimal points in number
    Day3_UPDBasics:55: error: stray ‚\‘ in program
    Day3_UPDBasics:55: error: stray ‚\‘ in program
    Day3_UPDBasics:55: error: stray ‚\‘ in program
    Day3_UPDBasics:55: error: stray ‚\‘ in program
    Day3_UPDBasics:55: error: stray ‚\‘ in program
    Day3_UPDBasics.ino: In function ‚boolean configUDP()‘:
    Day3_UPDBasics:55: error: ‚u201eAT‘ was not declared in this scope
    Day3_UPDBasics:55: error: ‚CIPSTART‘ was not declared in this scope
    Day3_UPDBasics:55: error: ‚u201cUDP‘ was not declared in this scope
    Day3_UPDBasics:55: error: ‚u201c192‘ was not declared in this scope
    Day3_UPDBasics:55: error: expected ‚)‘ before ‚u2033‘
    Day3_UPDBasics:55: error: ‚u201eOK‘ was not declared in this scope
    stray ‚\‘ in program

    Dieser Report hätte mehr Informationen mit
    „Ausführliche Ausgabe während der Kompilierung“
    aktiviert in Datei > Einstellungen

  8. Patrick

    Ich bin bereits am Tag 3 gescheitert. Kann an Packetsender nichts senden. Kommt nichts an. Verwende Linux Ubuntu. Schade das wars dann wohl.

    1. Martin

      Hi Patrick,

      hab das gleiche Problem. Ich bekomme den Packetsender unter Linux Lubuntu auch nicht zum laufen. Der Bug, dass der Port nicht umgestellt werden kann, ist auch in der Linux-Version. Aber selbst die Umstellung im Code auf Port 55005 hat bei mir nichts bewirkt.

      Ich hab mir den Packetsender auf meinen Windows-Rechner installiert und arbeite jetzt mit zwei Rechnern. Unter Linux läuft die Arduino IDE und auf meinem Windows Rechner der PacketSender.

      Ich hab mir auf mein Android-Handy die App UDP Sender geladen. Mit der kann man zumindest senden. Funktioniert auch gut.

      Bin an Tag 3 auch ziemlich verzweifelt aber als es dann mal lief gings bis Tag 5 schnell durch.

    2. General Overnight

      Wenn du Ubuntu (oder ein anderes Linux bzw. Unix, z.B. Mac OS X) nutzt, brauchst du den Packetsender gar nicht. Ich empfehle dir folgende Vorgehensweise:

      1. Mach ein Terminalfenster auf in dem du als root eingeloggt bist (Ich gehe mal davon aus, du weißt wie, ansonsten nochmal fragen)

      2. gib den Befehl ifconfig ein. Er sollte dir im Standardfall drei mehrzeilige Einträge zurückliefern:

      eth0: dein kabelgebundenes Netzwerk-Interface, das dich mit dem Internet verbindet.

      lo: das Loopback-Interface, ein Pseudo-Interface, über das du mit deinem eigenen Rechner Kommunizieren kannst.

      wlan0: Dein WLAN-Interface. Wenn du hier die IP-Adresse 192.168.4.2 siehst, hat die Verbindung mit dem nanoESP schon funktioniert.

      3. Rufe das Kommando iptables -L auf. Wenn es dir mehr als die folgenden 8 Zeilen zurückliefert, ist eine Firewall aktiv und blockt evtl. die UDP-Pakete.

      —8<————————————————–
      # iptables -L
      Chain INPUT (policy ACCEPT)
      target prot opt source destination

      Chain FORWARD (policy ACCEPT)
      target prot opt source destination

      Chain OUTPUT (policy ACCEPT)
      target prot opt source destination
      —8<————————————————–

      4. a) starte das programm netcat mit dem Kommando

      # nc -lup 90

      Das ist dein Empfänger für die UDP-Pakete

      b) mach ein zweites Root-Terminalfenster auf und starte dort das Kommando

      # tcpdump -lXi wlan0

      Das Programm tcpdump schneidet den gesamten Traffic mit, der (in diesem Fall) über dein WLAN-Interface geht, also auch solche Pakete, für die sich dein Rechner nicht zuständig hält, z.B. weil sie die falsche Empfänger-IP-Adresse haben.

      Jetzt kannst du vom nanoESP senden.

  9. Kai

    Hilfe! Es will einfach nicht :-( Ich bekomme beim Befehl AT immer ERROR zurück. …bei allen AT+…-Befehlen.

    Ich bin Anfänger und google schon eine Ewigkeit herum.

    Beim kompilieren kommen folgende Meldungen (Programmcode ist 100% original und ich habe nichts verändert):

    C:\Users\KFD\Documents\Arduino\Day3_UPDBasics\Day3_UPDBasics.ino: In function ‚void setup()‘:

    C:\Users\KFD\Documents\Arduino\Day3_UPDBasics\Day3_UPDBasics.ino:17:32: warning: deprecated conversion from string constant to ‚char*‘ [-Wwrite-strings]

    if (sendCom(„AT+RST“, „ready“)) {

    ^

    C:\Users\KFD\Documents\Arduino\Day3_UPDBasics\Day3_UPDBasics.ino: In function ‚boolean configAP()‘:

    C:\Users\KFD\Documents\Arduino\Day3_UPDBasics\Day3_UPDBasics.ino:43:41: warning: deprecated conversion from string constant to ‚char*‘ [-Wwrite-strings]

    succes &= (sendCom(„AT+CWMODE=2“, „OK“));

    ^

    C:\Users\KFD\Documents\Arduino\Day3_UPDBasics\Day3_UPDBasics.ino:44:59: warning: deprecated conversion from string constant to ‚char*‘ [-Wwrite-strings]

    succes &= (sendCom(„AT+CWSAP=\“NanoESP\“,\“\“,5,0″, „OK“));

    ^

    C:\Users\KFD\Documents\Arduino\Day3_UPDBasics\Day3_UPDBasics.ino: In function ‚boolean configUDP()‘:

    C:\Users\KFD\Documents\Arduino\Day3_UPDBasics\Day3_UPDBasics.ino:53:42: warning: deprecated conversion from string constant to ‚char*‘ [-Wwrite-strings]

    succes &= (sendCom(„AT+CIPMODE=0“, „OK“));

    ^

    C:\Users\KFD\Documents\Arduino\Day3_UPDBasics\Day3_UPDBasics.ino:54:41: warning: deprecated conversion from string constant to ‚char*‘ [-Wwrite-strings]

    succes &= (sendCom(„AT+CIPMUX=0“, „OK“));

    ^

    C:\Users\KFD\Documents\Arduino\Day3_UPDBasics\Day3_UPDBasics.ino:55:67: warning: deprecated conversion from string constant to ‚char*‘ [-Wwrite-strings]

    succes &= sendCom(„AT+CIPSTART=\“UDP\“,\“192.168.4.2\“,90″, „OK“); //UDP-Server

    ^

    C:\Users\KFD\Documents\Arduino\Day3_UPDBasics\Day3_UPDBasics.ino: In function ‚boolean sendCom(String, char*)‘:

    C:\Users\KFD\Documents\Arduino\Day3_UPDBasics\Day3_UPDBasics.ino:64:41: warning: deprecated conversion from string constant to ‚char*‘ [-Wwrite-strings]

    if (esp8266.findUntil(respond, „ERROR“))

    ^

    C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial\SoftwareSerial.cpp:375:6: warning: always_inline function might not be inlinable [-Wattributes]

    void SoftwareSerial::setRxIntMsk(bool enable)

    ^

    C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial\SoftwareSerial.cpp:121:6: warning: always_inline function might not be inlinable [-Wattributes]

    void SoftwareSerial::recv()

    ^

    Der Sketch verwendet 6.810 Bytes (22%) des Programmspeicherplatzes. Das Maximum sind 30.720 Bytes.
    Globale Variablen verwenden 481 Bytes (23%) des dynamischen Speichers, 1.567 Bytes für lokale Variablen verbleiben. Das Maximum sind 2.048 Bytes.

    1. fk (Beitrag Autor)

      Hi,
      welche Arduino Version benutzt du? Und unter welchem Betriebssystem?

      Das Programm lässt sich aber richtig hochladen aber die Befehle, die du über den Seriellen Monitor sendest geben jedesmal ein Error zurück?

      1. Kai

        Moin,
        ich benutze Arduino 1.6.6 (gerade hierfür erst heruntergeladen und installiert) auf Windows 10.

        Mittlerweile konnte ich herausfinden, dass wenn ich den Seriellen Monitor auf „Sowohl NL als auch CR“ umstelle, es dann zu gehen scheint. So konnte ich auch Tag 5 erfolgreich aufbauen.

        Mich wundern zwar die ganzen Warnungen, aber es funktioniert! Jippie!!

  10. Stefanie

    Ein ganz einfacher Schritt das Einstellen der UDP Ports auf 90 will nicht angenommen werden, sobald ich nach „Ok“-Klicken auf Settings geh, um zu schauen, ob es übernommen wurde, steht dort wieder UDP Port 55005? Woran kann das liegen.

    1. Sascha

      Danke Steffi, ich hab das gleiche Problem ^^ Hast du es gelöst bekommen? Bekomme auf den folgenden Befehl auch einen Error ^^

      1. Stefanie

        Hallo Sascha, bis wohin funktionierts bei dir? Es sollte nachdem du bei Settings auf Port 90 gestellt hast, dann unten links Port 90 stehen habs eingeringerlt (Wenn nicht Packet Sender nochmal neustarten). Dann sollte es eigentlich gehen? Funktioniert nur nicht das Port-Einstellen?
        Du solltest die AT Befehle im Serial Monitor wie am Bild sehen können und auch mit dem Nano verbunden sein? Wo genau steckts bzw. wie siehts bei dir aus?

    2. Sascha

      Sohabs hinbekommen, was in den Settings steht ist egal, funktioniert trotzdem :D

  11. Rainer

    Hallo zusammen,

    mir macht die Bastelei viel Spaß.

    Ein kleiner Tipp für alle, die wie ich unter Linux arbeiten und das Programm Packetsender nicht installieren können/wollen:

    Ich habe 2 ganz kleine Python-Programme gefunden, die sowohl als UDP-Server als auch UDP-Client fungieren können, und zwar hier:
    https://wiki.python.org/moin/UdpCommunication

    Ich würde empfehlen (ähnlich wie bei dem Mac Problem weiter oben) die Ports für die Kommunikation höher zu wählen (ich habe z. B. jetzt die 5500 gewählt), ansonsten müssen die Programme als root ausgeführt werden, was aber nicht wirklich nötig ist.

    Euch allen viel Spaß beim Basteln.

    Gruß Rainer

  12. Roman

    Wenn ich den Befehl AT+CWLIF eingebe kommt gleich ERROR
    Kann mir wer helfen ich kenne mich bei diesen UPD Programm Nüsse aus

    1. Ed

      Du musst dich vorher mit dem nanoESP per WLAN verbinden (cwmode=2) dann hat es zumindest bei mir geklappt.

  13. Lisa

    Ich bin leider nicht nur ein Arduino-Einsteiger, sondern auch kein passionierter Bastler (also eher gar kein Bastler …). Könnte mir jemand erklären, was ich tun muss, um „die Versorgungsleitungen Masse und VCC auf die äußeren Bahnen zu legen“? Das Bild ist nicht wirklich aussagekräftig, wenn man noch nie einen Mikrocontroller in der Hand hatte.

    1. Nikdro

      Wenn du dir das Bild oben genauer anschaust, sind die oberste(X) und unterste(Y) Bahn in der horizontale leitend.
      Die restlichen in der vertikalen (A-E und (F-J).

      Eigentlich gibt es für diese Board schon fertig geschnittene Drahtbrücken.(http://www.ebay.de/itm/Steckbruecken-Set-140-tlg-Drahtbruecken-fuer-Breadboard-Steckplatine-Steckbruecke-/281720518416) Im Adventskalender müssen diese selbst gebaut werden. Dafür einfach den Draht auf die Passende Länge abscheiden, die Enden ab-isolieren und wie auf dem Foto zu sehen einstecken.

      Der Masse-Pin ist mit „GND“ beschriftet. Der VCC mit „5V“

      Sollte noch etwas unklar sein, immer her mit den Fragen :)

      1. Lisa

        Danke! Eigentlich müsste ich’s damit hinbekommen. Ich versuch’s morgen mal – dann weiß ich ob ich auf Dein Angebot zurückkommen muss.

    2. General Overnight

      Nikdro hat die Grundlagen ja schon beschrieben, ein paar zusätzliche Details sind gerade für Anfänger doch noch interressant:

      1. Ein Bild … ;-) Die interne Verdrahtung des Breadboards sieht etwa so aus:

      ———————–X

      |||||||||||||||||||||||
      |||||||||||||||||||||||
      |||||||||||||||||||||||
      |||||||||||||||||||||||
      |||||||||||||||||||||||

      |||||||||||||||||||||||
      |||||||||||||||||||||||
      |||||||||||||||||||||||
      |||||||||||||||||||||||
      |||||||||||||||||||||||

      ———————–Y

      2. Draht schneiden
      ==================

      Zum Abschneiden nutzt man vorzugsweise einen feinen Seitenschneider, da gibt es zwei Varianten

      a) nur für weiche Drähte und Plastikteile beim Modellbau geeignet, aber sehr scharf und scheidet besonders sauber: Z.B. Artikelnr. 314462 bei Völkner für 4,40 € (bei Conrad 8,99)

      b) robustere Seitenschneider sieht aus wie eine Nagelzange zum Schneiden der Fußnägel. Billige Modelle gibts aktuell auch bereits ab knapp 4 €, da bin ich mir aber nicht sicher, ob die stabilere Schneiden haben. Ein gutes Stichwort für die Suche ist Pianodraht.

      Wenn dir die Investition zu viel ist, kannst du aber z.B. auch einen Nagelknipser benutzen.

      Ein Vorteil dieser Werkzeugen gegenüber einer Schere ist, dass du den Draht schräg abschneiden kannst und er dann leichter ins Steckbrett geht.

      3. Abisolieren:
      ===============

      Der Draht sollte ungefähr einen halben Zentimeter abisoliert werden, so weit, dass die Isolierung nicht mehr beim Einstecken stört, aber auch nur so weit, dass der Draht oberhalb des Boards noch isoliert ist. Das ist in einem Bereich von etwa 3-8 mm der Fall.

      Mögliche Vorgehensweisen zum Abisolieren:

      a) Am besten nutzt du eine Abisolierzange. Die stellt (bei richtiger Anwendung) sicher, dass nur die Isolierung durchgeschnitten wird und der Draht unverletzt bleibt – ist aber natürlich auch eine Investition und es gibt zahlreiche unterschiedliche Arten, da ist die Auswahl nicht einfach.

      b) das Abisolieren mit den Zähnen ist zwar sehr schonend für den Draht aber trotzdem nicht zu empfehlen ;-)

      c) Mit Seitenschneider oder Schere, die Isolierung vorsichtig einschneiden, aber nur so weit, dass der Draht unbeschädigt bleibt. Wenn die Isolierung eingeschnitten ist kann man das Schneidwerkzeug noch ein paar mal um jeweils ca. 90° nach rechts und links um den Draht drehen. Dadurch wird die Isolierung ringsum eingeschnitten. Wenn das gelungen ist, lässt sich die Isolierung einfach mit den Fingern abziehen.

      Für das Breadboard brauchst du nur relativ kurze Drahtstücke, da kannst du dir die Hälfte der Abisolierarbeit sparen, wenn du zuerst ein doppelt langes Stück abisolierst, dann den Draht auf der richtigen Länge abschneidest und schließlich die Isolierung auf die Mitte des Drahtstücks schiebst.
      Das geht u.U. leichter, wenn du zuerst die Isolierung festhältst und den Draht darin etwas drehst, sodass er sich löst.

      1. General Overnight

        PS.: der wesentliche Vorteil von Seitenschneidern gegenüber Scheren ist beim Abisolieren, dass die Schneiden mehr oder weniger parallel gegenüber liegen. Dadurch rutscht der Draht nicht so leicht weg wie bei einer Schere.

  14. jens

    sorry, aber dieser adventskalender ist für anfänger unausgereift und wahrscheinlich nur mangelhaft getestet. einen adventskalender schenke ich den kids, die bis weihnachten jeden tag ein WENIG zeit damit verbringen möchten und auch nur können. Wenn das nicht klappt ist das ein riesiges frustpotential. ich hoffe es kommt mehr support.

    1. Nikdro

      Ich bin absolut deiner Meinung. An vielen Stellen könnte die Formulierung genauer sein, sodass diese auch für Neulinge verständlich ist.
      Ich musste meinem Bekannten (angehender Mechatroniker) auch schon mehrfach unter die Arme greifen. Besonders bei der Inbetriebnahme bestand hier großer Nachholbedarf.

      Der Autor dieses Blogs hat aber auch schon auf die vielen Kommentare reagiert:
      http://iot.fkainka.de/tag-1-hinweis-fuer-arduino-neulinge

      1. Hartmut

        Tut mir leid, aber ich kann euch beiden nicht zu 100% zustimmen.
        Klar, der Adventskalender ist nicht für „Anfänger“ geeignet. Man sollte schon wissen, was ein WLAN ist, wie ich mich damit verbinde usw. Ich war aber nicht überrascht, dass auch Kenntnisse der IP Kommunikation notwendig sind, die über „was ist eine IP Adresse“ hinausgehen.

        Nicht zustimmen kann ich aber der Aussage, dass der Kalender unausgereift und mangelhaft getestet ist. Bei mir hat alles auf Anhieb so wie beschrieben funktioniert.

        Zugeben muss ich aber, dass einige Informationen an falscher Stelle stehen. Beisielsweise war mir von Anfang an klar, dass die USB Schnittstelle einen Treiber braucht (und natürlich ein Kabel). Den Treiber habe ich also schon vorher auf dieser Webseite (unter Wifi-Board) gefunden und vor dem Öffnen des ersten Türchens schon installiert. Daher habe ich erst durch die vielen Fragen hier gemerkt, dass diese Information auf Anleitungsheft fehlte.

        Insgesamt bin ich aber hellauf begeistert und muss mich zwingen, dass Teil wieder vom Rechner abzuklemmen.

        1. General Overnight

          Zum Teil stimme ich sowohl dir als auch den ersten beiden Kommentaren zu. Bei einem Adventskalender für ca. 40 Euro kann man nicht unbedingt etwas für Kinder erwarten und das hier benötigte USB-Kabel z.B. ist ja inzwischen bei praktisch jedem Mobilgerät etc. dabei, wobei es allerdings auch reine Ladekabel gibt, die hier unbrauchbar sind.

          Das mit dem Treiber ist aber schon eher Insiderwissen, wobei der Treiber bei meinem Debian zum Standard gehört und automatisch beim Einstecken des Boards geladen wird. Ich hatte allerdings trotz soliden IT-Kenntnissen diverse Startprobleme, speziell waren die Informationen zum Umgang mit der Arduino Software sehr knapp. Aber vor allem war ichetwas enttäuscht, dass auch hier im Blog nur sehr wenig Informationen zur Ersteeinrichtung vorhanden waren. Aber das ist ja inzwischen nachgeholt.

          1. Skayo

            Ich bin 14 Jahre und habe das Arduino Starterkit durchgemacht. Dadurch verstehe ich eigentlich alles und es funktioniert auch alles. Ohne jene helfenden Eltern. Wenn man vor hat diesen Kalender jemanden zu schenken, sollte man wissen ob derjenige sich mit dem Thema auch etwas auskennt. Da kann Conrad nichts dafür! Wenn derjenige noch nie was mit Mircocontrollern gemacht hat, sollte man ihm erst das Arduino Starter Kit besorgen und nicht gleich mal ein Wlan Modul.
            Jegentlich das „Keine Vorkenntnisse benötigt“ sollte man weglassen. Das stimmt. Aber auch wenn das dort steht, sollte man sich darüber informieren.
            mfg

          2. Stefanie

            @Saiko, wo gibts denn so ein Arduino Starterkit? Hättest du da einen Link? LG

          3. Nikdro

            @Stefanie
            Einfach mal bei Amazon schauen :)

          4. Skayo

            @Stefanie
            Ja, einfach auf Amazon schauen.

  15. Jannes

    Ich kam leider erst heute dazu das Programm vom ersten Tag auszuprobieren. Es kommt jedoch eine Fehlermeldung!! :(
    Was heisst das hier??:
    Der Sketch verwendet 3.764 Bytes (11%) des Programmspeicherplatzes. Das Maximum sind 32.256 Bytes.
    Globale Variablen verwenden 317 Bytes (15%) des dynamischen Speichers, 1.731 Bytes für lokale Variablen verbleiben. Das Maximum sind 2.048 Bytes.
    avrdude: ser_open(): can’t open device „\\.\COM1“: Das System kann die angegebene Datei nicht finden.

    1. Roland G. Hülsmann

      Vermutlich hast Du den Treiber für das Board nicht installiert. Das Board liegt ziemlich sicher nicht an COM1. (Bei mir ist es COM3.)
      Schaue mal hier: http://iot.fkainka.de/driver
      Einen Einstieg in das Board findest Du hier: http://iot.fkainka.de/tag-1-hinweis-fuer-arduino-neulinge

    2. Lisa

      Der serielle Port stimmt nicht, es ist mit Sicherheit nicht COM 1. Das kann man unter Tools/ Werkzeuge umstellen.

    3. Jannes

      Dank für eure Tipps hab Port auf com3 gestellt. Jetzt kommt leider nur noch das hier avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
      avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
      avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xe0
      avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xe0
      avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
      avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xe0
      avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xe0
      avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xe0
      avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xe0
      avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xe0

      1. General Overnight

        Das Problem hatte ich auch. Es lag daran, dass im Menü als Board „Arduino Uno“ iengestellt war und verschwand als ich auf „Arduino Nano“ umgestellt habe. Ausserdem musste ich den Prozessor richtig einstellen, auf Atmega328.

  16. Max

    Ich habe echt keinen Plan was ich falsch mache:

    Ich hab meinen PC über WLAN mit den NanoESP verbunden
    Packetsender läuft im UDP auf Port 90
    Ich bekomme die „SEND OK“ Nachricht im Seriellen Monitor

    Nur im PacketSender kommt nix an :/

    Kann mir jemand helfen ?

    1. Nikdro

      Bitte kontrolliere zunächst, ob der richtige Port unten rechts angezeigt wird. Sollte aussehen wie hier: http://blog.ndroste.de/wp-content/uploads/2015/12/packet-sender.jpg

      Kommen dann immer noch keine Pakete an, kann die Konnektivität mit dem seriellen Befehl AT+CWLIF geprüft werden. Hier muss die IP und Mac Adresse deines PCs ausgegeben werden. Ist dies nicht der Fall, bitte erneut mit dem Netzwerk des Arduinos verbinden.

      Unter Umständen blockt auch deine Firewall auf dem Rechner die Pakete ab. Um dies auszuschließen, kannst du diese ja vorübergehend deaktivieren.

      Versuch‘ doch mal und berichte uns hier :) Gemeinsam finden wir schon eine Lösung

      1. Max

        So ich hab das Problem gefunden.

        Bei meinem vorherigen Versuch war zwar alles korrekt eingestellt, aber ich hab vermutlich eine verbuggte Version von Packetsender ;).

        D.h. ich kann den Port nicht umstellen (offenbar gibt es den Bug nicht nur bei Mac-Nutzern, sondern auch unter Win10)

        Also Arduino-Codezeile abgeändert und dann ging’s so wies sollte.

        Danke für deine Hilfe :)

  17. Jens

    FRUST. leider kein erfolg mit packet sender unter ubuntu. in packet sender rechts unten steht der button dauerhaft auf „UDP server disabled“. keinerlei kommunikation möglich.

    1. Benedikt

      Ich habe netcat verwendet:
      sudo nc -l -p 90 -u

  18. Bernhard

    Weiterhin frustriert…..

    Was fange ich mit dieser Meldung an:

    C:\Programme\Arduino\hardware\arduino\avr\libraries\SoftwareSerial\SoftwareSerial.cpp:375:6: warning: always_inline function might not be inlinable [-Wattributes]

    void SoftwareSerial::setRxIntMsk(bool enable)

    ^

    C:\Programme\Arduino\hardware\arduino\avr\libraries\SoftwareSerial\SoftwareSerial.cpp:121:6: warning: always_inline function might not be inlinable [-Wattributes]

    void SoftwareSerial::recv()

    ^

    collect2.exe: fatal error: cannot find ‚ld‘

    compilation terminated.

    exit status 1
    Fehler beim Kompilieren.

    1. Nikdro

      Ist der Code unverändert der aus dem Download?

      Ist die Libary auf dem neusten Stand?
      Lässt sich ganz einfach prüfen: (Sketch->Bibliothek einbinden->Bibliotheken verwalten->Typ:“aktualisierbar“)

      Falls nicht, kannst du diese auch direkt dort updaten und anschließend den Sketch erneut Hochladen.

  19. Santiago

    Hallo Leute,
    Voller Freude öffnete ich das heutige Kalendertürchen…und fand ein Stück Kabel drin! Steckbrücken hätten es doch schon sein können.Immerhin hat der Kalender 50 Euro gekostet, da datf man schon was erwarten. Naja.
    Aber zum heutigen Versuch:
    Bei mir hat alles prima funktioniert. Kleiner Tipp: Lieber die Portable – Version von PacketSender downloaden – die muss nicht installiert werden und ist – wie der Name schon sagt – portabel. Ich finde das sehr praktisch, wäre schon hilfreich, sowas in die Anleitung zu schreiben. Ich persönlich mag es nicht, wenn ich so viele Programme installieren muss.
    Bis jetzt hatte ich keine Probleme mit den Experimenten. Ich finde, für Leute mit Arduino – Vorkenntnissen (wie mich) ist die Anleitung ausreichend ausführlich gestaltet, Neueinsteiger könnten aber Probleme damit haben.
    Bin trotzdem froh, dass ich mich für diesen Kalender entschieden habe.
    LG
    Santiago

  20. XandI

    Hallo!
    Ich habe das Problem, dass bei hinaufladen jedesmal eine Fehlermeldung bezüglich einer Zeile im Programm kommt. Habe ich was falsch gemacht? Das Programm von Tag 1 funktioniert, doch bei Tag 2 und Tag 3 kommt immer eine Fehlermeldung. Ich würde mich auf Antworten freuen.
    LG

    1. fk (Beitrag Autor)

      Hi,
      welche Zeile wird genau beanstandet?
      Es kann sein, dass sich dort aus versehen ein Zeichen eingeschlichen hat.

  21. TB

    Wenn ich AT+CWLIF schreibe dan kommt als antwort nur OK :( was soll ich tun??

    1. Nikdro

      Das Problem hatte ich anfangs auch.
      Bei mir lag es einfach daran, dass der PC nicht korrekt mit dem WLAN verbunden war. Ein erneutes Verbinden hat das Problem bei mir behoben. Check doch mal deine Verbindung am Computer und versuch es mit einer erneuten Verbindung.

      Anschließend sollte AT+CWLIF deine IP und MAC zurück liefern.

  22. Fabian

    Hey,
    ich kann die Nachricht („Hello“) abschicken bekomme auch ein SEND OK aber im Packet Sender sehe ich nix. Port ist eingestellt.

    1. Nikdro

      Wird der Korrekte Port 90 unten rechts im Packet Sender angezeigt? Eventuell musst du das Programm auch nochmal neu starten.

      Bist du auch sicher via WLAN mit dem Arduino verbunden? Check das doch einfach mal mit dem Befehl AT+CWLIF im Seriellen Monitor und teil uns das Ergebnis mit:)

      1. Fabian

        Hey schande über mein Haupt. Hatte die Firewall noch an :-). Jetzt läuft alles. Danke
        Andere Frage: Würde das ganze auch gerne über mein Tablett nutzen. Ist ein Windows Tab. erkennt leider das Board nicht, trotz Treiber :-(

        1. Nikdro

          Welche Windows-Version hast du auf dem Tablet?

          Schau doch einfach mal in den Geräte-Manager und such den Arduino. Als was wird dieser angezeigt? :)

  23. Eric

    Wenn ich alles so mache wie es beschrieben ist, passiert wenn ich da auf senden gehe im PacketSender nichts. habe alles richtig eingestellt und die Windows Firewall ausgestellt. Andere Firewalls gibt es nicht…

    Hat jemand ideen, wie man das beheben kann?

  24. Skyflori14

    Bei mir kommt immer dieser scheiss fehler

    AT+CIPSEND=7

    link is not valid

    ERROR

    Bitte um Hilfe

    1. Raabinator

      Ich kanns zwar hier gerade nicht ausprobieren, aber ‚link is not valid‘ lässt darauf schliessen, dass das Modul keine Verbindung zu einem Netzwerk/Client hat. Je nach dem, welche Version du verwendest, Accesspoint oder Client, solltest du mal nachschauen ob die Verbinderei überhaupt klappt.
      Ist in den Posts oben beschrieben.

    2. Christoph

      hab das gleiche Problem.. Die IP und MAC Adresse wird zurückgegeben aber mit AT+CIPSEND=7 kommt link is not valid Error

    3. Joerg_B

      Ich hatte das gleiche Problem unter Windows 8.1.
      Die Lösung war das Netzwerk NanoESP in die Heimnetzgruppe aufzunehmen und den Zugriff darauf zuzulassen.
      Google bietet gute Infomationen dazu, wenn man die folgenden Suchbegriffe nutzt: „windows 8.1 heimnetzgruppe beitreten“

  25. Kristof
    1. fk (Beitrag Autor)

      Hi,
      the connection you try to establish with the cipstart command hasn’t been succesfull. Therefore the cipsend commands don’T work the the controller says the reason: No Link.

      It seems, that the IP of your board is 192.168.4.2 so you can’t connect to the same IP. You must try to connect to the IP of your PC.

  26. Claus

    Gibt es eine Möglichkeit abzufragen welche IP das Board vom DHCP bekommen hat und die IP über die serielle Schnittstelle auszugeben?

    1. SmenTrick

      Klar:

      AT+CIPSTA?

      incl. Dem Fragezeichen!

      Für den kompletten Befehlssatz:
      https://cdn.sparkfun.com/assets/learn_tutorials/4/0/3/4A-ESP8266__AT_Instruction_Set__EN_v0.30.pdf

      1. Klaus

        Wobei zu bedenken ist, dass diese Doku bereits den Befehlssatz 0.30 beinhaltet (wusste gar nicht, dass es diesen schon gibt). Das Board beinhaltet den Befehlssatz 0.30 (http://4tronix.co.uk/files/ESP8266_AT_Instruction_Set_v0_22.pdf)

  27. jz

    #include SoftwareSerial.h …wurde abgeschnitten Pfeilklammern?

  28. jz

    Super Board, macht Spass, Experimente lehrreich und interessant.
    Anleitung etwas knapp, Ergänzung für Einstieg ist hilfreich.

    Hinweis:
    Mein NanoEsp ist in meinem Gäste-WLAN; musste – natürlich – „guest isolation“ ausschalten!
    (Verbindung zum lokalen Netz zulassen).
    Zum Testen mit Tablet/Smartphone habe ich die App „TCP/UDP Terminal“ gefunden.

    Abhilfe zu Compiler-Warnings:

    #include

    class SoftwareSerialFix : public SoftwareSerial
    {
    public:
    SoftwareSerialFix(uint8_t receivePin, uint8_t transmitPin, bool inverse_logic = false) : SoftwareSerial

    (receivePin, transmitPin, inverse_logic){};
    bool find(const char *target) {return SoftwareSerial::find((char*) target);};
    bool findUntil(const char *target, const char *terminator) {return SoftwareSerial::findUntil((char*) target,

    (char*) terminator);};
    };

    SoftwareSerialFix esp8266(11, 12); // RX, TX

    … weiter unten:

    boolean sendCom(String command, const char respond[])

    … die Stream-Klasse von Arduino sollte angepasst werden!

  29. Jonathan

    Hat geklappt, nicht gleich denn im Heft waren die erforderlichen Einstellungen im PaketSender Prg. nicht so offensichtlich. Im Online Dokument Tag 3 sind aber die Einstellungen zu sehen. Mehr muß im PaketSender nicht eingegeben werden. OK

  30. Klaus

    Klar, Du brauchst nur ein Programm, welches als UDP-Server arbeitet. Das Betriebssystem ist dabei völlig irrelevant. Jedes System, welches TCP/IP beherrscht (können alle geräte die ins Internet kommen) kann verwendet werden.

  31. Sören

    Bei mir kommt eine Fehler-meldung Arduino: 1.6.6 (Mac OS X), Board: „Arduino Nano, ATmega328“

    /var/folders/m4/ll4cbfr14w14g3mq_jy28tp80000gn/T/untitled608067822.tmp/sketch_dec03a/Day3_UPDBasics.ino: In function ‚void setup()‘:
    Day3_UPDBasics:12: error: redefinition of ‚void setup()‘
    void setup() {
    ^
    sketch_dec03a:1: error: ‚void setup()‘ previously defined here
    void setup() {
    ^
    /var/folders/m4/ll4cbfr14w14g3mq_jy28tp80000gn/T/untitled608067822.tmp/sketch_dec03a/Day3_UPDBasics.ino: In function ‚void loop()‘:
    Day3_UPDBasics:29: error: redefinition of ‚void loop()‘
    void loop() {
    ^
    sketch_dec03a:6: error: ‚void loop()‘ previously defined here
    void loop() {
    ^
    exit status 1
    redefinition of ‚void setup()‘

    Was kann/ muss ich machen ?

    1. Sören

      Nach neustart des Programmes geht alles

  32. MartinW

    Packetsender runtergeladen (auf Windows10) aber wenn man die Installations-exe startet passiert nix… ? Geht es jemandem ähnlich? Ideen ?

    1. Tim

      Da das Programm sicherlich für eine ältere Version von Windows geschrieben ist, könnte man Rechtsklick -> „Behandeln von Kompatiblitätsproblemen“ versuchen. Ich habe gerade die Setup Datei gedownloadet um das zu testen, bei mir funktioniert es aber auf Anhieb.

      Ich verwende die portable Version – die funktioniert auch.

    2. MartinW

      Mit etwas Zeit habe ich den Fehler gefunden: Ich hatte Packetsender auf meinem NAS (QNAP TS-212P) und nicht lokal gespeichert. Sowohl die ZIP Variante als auch den Installer. Aus irgendeinem komischen Grund, der wohl nichts mit Packetsender zu tun hat, kann das Programm von dort nicht gestartet werden, sondern nur wenn es lokal auf dem Laptop/PC liegt. Da funzt alles wie beschrieben. Warum der NAS gerade spinnt (denn das ging zuvor) weiss ich zwar nicht, aber wenigestens geht’s jetzt mit dem Adventskalender weiter :-)

  33. Ralf

    Für Linux/BSD-Nutzer: Statt PacketSender kann man auch socat nehmen (als root oder mit sudo).

    socat UDP-LISTEN:90 STDIO

    Netcat/nc geht auch. „nc -lup 90“ oder „nc -lu 90“, je nach Variante.

    1. M

      netcat ist auf allen Unix-Systemen verfügbar, also auch bei Mac OS X. Dort kann man nc als Standardutility im Terminal aufrufen

      > nc -l -u -p 90

      -l: „listen“ also am Port horchen, nicht senden
      -u: UDP (statt TCP)
      -p NUM: Port NUM verwenden

  34. Turnfin

    Ne Frage nochmal ,
    ist es möglich packetsender fürs iPad /iPhone zu haben , Trau mich nicht irgendwelche packet Apps zu installieren
    Mag nicht an Pc ;-)
    Vielen Dank
    Gruß Turnfin

    1. MC

      Im App Store habe ich eine ganz einfache App für iOS gefunden: „UDPTest“
      Diese habe ich installiert, unter den Einstellungen (aufzurufen durch Herunterstreichen im oberen, grauen Bereich) bei „port number“ 90 eingegeben, und funktioniert.
      iPhone geht auch noch.

    2. Klaus

      Ich kann da TCP/IP (mit chinesischen Zeichen) empfehlen. Das Programm ist nicht chinesisch und kann auch TCP, was für spätere Tage mit Sicherheit zu gebrauchen ist. So braucht man nicht später wieder ein anderes Tool.

  35. Turnfin

    IHR SEID KLASSE,
    hab nen 3D Dricker mit arduino mega, hab auch hier länger nen arduino mega mit wifishild rumliegen, geht das bei dem auch?
    Bzw wo gibt es ne At Command Liste , hab schon gesucht aber irgendwie funktionieren die Befehle nicht die ich gefunden hab :-(
    Vielen Dank
    Gruß Turnfin

    1. Klaus

      Nein, Du brauchst ein Board, welches das WLAN-Modul entweder bereits integriert hat, oder Du musst ein ESP8266-Modul anschließen (Vorsicht! Atmel hat gerne 5V, das Modul verträgt nur 3,3V und wird mit 5V zerstört).
      Module bekommst Du z.B. hier:
      http://www.ebay.de/itm/ESP8266-Serial-WIFI-Wireless-Transceiver-Module-Send-Receive-LWIP-ESP-01-Neu-/111583174943?hash=item19fae0211f:g:XcgAAOSwmrlUwh9x

    2. fk (Beitrag Autor)

      Hi,
      eine kurze AT-Liste findest du z.B. unter http://iot.fkainka.de/at-befehlsliste

    3. Max
  36. Robin

    Ich habe hier eine Version erstellt die auch im lokalen Netzwerk funktioniert.
    Wie gestern muss natürlich die SSID und Passwort entsprechend verändert werden, zusätzlich muss man unter REMOTEHOST die IP Adresse des Rechners angeben auf dem der UDP Server läuft.

    https://dl.dropboxusercontent.com/u/4491727/Day3_UPDBasicsWithoutAP.zip

    1. tobrav

      Vielen Dank, damit klappt es wirklich gut

  37. Roland G. Hülsmann

    Also bei mir geht gar nichts. Welche IP-Adresse bekomme ich woher und muss ich wo eintragen. Im Artikel und den Bildern tauchen drei verschiedene IP-Adressen auf.
    Die mit 4.2 am Ende ist die des Nanoboards.
    Was hat es mit der in den Packet-Sender-Logs erwähnten 4.1 auf sich? Und woher kommt die 178.255, die im Packet-Sender wohl einzugeben ist?
    Sorry, ich scheine hier noch Wissenslücken zu haben.

    1. Tommy

      Wenn das Tag3-Programm auf das Nano hochgeladen ist, funktioniert es als WLAN-Accesspoint und hat die 192.168.4.1 als IP-Adresse. Wenn man dann seinen PC mit dem WLAN des Nanoboards namens NanoESP verbindet und die Netzwerkeinstellungen auf DHCP setzt, bekommt der PC die IP-Adresse 192.168.4.2.
      Das Packetsender-Prog auf dem PC funzt dann in dem Fall als Empfänger. SDie Daten die man im Serial Monitor eingibt, werden vom Board zum PC gesendet.
      Die Adresse mit der 178.255 am Ende spielt hier keine Rolle. Da muss nix eingegeben werden. Wichtig ist nur, Port 90 in den Settings (im Menü File des Packetsender) für UDP einzustellen.

      1. Klaus

        Hallo Tommy,

        vergiss den Screenshot oben. Da stehen völlig unterschiedliche Adressen drin, die von dem Szenario hier abweichen.

      2. Roland G. Hülsmann

        DANKE für die Erklärung. Jetzt habe auch ich es kapiert. (Es war gestern Nacht doch wohl etwas zu spät …)

      3. MartinW

        Genau SO eine Info hätte ich in der Anleitung mindestens erwartet…
        Auch hätten mehr Kommentare in den Beispielprogrammen wirklich nicht geschadet (z.B. hinter den AT-Befehlen, die sich nicht von selbst erschließen eine kurzer Hinweis was der Befehl bewirkt).
        Der Autor konnte sich wohl nicht wirklich in jemanden hineinversetzen, der zum ersten Mal mit Arduinos arbeitet. Aber hallo – davon war doch bei einem Adventskalender auszugehen? Vielleicht können die noch ausstehenden Programme hier ein wenig nachgebessert werden – Danke!

        Ein riesengroßer Dank auf jeden Fall an die Leute, die hier ihre Lösungen und Zusatzinfos im Board posten – ohne euch könnten vermutlich 3/4 der Leute den Kalender ‚abhaken‘. Große Klasse!

    2. Fabian Eser

      Hey,
      ich kann die Nachricht („Hello“) abschicken bekomme auch ein SEND OK aber im Packet Sender sehe ich nix. Port ist eingestellt.

      1. Dr Hok

        Das liegt vermutlich an der Windows-Firewall. Ich musste sie (unter Windows 10) komplett abschalten, damit etwas durchkommt. Ich hatte zuerst versucht, nur den Port 90 UDP zu öffnen, aber das hat nicht funktioniert.

        1. Rainer

          Ich bin heute erst zu Tag 3 gekommen, gestern Abend war wohl der Server zum Herunterladen einige Zeit nicht on-line.

          Heute ging zunächst alles gut, SEND OK kam auch aber auf dem PC kam nichts an.
          Nach Lesen dieser Kommentare habe ich den W10 Firewall abgeschaltet und alles war gut.

          Nun meine Kritik :

          mit dem ESP wird ein offenes, ungesichertes Netzwerk eingerichtet, wenn nun der Firewall abgeschaltet werden muss, ist auch der PC ungesichert. Hoffentlich vergisst niemand, den Firewall wieder zu schliessen !

          Mein Vorschlag :

          Die Zeile zum konfigurieren des AP abändern :

          boolean configAP()
          {
          boolean succes = true;

          succes &= (sendCom(„AT+CWMODE=2“, „OK“));
          // succes &= (sendCom(„AT+CWSAP=\“NanoESP\“,\“\“,5,0″, „OK“));
          succes &= (sendCom(„AT+CWSAP=\“NanoESP\“,\“MyPassword\“,5,3″, „OK“));

          return succes;
          }

          von „AT+CWSAP=\“NanoESP\“,\“\“,5,0″, „OK“));
          auf „AT+CWSAP=\“NanoESP\“,\“MyPassword\“,5,3″, „OK“));

          das ergibt eine WPA2_PSK ( dafür die 3 ) gesichertes Netzwerk, bei MyPassword ein entsprechendes Passwort eingeben !

          Beim Verbinden des PCs muss dann diese Passwort eingegeben werden, danach klappt bei mir unter W10 alles auch bei geschlossenem Firewall !

          Grosses Lob an alle, die hier zurm Lösen von Problemen beitragen !

          Weiter so,

          Rainer

          1. Andreas

            Es ist nicht notwendig, die Windows-Firewall komplett zu deaktivieren. So geht es auch:

            1. Systemsteuerung, dann Windows-Firewall öffnen
            2. Auf der linken Seite „Eine App oder ein Feature durch die Windows-Firewall zulassen“ wählen
            3. „Einstellungen ändern“ auswählen
            4. In der Liste nach dem Programm „packetsender.exe“ suchen (kann evtl. auch zweimal vorkommen)
            5. Häkchen beim Namen und bei „Privat“ setzen (ggf. auch bei „Öffentlich“, wenn’s anders immer noch nicht geht)
            6. Mit „Ok“ schließen

            Anschließend sollten die Pakete auch beim Packetsender ankommen.

      2. MartinW

        Ein Dank hier an Andreas (Freitag, der 4. Dezember 2015 um 21:45), der die aus meiner Sicht perfekte Lösung angeboten hat!

  38. Tommy

    Proggy funzt! Prima.

    Noch ne Frage zum Kabel: Muss ich die Enden der Kabelbrücken abisolieren oder hat das Steckboard eine
    Art Schneidklemmtechnik ähnlich einem LSA-Verteiler?

    1. fk (Beitrag Autor)

      Hi,
      die Enden müssen vorher abisoliert werden. So fortschrittlich ist das Steckboard leider nicht :)

  39. Roland G. Hülsmann

    Mein PC ist über LAN im Netz. Offensichtlich benötige ich aber für die folgenden Tage einen WLAN-Adapter, wenn ich die Experimente durchführen möchte. Zwei Fragen:

    1. Für wieviele Tage benötige ich einen WLAN-Adapter (den ich mir wohl dann kaufen müsste).

    2. Wie verbinde ich über diesen Adapter meinen PC mit dem Board, ohne die Verbindung zu Internet, Drucker, externe Festplatte, etc. aufzugeben. (Also LAN-Verbindung zum Heimnetz und WLAN-Verbindung zum Board gleichzeitig.) Die Anleitung schweigt sich darüber aus.

    1. fk (Beitrag Autor)

      Hi,
      wenn dein PC über LAN mit dem Router verbunden ist, und das Board über WLAN gibt es keine Probleme, denn beide Geräte sind dennoch im gleichen Netzwerk.

      1. Roland G. Hülsmann

        Aber dann funktioniert doch das Programm für den dritten Tag nicht, da ich dann ja nicht den PC mit dem WLAN des Boards verbinden kann. Das ist doch eben ein anderes Netzwerk. Wo liegt mein Denkfehler?

    2. SmenTrick

      Also solange du irgendwo im Netzwerk ein „Stück“ WLAN hast, ist das alles auch so machbar. So kann man bei Day3 auch einfach den Part, im Code, mit dem AP gegen die Einwahl aus Day2 austauschen.
      Oder, alternativ, gibt es da noch das Smartphone. So habe ich, um herauszufinden ob mein Problem die Firewall oder mein Python-UDP-Server ist, einfach nen UDP-Server als Android-App am Phone installiert.

      1. Roland G. Hülsmann

        Mit welcher APP genau soll das gehen? Ich habe zwei ausprobiert, bin aber nicht über die Konfiguration hinausgekommen. Und angekommen ist dort erst recht kein „Hello“.

        Und wie ich genau das Programm umschreiben soll, damit es auch so geht, erschließt sich mir leider trotz C++-Kenntnissen auch nicht. Welche AP-Befehle müssen genau durch welch ersetzt werden?

        1. Juergen

          Habe folgendes in der Config ESP8266 angepasst.

          //—————————————–Config ESP8266————————————

          boolean configAP()
          {
          boolean succes = true;

          succes &= (sendCom(„AT+CWMODE=1“, „OK“));
          esp8266.setTimeout(20000); // Timeout muss laenger sein für WLAN Verbindung
          succes &= (sendCom(„AT+CWJAP=\“**SSID**\“,\“**PASSWD**\““, „OK“)); //“**SSID** uund **PASSWD** aus TAG2 nutzen“
          esp8266.setTimeout(1000); // Timeout zuruecksetzen
          return succes;
          }

          boolean configUDP()
          {
          boolean succes = true;

          succes &= (sendCom(„AT+CIPMODE=0“, „OK“));
          succes &= (sendCom(„AT+CIPMUX=0“, „OK“));

          succes &= sendCom(„AT+CIPSTART=\“UDP\“,\“**MY-IP**\“,90″, „OK“); //UDP-Server // **MY-IP** Des PCs

          return succes;
          }

          1. Roland G. Hülsmann

            Herzlichen Dank! So funktioniert es!

            Was bei mir fehlte, aber eigentlich logisch ist, war das Einsetzen der Netzwerk-IP meines PC in configUDP().
            Ja, so funktioniert es perfekt, auch ohne das Board als Accesspoint zu aktivieren!

        2. SmenTrick

          Bezüglich der APP:

          In dem Fall habe ich einfach das Day3 so gelassen, wie es ist und mich mit Dem Smartphone (Android) am ESP angemeldet. Dann (den erst besten Treffer im Play-Store) „UDP Sender / Receiver“ genommen. Hässliche Oberfläche, aber für den Test taugts:

          Mode: Receive Only
          Local Port: 90
          Message Type; ASCII
          [Start Listening]

          Bezüglich der „ESP im bestehenden WLAN“:
          Hierfür musst du den Part „Config ESP8266“, wie von Juergen beschrieben, ändern. Zusätzlich aber auch die zwei „#define“ Zeilen für SSID und PASSWD noch oben rein copieren.
          Ich glaub Robin hat, weiter unten, schon mal was vorbereitet ;)

          1. Roland G. Hülsmann

            Wenn ich „Start Listening“ anklicke, bekomme ich eine Warnung „There was a problem while trying to send/receive. Check to ensure the local port is not in use and the remote ip/port is valid“. Danach wird das receive sofort beendet.

          2. Roland G. Hülsmann

            Mit Port 50000 hat es dann funktioniert!

Schreiben Sie einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.