Inhaltsverzeichnis:

Telnet zu Ihrem Arduino/AVR! - Gunook
Telnet zu Ihrem Arduino/AVR! - Gunook

Video: Telnet zu Ihrem Arduino/AVR! - Gunook

Video: Telnet zu Ihrem Arduino/AVR! - Gunook
Video: УЯЗВИМОСТЬ USB | ВЗЛОМ ЧЕРЕЗ USB С DIGISPARK Attiny85 #mrrobot 2024, November
Anonim
Telnet zu Ihrem Arduino/AVR!
Telnet zu Ihrem Arduino/AVR!

Neulich wollte ich einen meiner AVRs überprüfen, aber ich war oben und weiß Gott, es war zu mühsam, nach unten zu gehen, wo der Mikrocontroller war. Aber oben neben meinem faulen Hintern saßen zwei Computer im Leerlauf, also hatte ich einen halben Tag von der Arbeit und beschloss, eine Anwendung zu schreiben, die zwei Ports bindet: einen seriellen Port zum Anschluss an den Arduino/AVR und einen TCP/IP Port, über den ich von meinem drahtlosen Netzwerk oder über das Internet aus telnet konnte. Die Anwendung fungiert dann als Proxy zwischen dem TCP/IP-Netzwerk und dem AVR. Um das Video besser zu sehen, klicken Sie zweimal und rufen Sie es in einem eigenen Fenster auf und vergrößern Sie es. Andernfalls schielen Sie und Sie können sehen, was eingegeben wird. Also änderte ich schließlich die Anwendung für die serielle Verbindung von AVR Terminal, die ich bereits geschrieben hatte, und fügte TCP/IP-Unterstützung hinzu. Dazu habe ich eine Firmware geschrieben, die so etwas wie eine UNIX-Shell bietet, die mir Fernzugriff auf alle Pins, Sicherungseinstellungen usw. ermöglicht. Sie können LEDs und all das Zeug aus der Ferne einschalten. Es unterstützt sogar die Anpassung der Taktfrequenz in Echtzeit und verfügt über ein Pseudo-Passwort-System, das den Rahmen für Zugriffskontrolllisten oder Authentifizierung für Root-Level-Befehle (wie das Ausschalten von Subsystemen usw.) bereitstellt. Hier sind einige der Dinge, die es tun kann:

  • Zeigen Sie Ihre CPU-Frequenz an
  • Setzen Sie einen beliebigen Pin auf Eingang oder Ausgang
  • Lesen Sie den Status eines beliebigen Pins aus
  • Senden Sie Logik 1 und 0 an einen beliebigen Pin, um LEDs usw. einzuschalten
  • Schalten Sie die SPI-, TWI-, USART- und ADC-Peripheriegeräte aus und wieder ein
  • Lesen Sie die untere Sicherung, die höhere Sicherung, die externe Sicherung und die Sperrbits in Echtzeit aus
  • Starten Sie Timer zum automatischen Timing von Ereignissen und Dingen.
  • Ein Framework für ein Authentifizierungssystem in EEPROM
  • Richten Sie jeden verfügbaren Clock-Prescaler in Echtzeit ein
  • Geschrieben in C++ und kompiliert für einen ATmega328P

Diese Anleitung beschreibt, wie Sie die Software (und die Firmware, wenn Sie möchten) herunterladen, installieren und von Ihrem drahtlosen Heimnetzwerk oder über das Internet auf Ihren AVR zugreifen können.

Schritt 1: Was Sie brauchen

  • Ein eigenständiger AVR oder Arduino / Klon (ausführliche Anweisungen zum Erstellen Ihres eigenen, ziemlich vollständigen eigenständigen AVR-Systems einschließlich eines externen Kristalls, Entkopplungskondensatoren und einer geregelten Stromquelle finden Sie in meinem anderen anweisbaren).
  • Eine serielle oder USB-Verbindung zu Ihrem Host-PC
  • Die AVR Terminal-Version mit integriertem TCP/IP-Server
  • Optional die AVR Shell (avrsh), wenn Sie Firmware auf Ihrem Ziel-AVR/Arduino ausführen möchten, um Zugriff auf Ihre Peripheriegeräte zu erhalten.

Das TCP/IP-Gateway funktioniert mit jeder Firmware, die Sie verwenden oder schreiben möchten, solange es über den UART mit dem PC kommuniziert. Leider gibt es keine Java-Version, daher läuft das AVR Terminal derzeit nur unter Windows.

Schritt 2: Laden Sie das AVR-Terminal und den TCP/IP-Server herunter und installieren Sie sie

Laden Sie das AVR-Terminal und den TCP/IP-Server herunter und installieren Sie sie
Laden Sie das AVR-Terminal und den TCP/IP-Server herunter und installieren Sie sie

Das AVR-Terminal ist eine Windows-Anwendung, die ich in früheren Anleitungen eingeführt habe. Es kann über die RS232 USART mit Ihrem AVR kommunizieren sowie auf eingehende TCP/IP-Verbindungen lauschen und diese über die RS232-Verbindung zur Antwort von Ihrem wartenden AVR weiterleiten. Es ist nicht vollständig, bietet aber eine erste Tour durch die Funktionen, die hier und in meinen anderen Anleitungen beschrieben werden. Die aktuellste Version kann hier heruntergeladen werden. Die Software erfordert keine vollständige Installation; Sie können die Software einfach aus ihrem Verzeichnis ausführen. Das Textfeld in der Symbolleiste, das ANY sagt, ist die IP-Adresse, die zum Abhören gebunden werden soll. ANY bindet alle IP-Adressen, oder optional können Sie eine auflisten, an die Sie sich besonders binden möchten. Das Textfeld rechts neben der IP-Adresse ist der IP-Port, an den der Server gebunden wird. Der Standardwert ist 23232, aber Sie können dies beliebig ändern.

Schritt 3: Installieren Sie Ihre Shell

Bevor Ihr AVR mit Ihnen kommunizieren kann, benötigen Sie eine Art Betriebssystem oder eine Shell auf dem Ziel-AVR. Es sind einige verfügbar, darunter meine AVR-Shell und die Bitlash-Shell.

Nutzen Sie diese Erfahrung alternativ als Chance, Ihre eigene minimale Shell zu schreiben.

Schritt 4: Telnet und genießen

Telnet und viel Spaß
Telnet und viel Spaß

Merken Sie sich Ihre Konfigurationsinformationen oder behalten Sie die Standardeinstellungen bei. In meinem Beispielbild bin ich auf einem Host namens "Newton" und telnet mit der Maschine, mit der mein AVR verbunden ist, einem Host namens "quadcpu1". Sie können die Standard-Telnet-Ausgabe sehen. Wenn Sie die Standardeinstellungen beibehalten haben, können Sie über Ihr TCP/IP-Netzwerk auf Ihren AVR/Arduino zugreifen mit: telnet 23232

oder wenn Sie sich auf derselben Box befinden: Telnet localhost 23232

Denken Sie daran, die Konfiguration zu verwenden, in die Sie sie geändert haben, wenn Sie sie geändert haben. Das sollte es sein. Der Quellcode sowohl für den Telnet-Server als auch für die AVR-Firmware ist als Open Source frei verfügbar und sollte Ihnen genügend gute Informationen liefern, damit Sie ihn ändern oder Ihre eigenen Versionen schreiben können. Der nächste Schritt könnte darin bestehen, eine Java- oder Qt-Implementierung des TCP/IP-Servers zu schreiben, damit Mac- und Linux-Benutzer davon profitieren können.

Empfohlen: