Qual è il modo più economico per ottenere la connettività di rete al Pi Zero?


50

Dal momento che Pi Zero non ha una porta Ethernet, mi chiedo quale sia il modo più economico per ottenere una connettività di rete ragionevolmente veloce al dispositivo?

AGGIORNARE

Per "connettività di rete" intendo connettermi a una LAN / WLAN, in modo che i dispositivi possano comunicare tra loro, parlare con altri dispositivi e accedere a Internet. Ad esempio, dopo l'installazione dovrei essere in grado di farlo wget stackexchange.com. In realtà non mi interessa se si tratta di WiFi o Ethernet, ma suppongo che Ethernet dovrebbe essere più veloce e più affidabile (solo una supposizione).

Qualcuno ha appena chiesto se ciò potesse essere fatto con HDMI , quindi so che altre persone stanno cercando una soluzione allo stesso (o un problema simile).


Quando hai aggiunto una sdcard e una scheda di rete, non solo il costo è quasi triplicato, ma probabilmente hai perso la tua unica porta USB.
Chris Stratton,

1
Qual è il punto, @ChrisStratton? Dovresti aggiungere una scheda SD a qualsiasi Pi. E potrebbero esserci casi d'uso che non richiedono alcuna porta USB aggiuntiva. Ma comunque penso che vivremo per vedere un Pi con WiFi a bordo ^^
Ghanima

Risposte:


33

Due opzioni:

a) Acquista un adattatore Micro USB RJ45 per $ 2,15

b) Adattatore USB RJ45 per $ 1,50 e un adattatore Micro USB OTG per $ 0,23 (prezzo totale $ 1,73)

Alcuni articoli potrebbero essere più economici se li acquisti utilizzando l'app per dispositivi mobili.


1
L'opzione (a) sembra che soddisfi al meglio le mie esigenze, ma monitorerò la domanda per altre idee. Penso che dovrebbe essere possibile integrare un RJ45, un chip controller Ethernet e un chip USB in un modo simile a quello che fanno i Pi più grandi. Ieri ho provato a ripassare gli schemi Pi 2 modello B, ma senza gli schemi Pi Zero, sono un po 'bloccato.
Fallimento logico,

USD5 per Pi Zero e + - USD2 per rete. Una macchina completamente funzionante da 1 Ghz 512 MB, super piccola macchina Linux .. Sono senza parole ... Ottima risposta
Piotr Kula

5
Non acquistare l'adattatore b) (JP1082), non funzionerà con un kernel non cache e dovrai ricompilare il kernel dopo ogni aggiornamento.
gajdipajti,

@neuhaus Se compro l'opzione a, posso utilizzarla anche per fornire elettricità al computer?
Ricardo,

RD-9700 non sembra funzionare affatto su Raspbian. e la cosa peggiore di tutte, a quanto pare, è l'unica USB 1.1
Piotr Kula

24

Ethernet su SPI

Uno dei modi più economici è collegare un controller Ethernet tramite il bus SPI. Un tale controller potrebbe essere ad esempio ENC28J60 che viene spesso utilizzato per la connettività Ethernet per Arduino. I kernel Linux più recenti per Raspberry Pi hanno un driver con un overlay dell'albero dei dispositivi. Vedi ad esempio https://github.com/raspberrypi/linux/issues/795

Il vantaggio di questa soluzione è che la porta USB rimarrà disponibile. Uno svantaggio è che il chip (e la velocità di SPI) supporta solo Ethernet 10BASE-T (10 Mbps).

Moduli completi con prezzi più bassi (pochi USD) potrebbero essere probabilmente trovati su AliExpress: http://www.aliexpress.com/wholesale?SearchText=ENC28J60


1
Questa è un'alternativa molto interessante, in cui è possibile utilizzare GPIO per avere una connessione Ethernet. OK, non è eccezionale per lo streaming di supporti HD ... ma se tutto ciò che fa è una stazione meteorologica o un router CNC ... eccellente!
Piotr Kula,

dove metteresti questo chip sullo zero?
Patoshi

1
@duckx: ecco un esempio di cablaggio e utilizzo della struttura ad albero del dispositivo: gajdicookbook.wordpress.com/2015/02/25/… Ecco alcune immagini che usano lo stesso cablaggio: elektroda.pl/rtvforum/topic2950919.html (usato i pin dell'intestazione GPIO sono gli stessi dalla prima versione di Raspberry Pi fino a Pi Zero).
pabouk,

1
Normalmente 300 Kbyte / sec possono essere raggiunti usando un modulo ENC28J60. Penso che personalmente sia la soluzione migliore. (L'ho associato a un A + che esegue il nodo munin per i sensori DB18B20 .)
gajdipajti

1
@gajdipajti: con una maggiore frequenza di clock SPI: spi-max-frequency = 20000000la larghezza di banda media dovrebbe essere di circa 540 kB / s: github.com/raspberrypi/linux/issues/795#issuecomment-87255295 Sfortunatamente se si considera ad esempio il video 1080p24 questo non è sufficiente per lo streaming di qualità accettabile ------ Come menzionato più avanti nel problema di GitHub, in futuro dovrebbe essere possibile aumentare ulteriormente la frequenza - più vicino al massimo ENC28J60 di 20 MHz.
pabouk,

9

Per me, il modo più economico e più semplice per ottenere Ethernet a zero era tramite USB al mio host. Ho trovato che il collegamento qui era il più semplice e veloce, impostare un IP statico per la connessione di rete USB0 e funziona perfettamente per SSH su Zero quando è collegato a USB sul mio laptop e desktop. Su Windows 10 viene fuori come una porta seriale USB, è necessario specificare il driver Acer RDNIS ma dopo ciò funziona benissimo anche sotto Windows. Windows 7 e 8 l'hanno appena visto senza nemmeno chiederlo. Speriamo che questo aiuti. :)

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


2
Guida aggiornata e semplificata qui: gist.github.com/gbaman/975e2db164b3ca2b51ae11e45e8fd40a
shrx

7

Se più economico è stato l'unico requisito Vorrei andare con un modulo WiFi ESP8266-01 come questo uno . Costo totale $ 3,50 USA compresa la spedizione. Ci sono alcuni tutorial che spiegano come usarli con il Pi:

Potresti voler spendere qualche dollaro in più e scegliere uno dei modelli ESP8266 di fascia più alta. Questi moduli di fascia più alta hanno un paio di vantaggi aggiuntivi, pur costando meno di $ 10, contengono un ADC qualcosa che il Pi non ha, ma eliminano anche tutti i pin dal chip ESP.


Esiste una strategia simile che può essere utilizzata per Ethernet? C'è un Istructable simile per Arduino .
Fallimento logico,

Quella stessa parte menzionata (un adattatore da seriale a Ethernet funzionerà anche con il Pi) Controlla questa discussione raspberrypi.org/forums/viewtopic.php?f=44&t=18397 . Nota che la tua domanda non dice che vuoi una soluzione Ethernet.
Steve Robillard,

Vedo un Pi Zero + all'orizzonte! Bene, capisco sicuramente la logica alla base dell'approccio minimalista e di riduzione dei costi adottato dalla Fondazione con lo Zero. Ma presto dovrebbe esserci un Pi con WiFi a bordo. Pensa all'Internet delle cose.
Ghanima

Penso che qualsiasi cosa connessa tramite seriale UART fallisca la parte "ragionevolmente veloce" dell'elenco dei requisiti.
Peter Green,

1
@neuhaus, ovviamente è più lento se si utilizza l'UART. Ma ~ 40 Mb / s è stato segnalato usando la modalità SDIO. Vedi la mia risposta
John La Rooy,

6

Una soluzione ESP8266 migliore consiste nel collegarlo come dispositivo SDIO sulla porta GPIO.
Questo è economico e può portarti a ~ 40 Mb / s tramite wifi

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

Un po 'di storia. L'IC ESP8266 (se non ne hai sentito parlare) è un microcontrollore Wifi estremamente popolare con molti moduli economici sul mercato. È stato originariamente utilizzato come interfaccia seriale UART per i microcontrollori, ma da allora è stato trasferito per funzionare come un microcontrollore autonomo utilizzando LUA o Arduino. È un microcontrollore molto veloce che funziona a 80mhz. Questo è uno dei miei microcontrollori preferiti da utilizzare per i progetti perché è veloce, economico e ha il wifi.

Sono state rilasciate alcune versioni del modulo tra cui ESP-12E ed ESP-12F (entrambi circa $ 2- $ 3) che interrompono l'interfaccia SDIO. Questo è stato in gran parte inutile, perché l'interfaccia SDIO è utilizzata per la memoria flash.

Tuttavia, si scopre che ESP8266 è in realtà un IC ESP8089 appena rinominato. ESP8089 è un chip wifi SDIO per tablet di piccole dimensioni. Se non si abbassa GPIO 15 all'avvio, come si farebbe quando lo si esegue come microcontrollore, funziona in modalità SDIO ed è sostanzialmente un IC ESP8089 a quel punto.

Questo progetto si basa sul progetto WiFi RPi di Hackaday.io . Ho apportato alcune modifiche per lavorare con il nuovo kernel Linux nel nuovo Raspbian e ho scritto uno script per automatizzare completamente il processo. Per utilizzare questo, è necessario un modulo ESP-12E o ESP-12F. Si consiglia ESP-12F.

Innanzitutto, collegare ESP-12F in questo modo.

inserisci qui la descrizione dell'immagine

Le resistenze da 33 ohm sono necessarie per raggiungere le velocità SDIO richieste, quindi per favore non lasciarle fuori. È anche meglio estrarre dalla guida 5v e avere un LDO separato per il modulo ESP8266, ma tirare direttamente da una guida 3.3v sul Raspberry pi dovrebbe funzionare bene.

SSH nel tuo Raspberry Pi e inserisci i seguenti comandi. Potresti voler prima espandere il filesystem usando raspi-config.

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

Ci vorrà un po '. Quindi siediti e aspetta, o vai a prendere un caffè.

Al termine, riavvia il tuo Pi.

sudo reboot

Dopo il riavvio, il modulo ESP8266 dovrebbe attivarsi. È possibile eseguire una scansione rapida per assicurarsi che funzioni.

sudo iwlist scan

Dovrebbe cercare reti wireless e mostrarti ciò che è disponibile.

Ora funzionerà proprio come qualsiasi altro modulo WIFI. Saluti.


4

Acquista HubPiWi: un componente aggiuntivo integrato per Pi Zero con 3 porte USB e un Wifi integrato con antenna integrata. La scheda ha un'antenna PCB e non richiede né cavo né connettore.

inserisci qui la descrizione dell'immagine

Un uso tipico di HubPiWi sarà l'aggiunta di una tastiera, un mouse e una fotocamera alle tre porte USB. Questo è in aggiunta al Wifi, ovviamente.


1
Interessante, tuttavia a $ 13 difficilmente "il modo più economico per ottenere la connettività di rete", che era la domanda originale.
neuhaus,

3

Una risposta (ora) alquanto ovvia è ottenere il Raspberry Zero W (Wireless), che al momento sembra in vendita al dettaglio per circa £ 5 in più di un normale Zero (da £ 9 a £ 10 attualmente sulla maggior parte dei rivenditori del Regno Unito - senza pin di intestazione e altri accessori)

Ciò ha diversi vantaggi rispetto ad altre soluzioni, tra cui:

  • È a bordo, quindi è disponibile immediatamente
  • È molto compatto e può essere più efficiente dal punto di vista energetico rispetto ad altre soluzioni
  • Include Bluetooth.
  • Non utilizza GPIO, USB o altri connettori sul Pi

2

Sto rispondendo alla mia domanda con due idee che ho, ma entrambe le soluzioni sono pacchiane (IMO) e non così economiche ($ 10-30). Spero ci sia un modo migliore.

Collegare un adattatore micro-USB-USB , quindi:

  1. Incatenare a con un adattatore da USB a Ethernet, oppure

  2. Inserisci un dongle WiFi USB economico.

Il primo sarà probabilmente il più affidabile; Ho avuto sfortuna con i dongle WiFi.


Se hai bisogno di un elenco di adattatori WiFi che dovrebbero funzionare prova qui
Wilf

Non vedo come attaccare un dongle WiFi USB economico aggiungerà Ethernet :-P
neuhaus

2

Sono in ritardo alla festa e hai già alcune opzioni molto economiche, ma credo che potresti essere in grado di farlo per meno - solo un paio di resistori - se hai un PC con una porta seriale di riserva nelle vicinanze. Il lato hardware è un po 'confuso, e la connessione sarà LENTO e tu dici che vuoi ragionevolmente veloce, ma ho pensato che valesse la pena menzionare comunque.

Premessa: è possibile eseguire la rete su seriale utilizzando PPP (quali modem utilizzano per connettersi all'ISP). Quindi, se riusciamo a far parlare Pix Tx e RX con una porta seriale del PC, possiamo collegarci in rete.

Come possiamo collegare il Pix Tx / Rx a una porta RS232? Le tensioni sono diverse, quindi potresti anche

  1. Usa un cambio di livello come MAX3232, che probabilmente ti costerà tanto quanto la scheda di rete, oppure ...
  2. Passa direttamente dalla linea Pi's Tx alla linea Rx del PC; il PC dovrebbe andare bene con la tensione più bassa. Misura la tensione che il PC genera sulla sua linea RS232 Tx e usa un divisore di resistenza per portarlo a 3.3v e collegalo alla linea Rx del Pi. Le specifiche RS232 consentono un'ampia gamma di tensioni, quindi non vorrai fare affidamento sul fatto che questo sia lo stesso tra i PC.

C'è un tutorial qui che spiega come eseguire la parte software.


Perché non utilizzare una porta USB e fare rete tramite USB? È più veloce del seriale e disponibile ovunque.
neuhaus,

2. Non pensare che volerà - i livelli RS232 sono equamente distanziati attorno alla tensione di terra e c'è un'isteresi, quindi una commutazione della tensione di ingresso tra un livello positivo e la terra è davvero fuori specifica: un ricevitore di tale segnale è interamente all'interno del Specifiche. ignorarlo (e RS232 è una polarità invertita IIRC - cioè tensione più negativa di -3,0 V = segno; tensione più positiva di 3,0 V = spazio). Di fatto, è per questo che c'era un requisito di alimentazione di -12 V per i PC più vecchi, puramente per le porte seriali, anche se oggigiorno è soddisfatto dai circuiti delle pompe di carica come quelli dei circuiti integrati della serie MAX.
SlySven,

2

Ho cercato di ottenere internet sul mio RPi zero e ho trovato questo elenco di adattatori per USB http://elinux.org/RPi_USB_Ethernet_adapters uno degli adattatori è realizzato da Plugable http://plugable.com/2015/12/10 / ethernet-per-il-lampone-pi-zero /

Ho impostato la scheda SD su un raspberry pi 1 perché era più semplice da configurare in quel modo (ho dato un ip statico modificando /etc/dhcpcd.conf) Quindi l'adattatore Plugable funziona senza lavoro extra, basta collegarlo e il potere e tutto funziona.

Non posso commentare se questa è una buona soluzione, ma sono in grado di SSH e lavorare sulla riga di comando senza evidenti problemi di prestazioni.


2

Un'altra opzione sarebbe questa: https://www.kickstarter.com/projects/755102253/pijack-add-ethernet-to-raspberry-pi-zero

Non è il modo più economico, ma garantito per funzionare ed essere supportato - come qualsiasi altro modulo basato su ENC28J60.

Questo non è stato finanziato ma è disponibile qui: http://www.pijack.net

Faccio parte del team di sviluppo, quindi potrei essere di parte!


1
Questa non è una risposta particolarmente utile. Questo è un link kickstarter che non è stato ancora completamente finanziato. Potrebbe anche non esistere nemmeno per quanto riguarda questa domanda.
Jacobm001

1
Tuttavia, è un progetto fattibile, il design EXISTS e i prototipi sembrano funzionali: la scheda aggiuntiva si collega a un'intestazione GPIO40 e fornisce una connessione Ethernet cablata SOLO a 10 Mbps (non 100 Mbps, non Gigabit!). Dato il calendario al momento della stesura di questo (2 mesi dopo l'uscita di Pi Zero), l'obiettivo di kick-start di circa £ 4,5K entro il 20160302 potrebbe essere raggiunto - ma l'impegno per una scheda completamente costruita (£ 17 per luglio 2016, altro sono disponibili impegni) meno un header a 40 pin potrebbe essere più di quanto alcuni vorrebbero. OTOH se questo è quello che vorresti, ringrazio il poster per averlo portato alla nostra attenzione ...
SlySven

Aggiornamento: non hanno ricevuto tutti i finanziamenti da kickstarter ma con altre fonti sono riusciti a farlo decollare ed è ora disponibile prodotto da loro PiJack che è una società con sede nell'UE (NON estremo-orientale) per £ 11,49 apparentemente .. .!
SlySven,

Ciò significa, ovviamente, che potresti anche usarlo come seconda connessione Ethernet e teoricamente utilizzare un modello RPi B + o 2 / 3B come Firewall hardware cablato, anche se il throughput NON sarebbe così alto per quanto posso vedere.
SlySven,

1

Quello che faccio è usare il port forwarding. Ho il Pi collegato al mio laptop come dispositivo di rete e accedo tramite SSH.

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

Questo crea una porta remota inoltrata a un server proxy (trovarne uno su http://proxylist.hidemyass.com/ o sito simile) sulla porta 1234. Il prossimo passo è aggiungere il proxy APT al file / etc / apt / apt. conf (crea se non trovato) e scrivi la seguente riga:

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

Profitto!


Mi piace questo suggerimento. Un laptop non è economico, ma molte persone li hanno in giro.
Fallimento logico

come hai collegato il Pi al laptop come dispositivo di rete (sono vari modi !!)
Wilf

Ho usato un cavo USB
Shmarkus

1

Certamente non la versione economica, ma sicuramente la più elegante, soprattutto se è necessario aggiungere ulteriori scudi tramite l'intestazione GPIO. E include HUB USB a 2 porte.

Potrei essere un po 'di parte dal momento che questo è probabilmente il mio prodotto che sto vendendo, ma è una soluzione potenzialmente valida:

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

Questo è il mio prodotto, quindi potrei essere di parte!


Ciao e Benvenuto. Si prega di notare che è richiesta la completa divulgazione della propria affiliazione . (Il tuo nome utente suggerisce in qualche modo una relazione). Modifica la tua risposta
Ghanima
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.