Was ist der billigste Weg, um eine Netzwerkverbindung zum Pi Zero herzustellen?


49

Da der Pi Zero nicht mit einem Ethernet-Anschluss ausgestattet ist, frage ich mich, wie Sie am günstigsten eine einigermaßen schnelle Netzwerkverbindung zum Gerät herstellen können.

AKTUALISIEREN

Mit "Netzwerkkonnektivität" meine ich die Verbindung zu einem LAN / WLAN, damit die Geräte miteinander, mit anderen Geräten und mit dem Internet kommunizieren können. ZB sollte ich nach dem Setup in der Lage sein wget stackexchange.com. Es ist mir eigentlich egal, ob es sich um WLAN oder Ethernet handelt, aber ich vermute, dass Ethernet schneller und zuverlässiger sein sollte (nur eine Vermutung).

Jemand hat gerade gefragt, ob dies mit HDMI möglich ist , und ich weiß, dass andere nach einer Lösung für dasselbe (oder ein ähnliches) Problem suchen.


Bis Sie eine SD-Karte und einen Netzwerkadapter hinzugefügt haben, haben sich nicht nur die Kosten fast verdreifacht, sondern Sie haben wahrscheinlich auch Ihren einzigen USB-Anschluss verloren.
Chris Stratton

1
Was ist der Sinn, @ChrisStratton? Sie müssten jedem Pi eine SD-Karte hinzufügen. Und es kann Anwendungsfälle geben, für die kein zusätzlicher USB-Anschluss erforderlich ist. Aber
Ghanima

Antworten:


33

Zwei Optionen:

a) Kaufen Sie einen Micro-USB-RJ45-Adapter für 2,15 USD

b) USB-RJ45-Adapter für 1,50 USD und ein Micro-USB-OTG-Adapter für 0,23 USD (Gesamtpreis 1,73 USD)

Einige der Artikel sind möglicherweise günstiger, wenn Sie sie über die mobile App kaufen.


1
Option (a) sieht so aus, als würde sie meinen Bedürfnissen am besten entsprechen, aber ich werde die Frage auf andere Ideen hin überwachen. Ich denke, es sollte möglich sein, einen RJ45, einen Ethernet-Controller-Chip und einen USB-Chip auf ähnliche Weise wie die größeren Pi zu integrieren. Ich habe gestern versucht, die Pi-2-Modell-B-Schaltpläne durchzugehen, aber ohne die Pi-Zero-Schaltpläne stecke ich irgendwie fest.
Logischer Irrtum

USD5 für Pi Zero und + - USD2 für Network. Eine voll funktionsfähige 1 GHz 512 MB, super kleine Linux-Maschine .. Ich bin sprachlos ... Tolle Antwort
Piotr Kula

5
Bitte kaufen Sie nicht den b) Adapter (JP1082), er funktioniert nicht mit einem nicht gepackten Kernel und Sie müssen den Kernel nach jedem Update neu kompilieren.
Gajdipajti

@neuhaus Wenn ich die Option a kaufe, kann ich damit auch den Computer mit Strom versorgen?
Ricardo

Der RD-9700 scheint überhaupt nicht mit Raspbian zu funktionieren. und das Schlimmste ist anscheinend nur USB 1.1
Piotr Kula

24

Ethernet über SPI

Eine der billigsten Möglichkeiten besteht darin, einen Ethernet-Controller über den SPI-Bus anzuschließen. Ein solcher Controller könnte beispielsweise ENC28J60 sein, der häufig für die Ethernet-Konnektivität für Arduino verwendet wird. Die neuesten Linux-Kernel für Raspberry Pi haben einen Treiber mit einem Gerätebaum-Overlay. Siehe zum Beispiel https://github.com/raspberrypi/linux/issues/795

Der Vorteil dieser Lösung ist, dass der USB-Anschluss verfügbar bleibt. Ein Nachteil ist, dass der Chip (und die Geschwindigkeit von SPI) nur 10BASE-T (10 Mbps) Ethernet unterstützt.

Komplette Module mit niedrigsten Preisen (einige USDs) konnten auf AliExpress vermutlich gefunden werden: http://www.aliexpress.com/wholesale?SearchText=ENC28J60


1
Dies ist eine sehr interessante Alternative, bei der Sie das GPIO verwenden können, um eine Ethernet-Verbindung herzustellen. OK, es ist nicht großartig für das Streamen von HD-Medien ... aber wenn es nur um eine Wetterstation oder einen CNC-Router geht ... ausgezeichnet!
Piotr Kula

Wo würdest du diesen Chip auf die Null setzen?
Patoshi パ パ シ

1
@duckx: Hier ist ein Beispiel für die Verkabelung und Verwendung der Gerätebaum-Überlagerung: gajdicookbook.wordpress.com/2015/02/25/… Hier sind einige Bilder, die dieselbe Verkabelung verwenden: elektroda.pl/rtvforum/topic2950919.html (die verwendete Die Pins des GPIO-Headers sind von der ersten Version des Raspberry Pi bis zum Pi Zero gleich.
Pabouk

1
Normalerweise können mit einem ENC28J60-Modul 300 KByte / s erreicht werden. Ich persönlich denke, es ist die beste Lösung. (Ich habe es mit einem A + gekoppelt, das Munin-Node für die DB18B20-Sensoren ausführt .)
gajdipajti

1
@gajdipajti: Mit erhöhter SPI-Taktfrequenz: spi-max-frequency = 20000000Die durchschnittliche Bandbreite sollte bei etwa 540 kB / s liegen: github.com/raspberrypi/linux/issues/795#issuecomment-87255295 Wenn Sie zum Beispiel 1080p24-Video in Betracht ziehen, reicht dies leider nicht für das Streaming von akzeptable Qualität. ------ Wie in der GitHub-Ausgabe weiter ausgeführt, sollte es in Zukunft möglich sein, die Frequenz weiter zu erhöhen - näher an der ENC28J60 von maximal 20 MHz.
Pabouk

9

Für mich war der billigste und einfachste Weg, Ethernet zum Nullpunkt zu bringen, über USB zu meinem Host. Ich fand den Link hier am einfachsten und schnellsten, stellte eine statische IP für die USB0-Netzwerkverbindung ein und er funktioniert perfekt für SSH to the Zero, wenn er auf meinem Laptop und Desktop an USB angeschlossen ist. Unter Windows 10 wird es als serieller USB-Anschluss angeboten. Sie müssen den Acer RDNIS-Treiber angeben. Danach funktioniert es auch unter Windows einwandfrei. Windows 7 und 8 haben es einfach gesehen, ohne danach zu fragen. Hoffentlich hilft das. :)

http://pi.gbaman.info/?p=699


2
Eine aktualisierte und vereinfachte Anleitung finden Sie hier: gist.github.com/gbaman/975e2db164b3ca2b51ae11e45e8fd40a
shrx

7

Wenn billigste die einzige Voraussetzung wäre , würde ich mit einem ESP8266-01 WiFi - Modul wie diese geht ein . Die Gesamtkosten betragen 3,50 US-Dollar inklusive Versand. Es gibt ein paar Tutorials, wie man diese mit dem Pi benutzt:

Vielleicht möchten Sie ein paar Dollar mehr ausgeben und sich für eines der High-End-ESP8266-Modelle entscheiden. Diese High-End-Module haben ein paar zusätzliche Vorteile, kosten aber immer noch weniger als 10 US-Dollar. Sie enthalten einen ADC, was der Pi nicht tut, und sie brechen auch alle Pins des ESP-Chips heraus.


Gibt es eine ähnliche Strategie, die für Ethernet verwendet werden kann? Es gibt ein ähnliches Instructable für Arduino .
Logischer Irrtum

Derselbe erwähnte Teil (ein Seriell-zu-Ethernet-Adapter funktioniert auch mit dem Pi). Überprüfen Sie diesen Thread raspberrypi.org/forums/viewtopic.php?f=44&t=18397 . Beachten Sie, dass in Ihrer Frage nicht erwähnt wird, dass Sie eine Ethernet-Lösung wünschen.
Steve Robillard

Ich sehe einen Pi Zero + am Horizont! Nun, ich verstehe die Gründe für den minimalistischen und kostensparenden Ansatz, den die Stiftung mit dem Zero verfolgte. In Kürze sollte jedoch ein Pi mit WLAN an Bord sein. Denken Sie an das Internet der Dinge.
Ghanima

Ich denke, dass alles, was über die serielle UART-Schnittstelle verbunden ist, den "relativ schnellen" Teil der Anforderungsliste nicht erfüllt.
Peter Green

1
@neuhaus, natürlich ist es langsamer, wenn Sie den UART verwenden. Im SDIO-Modus wurden jedoch ~ 40 MBit / s gemeldet. Siehe meine Antwort
John La Rooy

6

Eine bessere ESP8266-Lösung besteht darin, sie als SDIO-Gerät an den GPIO-Port anzuschließen.
Dies ist kostengünstig und kann Ihnen ~ 40Mb / s über WLAN bringen

http://oshlab.com/esp8266-raspberry-pi-gpio-wifi/

Eine kleine Geschichte. Der ESP8266 IC (falls Sie noch nichts davon gehört haben) ist ein äußerst beliebter Wifi-Mikrocontroller mit vielen günstigen Modulen auf dem Markt. Es wurde ursprünglich als serielle UART-Schnittstelle für Mikrocontroller verwendet, wurde jedoch inzwischen als eigenständiger Mikrocontroller mit LUA oder Arduino portiert. Es ist ein sehr schneller Mikrocontroller, der mit 80 MHz arbeitet. Dies ist einer meiner bevorzugten Mikrocontroller für Projekte, da er schnell, günstig und mit WLAN ausgestattet ist.

Es wurden einige Versionen des Moduls herausgebracht, darunter der ESP-12E und der ESP-12F (beide ungefähr 2 bis 3 US-Dollar), die die SDIO-Schnittstelle aufteilen. Dies war weitgehend sinnlos, da die SDIO-Schnittstelle für den Flash-Speicher verwendet wird.

Es stellt sich jedoch heraus, dass der ESP8266 tatsächlich ein ESP8089-IC ist, der gerade umbenannt wurde. Der ESP8089 ist ein SDIO-WLAN-Chip für kleine Tablets. Wenn Sie GPIO 15 beim Booten nicht herunterfahren, wie Sie es bei der Ausführung als Mikrocontroller tun würden, wird es im SDIO-Modus ausgeführt und ist zu diesem Zeitpunkt im Grunde ein ESP8089-IC.

Dieses Projekt basiert auf dem Hackaday.io RPi WiFi-Projekt . Ich habe einige Änderungen vorgenommen, um mit dem neuen Linux-Kernel im neuen Raspbian zu arbeiten, und ich habe ein Skript geschrieben, um den Prozess vollständig zu automatisieren. Um dies nutzen zu können, benötigen Sie ein ESP-12E- oder ESP-12F-Modul. Der ESP-12F wird empfohlen.

Verdrahten Sie zuerst den ESP-12F wie folgt.

Bildbeschreibung hier eingeben

Die 33-Ohm-Widerstände sind erforderlich, um die erforderlichen SDIO-Geschwindigkeiten zu erreichen. Lassen Sie sie daher bitte nicht aus. Es ist auch besser, von der 5-V-Schiene zu ziehen und einen separaten LDO für das ESP8266-Modul zu haben, aber direkt von einer 3,3-V-Schiene auf dem Raspberry Pi zu ziehen sollte gut funktionieren.

SSH in deinen Raspberry Pi und gib die folgenden Befehle ein. Möglicherweise möchten Sie das Dateisystem zuerst mit raspi-config erweitern.

cd ~
git clone https://github.com/oshlab/esp8089.git
cd esp8089
sudo sh install

Dies wird eine Weile dauern. Also einfach sitzen und warten oder einen Kaffee trinken gehen.

Wenn das erledigt ist, starte deinen Pi neu.

sudo reboot

Nach dem Neustart sollte das ESP8266-Modul aktiviert werden. Sie können einen schnellen Scan durchführen, um sicherzustellen, dass es funktioniert.

sudo iwlist scan

Es sollte nach drahtlosen Netzwerken suchen und anzeigen, was verfügbar ist.

Jetzt funktioniert es wie jedes andere WIFI-Modul. Prost.


4

Checkout HubPiWi - eine Erweiterung für Pi Zero mit 3 USB-Anschlüssen und integriertem WLAN mit integrierter Antenne. Die Platine verfügt über eine PCB-Antenne und benötigt kein Kabel oder Stecker.

Bildbeschreibung hier eingeben

Eine typische Verwendung von HubPiWi ist das Hinzufügen einer Tastatur, einer Maus und einer Kamera an den drei USB-Anschlüssen. Dies gilt natürlich zusätzlich zu Wifi.


1
Interessant ist allerdings bei 13 US-Dollar kaum "der billigste Weg, um an Netzwerkkonnektivität zu kommen", was die ursprüngliche Frage war.
Neuhaus

3

Eine (jetzt) ​​einigermaßen offensichtliche Antwort ist der Kauf des Raspberry Zero W (Wireless), der derzeit ungefähr 5 GBP mehr kostet als ein normaler Zero (derzeit 9 bis 10 GBP bei den meisten britischen Einzelhändlern - ohne Header-Pins) und anderes Zubehör)

Dies hat verschiedene Vorteile gegenüber anderen Lösungen, einschließlich:

  • Ist an Bord, ist also sofort einsatzbereit
  • Ist sehr kompakt und möglicherweise energieeffizienter als andere Lösungen
  • Beinhaltet Bluetooth.
  • Verbraucht kein GPIO, USB oder andere Anschlüsse am Pi

2

Ich beantworte meine eigene Frage mit zwei Ideen, die ich habe, aber beide Lösungen sind schwierig (IMO) und nicht so billig (10-30 USD). Ich hoffe, es gibt einen besseren Weg.

Schließen Sie einen Micro-USB-zu-USB-Adapter an , dann entweder:

  1. Verketten Sie a mit einem USB-zu-Ethernet-Adapter oder

  2. Stecken Sie einen billigen USB-WLAN-Dongle ein.

Der erste wird wahrscheinlich der zuverlässigste sein; Ich hatte Pech mit WiFi-Dongles.


Wenn Sie eine Liste der WLAN-Adapter benötigen, die funktionieren sollten, versuchen Sie es hier
Wilf

Ich sehe nicht , wie in einem billigen USB - WiFi - Dongle kleben fügt Ethernet :-P
neuhaus

2

Ich habe versucht , Internet auf meinem RPi Null zu erhalten und fand diese Liste der Adapter für USB http://elinux.org/RPi_USB_Ethernet_adapters einen der Adapter durch steckbare gemacht wird http://plugable.com/2015/12/10 / ethernet-für-die-himbeere-pi-null /

Ich habe die SD-Karte auf einem Himbeer-Pi 1 eingerichtet, weil die Einrichtung auf diese Weise einfacher war (ich habe ihr durch Bearbeiten von /etc/dhcpcd.conf eine statische IP-Adresse gegeben) Der Strom rein und alles funktioniert.

Ich kann nicht beurteilen, ob dies eine gute Lösung ist, aber ich kann SSH verwenden und an der Befehlszeile arbeiten, ohne merkliche Leistungsprobleme zu haben.


2

Eine weitere Option wäre: https://www.kickstarter.com/projects/755102253/pijack-add-ethernet-to-raspberry-pi-zero

Nicht der billigste Weg, aber garantiert funktionsfähig und unterstützt - wie jedes andere ENC28J60-basierte Modul.

Dies wurde nicht finanziert, ist aber hier erhältlich: http://www.pijack.net

Ich bin Teil des Entwicklungsteams, daher könnte ich voreingenommen sein!


1
Dies ist keine besonders hilfreiche Antwort. Das ist ein Kickstarter-Link, der noch nicht einmal vollständig finanziert ist. Möglicherweise gibt es diesbezüglich auch gar nicht.
Jacobm001

1
Es ist jedoch ein machbares Projekt, Design EXISTS und Prototypen scheinen funktional zu sein - das Add-On-Board wird an einen GPIO40-Header angeschlossen und bietet eine NUR 10 Mbit / s (nicht 100 Mbit / s, nicht Gigabit!) Verdrahtete Ethernet-Verbindung. In Anbetracht des Zeitplans zum Zeitpunkt des Schreibens dieses Berichts (2 Monate nach der Veröffentlichung des Pi Zero) konnte das Kick-Start-Ziel von ca. £ 4,5.000 bis 20160302 erreicht werden - aber die Zusage für ein voll gebautes Board (£ 17 für Juli 2016, andere) Zusagen sind verfügbar) weniger 40-Pin-Header kann mehr sein, als manche erwarten würden. OTOH, wenn es das ist, was Sie wollen, ich danke dem Plakat für die Aufmerksamkeit ...
SlySven

Update: Sie haben nicht die gesamte Finanzierung von Kickstarter erhalten, aber mit anderen Quellen haben sie es geschafft, sie auf den Weg zu bringen und sie sind jetzt bei PiJack erhältlich , einem Unternehmen mit Sitz in der EU (NICHT in Fernost) für 11,49 £. .!
SlySven

Es bedeutet natürlich , dass man es auch als nutzen könnte zweite Ethernet - Verbindung und theoretisch ein RPi B + verwenden oder 2 / 3B Modell als verdrahtete Hardware - Firewall - obwohl der Durchsatz nicht wäre , dass hoch, soweit ich sehen kann.
SlySven

1

Ich komme zu spät zur Party, und Sie haben bereits einige sehr günstige Optionen, aber ich gehe davon aus, dass Sie dies möglicherweise zu einem günstigeren Preis tun können - nur ein paar Widerstände -, wenn Sie einen PC mit einem freien seriellen Anschluss in der Nähe haben. Die Hardwareseite ist ein bisschen verrückt und die Verbindung wird langsamer und Sie sagen, Sie wollen einigermaßen schnell, aber ich dachte, es wäre trotzdem eine Erwähnung wert.

Voraussetzung: Sie können mit PPP ein Netzwerk über eine serielle Verbindung herstellen (welche Modems verwenden, um eine Verbindung zum ISP herzustellen). Wenn wir also Pi's Tx und RX dazu bringen können, mit einem seriellen PC-Port zu kommunizieren, können wir über diesen ein Netzwerk aufbauen.

Wie können wir den Tx / Rx des Pi an einen RS232-Port anschließen? Die Spannungen sind unterschiedlich, also könntest du auch

  1. Verwenden Sie einen Level-Shifter wie einen MAX3232, der wahrscheinlich genauso viel kostet wie der Netzwerkadapter, oder ...
  2. Gehen Sie direkt von der Pi's Tx-Leitung zur Rx-Leitung des PCs. Der PC sollte mit der niedrigeren Spannung in Ordnung sein. Messen Sie die Spannung, die der PC auf seiner RS232-Tx-Leitung erzeugt, und verwenden Sie einen Widerstandsteiler, um sie auf 3,3 V zu bringen, und schließen Sie diesen an die Rx-Leitung des Pi an. Die RS232-Spezifikation ermöglicht einen großen Spannungsbereich, sodass Sie sich nicht darauf verlassen möchten, dass dies für alle PCs gleich ist.

Hier finden Sie ein Tutorial , in dem erklärt wird, wie der Softwareteil ausgeführt wird.


Warum nicht einen USB-Anschluss verwenden und über USB vernetzen? Es ist schneller als seriell und überall verfügbar.
Neuhaus

2. Denken Sie nicht, dass es fliegen wird - RS232-Pegel sind gleichmäßig um die Massespannung verteilt und es gibt eine Hysterese, sodass eine Eingangsspannung, die zwischen einem positiven Pegel und Masse umschaltet, nicht den Spezifikationen entspricht: Ein Empfänger mit einem solchen Signal befindet sich vollständig im Angaben. zu ignorieren (und RS232 ist eine invertierte Polarität IIRC - dh Spannung negativer als -3,0 V = Marke; Spannung positiver als 3,0 V = Raum). Zufällig bestand deshalb für ältere PCs ein Versorgungsbedarf von -12 V - nur für die seriellen Schnittstellen, obwohl heutzutage Ladungspumpenschaltungen wie die der ICs der MAX-Serie dies gewährleisten.
SlySven

1

Was ich tue, ist ich benutze Portweiterleitung. Ich habe den Pi als Netzwerkgerät an meinen Laptop angeschlossen und greife über SSH darauf zu.

ssh -R 1234:182.254.218.141:80 pi@raspberrypi.local

Dadurch wird ein Remote-Port für die Weiterleitung an einen Proxyserver (finden Sie einen auf http://proxylist.hidemyass.com/ oder einer ähnlichen Site) an Port 1234 erstellt. Der nächste Schritt ist das Hinzufügen des APT-Proxys zur Datei / etc / apt / apt. conf (erstelle wenn nicht gefunden) und schreibe die folgende Zeile:

Acquire::http::Proxy "http://localhost:1234";

Profitieren!


Ich mag diesen Vorschlag. Ein Laptop ist nicht billig, aber viele Leute haben sie herumliegen.
Logischer Irrtum

Wie haben Sie den Pi an den Laptop als Netzwerkgerät angeschlossen (es gibt verschiedene Möglichkeiten !!)
Wilf

Ich habe ein USB-Kabel verwendet
Shmarkus

1

Mit Sicherheit nicht die billige, aber definitiv die eleganteste Variante - vor allem, wenn Sie zusätzliche Abschirmungen über den GPIO-Header hinzufügen müssen. Und beinhaltet 2 Port USB HUB.

Ich bin vielleicht ein bisschen voreingenommen, da dies wahrscheinlich mein Produkt ist, das ich verkaufe, aber es ist eine potenziell gültige Lösung:

https://www.tindie.com/products/marcel/raspberry-pi-zero-ethernet-rj45-and-usb-hub-shield/

Dies ist mein Produkt, so dass ich kompetent voreingenommen sein könnte!


Hallo und herzlich willkommen. Bitte beachten Sie, dass eine vollständige Offenlegung Ihrer Zugehörigkeit erforderlich ist. (Ihr Benutzername deutet etwas auf eine Beziehung hin). Bitte bearbeiten Sie Ihre Antwort.
Ghanima
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.