Quel est le moyen le plus économique d’obtenir une connectivité réseau au Pi Zero?


50

Étant donné que le Pi Zero n’est pas livré avec un port Ethernet, je me demande quel est le moyen le moins coûteux d’obtenir une connectivité réseau relativement rapide au périphérique.

MISE À JOUR

Par "connectivité réseau", j'entends la connexion à un réseau local / réseau local sans fil, afin que les périphériques puissent communiquer entre eux, communiquer avec d'autres périphériques et accéder à Internet. Par exemple, après l'installation, je devrais pouvoir le faire wget stackexchange.com. Je ne me soucie pas vraiment de savoir si c'est WiFi ou Ethernet, mais je suppose que Ethernet devrait être plus rapide et plus fiable (juste une supposition).

Quelqu'un vient de demander si cela pourrait être fait avec HDMI , alors je sais que d'autres personnes recherchent une solution au même problème (ou à un problème similaire).


Au moment où vous avez ajouté une carte SD et un adaptateur réseau, non seulement le coût a presque triplé, mais vous avez probablement perdu votre seul port USB.
Chris Stratton

1
Quel est le but, @ChrisStratton? Vous devez ajouter une carte SD à n'importe quel Pi. Et il peut y avoir des cas d'utilisation qui ne nécessitent aucun port USB supplémentaire. Mais de toute façon, je pense que nous vivrons pour voir un Pi avec WiFi à bord ^^
Ghanima

Réponses:


33

Deux options:

a) Acheter un adaptateur Micro USB RJ45 pour 2,15 $

b) Adaptateur USB RJ45 pour 1,50 USD et adaptateur micro USB OTG pour 0,23 USD (prix total: 1,73 USD)

Certains articles peuvent être moins chers si vous les achetez en utilisant l'application mobile.


1
L'option (a) semble correspondre le mieux à mes besoins, mais je vais suivre la question pour d'autres idées. Je pense qu'il devrait être possible d'intégrer un RJ45, une puce de contrôleur Ethernet et une puce USB de la même manière que les plus gros Pi. J'ai essayé de passer en revue les schémas du modèle Pi 2 de modèle B hier, mais sans les schémas Pi Zero, je suis un peu coincé.
Échec logique

USD5 pour Pi Zero et + - USD2 pour le réseau. Une machine très performante sous Linux de 1 GHz, 512 Mo. Je suis sans voix ... Excellente réponse
Piotr Kula

5
N'achetez pas l'adaptateur b) (JP1082), il ne fonctionnera pas avec un noyau non attaché et vous devrez le recompiler après chaque mise à jour.
gajdipajti

@neuhaus Si j'achète l'option a, puis-je également l'utiliser pour alimenter l'ordinateur en électricité?
Ricardo

le RD-9700 ne semble pas fonctionner du tout sur Raspbian. et le pire de tous apparemment sa seule clé USB 1.1
Piotr Kula

24

Ethernet sur SPI

L'un des moyens les moins coûteux consiste à connecter un contrôleur Ethernet via le bus SPI. Un tel contrôleur pourrait être par exemple ENC28J60 qui est souvent utilisé pour la connectivité Ethernet pour Arduino. Les derniers noyaux Linux pour Raspberry Pi ont un pilote avec une superposition d'arborescence de périphériques. Voir par exemple https://github.com/raspberrypi/linux/issues/795

L'avantage de cette solution est que le port USB restera disponible. Un inconvénient est que la puce (et la vitesse de SPI) prend en charge uniquement Ethernet 10BASE-T (10 Mbps).

Des modules complets offrant les prix les plus bas (quelques dollars américains) pourraient probablement être trouvés sur AliExpress: http://www.aliexpress.com/wholesale?SearchText=ENC28J60


1
C'est une alternative très intéressante, où vous pouvez utiliser le GPIO pour avoir une connexion Ethernet. OK, ce n’est pas idéal pour le streaming multimédia HD ... mais si tout ce qu’il fait est une station météo ou un routeur CNC ... excellent!
Piotr Kula

Où mettriez-vous cette puce sur le zéro?
Patoshi a annoncé

1
@duckx: Voici un exemple de câblage et d'utilisation de la superposition d'arborescence de périphériques: gajdicookbook.wordpress.com/2015/02/25/… Voici des images utilisant le même câblage: elektroda.pl/rtvforum/topic2950919.html (le les broches de l'en-tête GPIO sont les mêmes depuis la première version du Raspberry Pi jusqu'au Pi Zero).
Pabouk

1
Normalement, 300 Ko / s peuvent être obtenus à l'aide d'un module ENC28J60. Je pense personnellement que c'est la meilleure solution. (Je l'ai couplé à un A + qui exécute munin-node pour les capteurs DB18B20 .)
gajdipajti

1
@gajdipajti: Avec une fréquence d'horloge SPI accrue: spi-max-frequency = 20000000la bande passante moyenne devrait être d'environ 540 ko / s: github.com/raspberrypi/linux/issues/795#issuecomment-87255295 Malheureusement, si vous considérez par exemple une vidéo 1080p24, cela ne suffit pas pour la transmission en continu de vidéos qualité acceptable. ------ Comme cela est mentionné plus avant dans le numéro de GitHub, il devrait être possible à l’avenir d’augmenter davantage la fréquence - plus près du maximum de la ENC28J60, 20 MHz.
Pabouk

9

Pour moi, le moyen le moins cher et le plus simple de passer d’Ethernet au Zero était de passer par l’USB à mon hôte. J'ai trouvé que le lien ici était le plus simple et le plus rapide. Définissez une adresse IP statique pour la connexion réseau USB0 et il fonctionne parfaitement pour SSH au zéro lorsqu'il est branché sur USB sur mon ordinateur portable et mon ordinateur de bureau. Sous Windows 10, il s’agit d’un port série USB. Vous devez spécifier le pilote Acer RDNIS, mais après cela fonctionne également très bien sous Windows. Windows 7 et 8 viennent de le voir sans même demander. Espérons que cela aide. :)

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


2
Guide mis à jour et simplifié ici: gist.github.com/gbaman/975e2db164b3ca2b51ae11e45e8fd40a
craintif

7

Si le moins cher était la seule exigence, je choisirais un module WiFi ESP8266-01 comme celui- ci . Coût total: 3,50 $ US, frais de port compris. Quelques tutoriels expliquent comment les utiliser avec le Pi:

Vous voudrez peut-être dépenser quelques dollars de plus et choisir l'un des modèles haut de gamme ESP8266. Ces modules haut de gamme ont quelques avantages supplémentaires, tout en coûtant moins de 10 USD, ils contiennent un ADC que le Pi n’a pas, ils détachent également toutes les broches de la puce ESP.


Existe-t-il une stratégie similaire pouvant être utilisée pour Ethernet? Il y a un Instructable similaire pour Arduino .
Échec logique

Cette même partie est mentionnée (un adaptateur série-Ethernet fonctionnera également avec le Pi) Consultez ce fil de discussion raspberrypi.org/forums/viewtopic.php?f=44&t=18397 . Notez que votre question ne mentionne pas que vous voulez une solution Ethernet.
Steve Robillard

Je vois un Pi Zero + à l'horizon! Eh bien, je comprends bien la raison de l’approche minimaliste et économique de la Fondation avec le Zero. Mais il devrait y avoir un Pi avec WiFi à bord à tout moment. Pensez Internet-of-Things.
Ghanima

Je pense que tout ce qui est connecté via un port série UART échoue dans la partie "raisonnablement rapide" de la liste des exigences.
Peter Green

1
@neuhaus, bien sûr, c'est plus lent si vous utilisez l'UART. Mais ~ 40Mb / s a ​​été signalé en utilisant le mode SDIO. Voir ma réponse
John La Rooy

6

Une meilleure solution ESP8266 consiste à le connecter en tant que périphérique SDIO sur le port GPIO.
C’est peu coûteux et vous permet d’obtenir ~ 40 Mo / s en wifi

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

Un peu d'histoire L'ESP8266 IC (si vous n'en avez pas entendu parler) est un microcontrôleur Wifi extrêmement populaire avec de nombreux modules bon marché sur le marché. Il était à l'origine utilisé comme interface série UART pour les microcontrôleurs, mais a depuis été porté pour fonctionner en tant que microcontrôleur autonome utilisant LUA ou Arduino. C'est un microcontrôleur très rapide qui fonctionne à 80 MHz. C’est l’un de mes microcontrôleurs préférés à utiliser pour les projets car il est rapide, bon marché et doté du wifi.

Quelques versions du module sont sorties, notamment les ESP-12E et ESP-12F (les deux autour de 2 $ à 3 $) qui sortent de l'interface SDIO. C'était en grande partie inutile, car l'interface SDIO est utilisée pour la mémoire flash.

Cependant, il s’avère que l’ESP8266 est en fait un CI ESP8089 qui vient d’être renommé. L'ESP8089 est une puce wifi SDIO pour petites tablettes. Si vous ne tirez pas sur GPIO 15 au démarrage, comme vous le feriez lorsque vous l'exécutez en tant que microcontrôleur, il s'exécute en mode SDIO et est à la base un circuit intégré ESP8089.

Ce projet est basé sur le projet Hackaday.io RPi WiFi . J'ai apporté quelques modifications pour travailler avec le nouveau noyau Linux dans la nouvelle Raspbian et j'ai écrit un script pour automatiser complètement le processus. Pour l'utiliser, vous avez besoin d'un module ESP-12E ou ESP-12F. L'ESP-12F est recommandé.

Commencez par câbler l’ESP-12F comme ceci.

entrez la description de l'image ici

Les résistances de 33 ohms sont nécessaires pour atteindre les vitesses SDIO requises, aussi veuillez ne pas les oublier. Il est également préférable de tirer à partir du rail 5v et d’avoir un LDO séparé pour le module ESP8266, mais tirer directement à partir d’un rail 3,3v sur le Raspberry pi devrait bien fonctionner.

SSH dans votre Raspberry Pi et entrez les commandes suivantes. Vous voudrez peut-être développer le système de fichiers d'abord en utilisant raspi-config.

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

Cela va prendre un moment. Alors asseyez-vous et attendez, ou allez prendre un café.

Lorsque cela est fait, redémarrez votre Pi.

sudo reboot

Après le redémarrage, le module ESP8266 devrait s’activer. Vous pouvez faire une analyse rapide pour vous assurer que cela fonctionne.

sudo iwlist scan

Il devrait rechercher les réseaux sans fil et vous montrer ce qui est disponible.

Maintenant, cela fonctionnera comme n'importe quel autre module WIFI. À votre santé.


4

Commander HubPiWi - un ajout pour Pi Zero avec 3 ports USB et une connexion Wi-Fi intégrée avec antenne intégrée. La carte possède une antenne de circuit imprimé et ne nécessite ni câble ni connecteur.

entrez la description de l'image ici

Une utilisation typique de HubPiWi consiste à ajouter un clavier, une souris et une caméra sur les trois ports USB. C'est en plus du Wifi, bien sûr.


1
Intéressant, toutefois, à 13 dollars, ce n’était guère "le moyen le moins cher d’obtenir une connectivité réseau", ce qui était la question de départ.
neuhaus

3

Une réponse (maintenant) plutôt évidente est d’obtenir le Raspberry Zero W (sans fil), qui semble actuellement coûter environ 5 £ de plus qu’un Zero normal (entre 9 et 10 £ actuellement sur la plupart des détaillants britanniques - sans broches d’entête et autres accessoires)

Cela présente divers avantages par rapport à d'autres solutions, notamment:

  • Est à bord, est donc disponible hors de la boîte facilement
  • Est très compact et peut être plus économe en énergie que d'autres solutions
  • Comprend Bluetooth.
  • Ne pas utiliser de connecteurs GPIO, USB ou autres sur le Pi

2

Je réponds à ma propre question avec deux idées que j'ai, mais les deux solutions sont collantes (IMO) et pas si bon marché (10-30 $). J'espère qu'il y a un meilleur moyen.

Connectez un adaptateur micro-USB à USB , puis:

  1. Chaîne a avec un adaptateur USB-Ethernet, ou

  2. Coller dans un dongle USB WiFi bon marché.

Le premier sera probablement le plus fiable; J'ai eu la malchance avec les dongles WiFi.


Si vous avez besoin d'une liste d'adaptateurs WiFi qui devrait fonctionner, essayez ici
Wilf

Je ne vois pas comment coller un dongle WiFi USB bon marché ajoutera Ethernet :-P
neuhaus

2

Je suis en retard pour la fête et vous avez déjà des options très bon marché, mais je pense que vous pourrez le faire pour moins cher - juste quelques résistances - si vous avez un PC avec un port série disponible à proximité. Le matériel est un peu compliqué, et la connexion sera lente et vous dites que vous voulez être assez rapide, mais j’ai pensé que cela valait la peine d’être mentionné.

Prémisse: vous pouvez créer un réseau sur une connexion série en utilisant PPP (ce que les modems utilisent pour se connecter au FAI). Donc, si nous pouvons faire communiquer le Tx et le RX du Pi à un port série d'un PC, nous pouvons établir un réseau via ce réseau.

Comment pouvons-nous connecter le Tx / Rx du Pi à un port RS232? Les tensions sont différentes, vous pouvez donc soit

  1. Utilisez un sélecteur de niveau tel qu'un MAX3232, qui vous coûtera probablement autant que la carte réseau, ou ...
  2. Passez directement de la ligne Tx du Pi à la ligne Rx du PC; le PC devrait être bien avec la tension inférieure. Mesurez la tension générée par le PC sur sa ligne RS232 Tx, utilisez un diviseur de résistance pour l’obtenir à 3,3 v et connectez-la à la ligne Rx du Pi. La spécification RS232 autorise une large gamme de tensions, vous ne voudrez donc pas vous fier à la même chose entre PC.

Il y a un tutoriel ici qui explique comment faire la partie logicielle.


Pourquoi ne pas utiliser un port USB et faire de la mise en réseau via USB? C'est plus rapide que la série et disponible partout.
neuhaus

2. Ne croyez pas que ça va voler - les niveaux RS232 sont équidistants autour de la tension de terre et il y a une hystérésis, donc une commutation de tension d'entrée entre un niveau positif et la terre est vraiment hors normes: un récepteur d'un tel signal est entièrement compris dans le champ Spécifications. de l'ignorer (et RS232 est un IIRC de polarité inversée - c'est-à-dire une tension plus négative que -3,0V = marque; une tension plus positive que 3,0V = espace). C’est justement pour cette raison que les anciens PC nécessitaient une alimentation de -12 V - uniquement pour les ports série, bien qu’il soit satisfait aujourd’hui par des circuits de pompe de charge comme ceux des circuits intégrés de la série MAX.
SlySven

2

J'ai essayé d'obtenir Internet sur mon RPi zéro et trouve cette liste d'adaptateurs pour usb http://elinux.org/RPi_USB_Ethernet_adapters l' un des adaptateurs est fait par Plugable http://plugable.com/2015/12/10 / ethernet-pour-la-framboise-pi-zero /

J'ai installé la carte SD sur un Raspberry Pi 1 car il était plus simple de le configurer de cette façon (je lui ai donné une adresse IP statique en modifiant le fichier /etc/dhcpcd.conf). Ensuite, l'adaptateur plugable fonctionne sans travail supplémentaire, il suffit de le brancher et le pouvoir et tout fonctionne.

Je ne peux pas dire s'il s'agit d'une bonne solution, mais je suis capable de SSH et de travailler en ligne de commande sans aucun problème de performances notable.


2

Une autre option serait la suivante: https://www.kickstarter.com/projects/755102253/pijack-add-ethernet-to-raspberry-pi-zero

Ce n’est pas le moyen le moins cher, mais son fonctionnement et son support sont garantis - comme tout autre module basé sur ENC28J60.

Celui-ci n'a pas été financé mais est disponible ici: http://www.pijack.net

Je fais partie de l'équipe de développement donc je pourrais être partial!


1
Ce n'est pas une réponse particulièrement utile. C'est un lien kickstarter qui n'a même pas encore été entièrement financé. Cela peut aussi bien ne pas exister en ce qui concerne cette question.
Jacobm001

1
Il s'agit d'un projet réalisable, mais EXISTS et les prototypes semblent fonctionnels: la carte d'extension se connecte à un en-tête GPIO40 et fournit une connexion Ethernet câblée à 10 Mbps SEULEMENT (pas à 100 Mbps, ni à Gigabit!). Compte tenu des délais au moment de la rédaction de cet article (deux mois après la sortie de Pi Zero), l'objectif de lancement d'environ 4,5 K £ d'ici 20160302 pourrait être atteint - mais la promesse d'une planche entièrement construite (17 £ pour juillet 2016, autres) les promesses sont disponibles) moins 40 en-tête Pin peut être plus que certains iraient pour. OTOH si c'est ce que tu veux, je remercie l'affiche de l'avoir portée à notre attention ...
SlySven

Mise à jour: ils n’ont pas obtenu tous les fonds de Kickstarter, mais avec d’autres sources, ils ont réussi à le faire décoller. Il est maintenant disponible et fabriqué à partir de leur fournisseur , PiJack, une société basée à l’UE (et non en Extrême-Orient) pour 11,49 £ apparemment. .!
SlySven

Cela ne signifie, bien sûr que vous pouvez aussi l' utiliser comme une seconde connexion Ethernet et théoriquement utiliser un modèle RPi B + ou 2 / 3B comme matériel filaire Firewall - bien que le débit ne serait PAS que élevé pour autant que je peux voir.
SlySven

1

Ce que je fais est que j'utilise la redirection de port. J'ai le Pi connecté à mon ordinateur portable en tant qu'appareil réseau et j'y accède via SSH.

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

Cela crée un transfert de port distant vers un serveur proxy (recherchez-le sur http://proxylist.hidemyass.com/ ou un site similaire) sur le port 1234. L'étape suivante consiste à ajouter un proxy APT au fichier / etc / apt / apt. conf (créez si non trouvé) et écrivez la ligne suivante:

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

Profit!


J'aime cette suggestion. Un ordinateur portable n'est pas bon marché, mais beaucoup de gens le font traîner.
Échec logique

comment avez-vous connecté le Pi à l'ordinateur portable en tant qu'appareil réseau (il existe différentes manières !!)
Wilf

J'ai utilisé un câble USB
Shmarkus

1

Certainement pas la version bon marché, mais certainement la plus élégante - surtout si vous devez ajouter des boucliers supplémentaires via l’en-tête GPIO. Et comprend un hub USB à 2 ports.

Je suis peut-être un peu biaisé car c'est probablement mon produit que je vends, mais c'est une solution potentiellement valable:

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

Ceci est mon produit donc je pourrais avoir des préjugés!


Bonjour et bienvenue. Veuillez noter que la divulgation complète de votre affiliation est requise. (Votre nom d'utilisateur suggère un peu une relation). Veuillez éditer votre réponse.
Ghanima
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.