Raspberry pi Zero W: Installation sans écran ni clavier

Le raspberry pi zero W est un tout petit ordinateur avec carte wifi. Recette simple pour une installation de raspbian lite sans clavier ni écran.

raspberry pi zero W

Introduction

Le raspberry pi zero W est vraiment tout petit! Mais il peut quand même faire pas mal de boulot. Il est sorti en février 2017, et présente un avantage considérable par rapport à son prédécesseur, le raspberry pi zero : il peut se connecter au Wifi!

Dans cet article, vous apprendrez comment installer raspbian sur cette carte sans utiliser ni écran, ni clavier. Cela veut dire qu'à aucun moment, nous n'utiliserons le pi directement. Pour l'utiliser, nous devrons donc nous connecter à distance par ssh.

Pourquoi ce défi ? parce que cette toute petite carte ne comporte que quelques connecteurs :

  • deux ports micro USB
  • un port mini HDMI
  • un slot micro SD

Rares sont ceux qui possèdent les câbles nécessaires pour connecter écran et clavier là-dessus pour une installation standard, et nous allons donc procéder de manière plus intelligente (et plus rapide).

Voici donc ce que nous allons faire :

  • flasher une image de raspbian lite sur la carte micro SD
  • configurer la connexion au réseau wifi, et autoriser les connections à distance par ssh
  • démarrer le pi et s'y connecter par ssh pour finaliser l'installation

Le raspberry pi zero W

Le raspberry pi zero W existe en deux versions:

À gauche, le pi zero WH possède un header GPIO soudé en usine. Comme vous pouvez le voir, le mien est un pi zero W. Ce modèle est plus adapté pour être intégré à un circuit électronique, mais il me faudra souder moi-même un header pour expérimenter avec une breadboard.

Je suggère de se procurer le pi zero chez kubii (10 euros pour the W, 15 euros pour the WH). Je ne suis aucunement affilié avec eux, mais on peut leur faire confiance et ils ont de bons produits. Alors un peu de pub ne fait pas de mal.

Une chose à garder à l'esprit : Le pi zero ressemble vraiment au pi 3B+, mais il est beaucoup moins puissant.

Pi 3 B+ Pi Zero
CPU Quad Core
ARM Cortex-A53
Single Core
ARM1176JZF-S
Fréquence d'horloge 1.4 GHz 1 GHz
Nombre de coeurs 4 1
RAM 1 GB 512 MB
Prix 35 euros 10 or 15 euros

Avec son unique coeur et sa mémoire réduite, le pi zero devra être dédié à une seule tâche assez simple.

Par exemple, je vais utiliser le mien pour monitorer la puissance électrique consommée chez moi. Sa petite taille me permettra de le loger facilement dans le tableau électrique, et il n'aura pas grand chose à faire :

  • mesurer la tension et quelques intensités avec l'aide d'un ADC (convertisseur analogique vers digital);
  • communiquer les résultats par mqtt à mon serveur home assistant, qui lui tourne sur un pi 3B+.

Cela étant dit, c'est parti pour l'installation.

Flash de raspbian lite vers la carte micro SD

Cette opération est bien expliquée dans mon tuto sur l' installation minimale d'un raspberry pi . Veuillez vous y référer et revenir ici après avoir flashé l'image de raspbian lite sur la carte SD.

Mise en service de ssh

Par défaut, le serveur ssh est désactivé dans raspbian lite, et nous en avons vraiment besoin pour pouvoir se connecter au pi à distance après l'installation.

Dans l' installation minimale d'un raspberry pi , nous avons mis en service le serveur ssh avec raspi-config, mais ce n'est pas possible ici car nous ne pouvons (ou ne voulons) pas connecter un clavier et un écran au pi zero.

La solution est simple !

Après l'écriture de la carte SD, retirez-la du lecteur et ré-insérez la de façon à ce que votre système d'exploitation monte la partion boot de la carte SD sur votre ordinateur. Voici ce que je vois sur mon mac:

La partition boot de rasbian lite, sur la carte SD.

Sous MacOS ou Linux, ouvrez un terminal et allez à la racine de la partion boot. Ensuite, faites:

touch ssh

Cela crée un fichier vide appelé ssh dans ce répertoire, et cela suffit à mettre en service le serveur ssh lors du premier démarrage du pi!

Mise en service de la connexion wifi

Pour configurer la connection wifi, nous allons créer un autre fichier à la racine de la partion boot.

Appelez-le wpa_supplicant.conf, et utiliser votre éditeur de texte favori (par exemple nano ou emacs) pour y mettre le texte suivant :

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=FR

network={
     ssid="The name of your wifi network"
     psk="Your password"
     key_mgmt=WPA-PSK
}

Évidemment, prenez bien garde à :

Maintenant, démontez (éjectez) la carte SD, mettez la dans le pi zero, et branchez son alimentation. La led du pi zero commencera à clignoter. Donnez-lui un peu de temps pour démarrer son serveur ssh.

Découverte du pi sur le réseau

Après environ 30 s, le pi zero devrait être connecté à votre réseau wifi. Mais nous ne connaissons pas son adresse IP! Enquêtons...

Si votre routeur a fait correctement son boulot, vous devriez pouvoir effectuer un ping vers le pi en utilisant son nom par défaut, qui est raspberry. Je suppose bien sûr que vous n'avez pas déjà un autre raspberry pi sur le réseau avec ce nom-là. D'ailleurs rappelez-vous de toujours donner un nom unique à vos pis, car on a tendance à les accumuler...

Voici comment faire le ping :

ping raspberry
PING raspberrypi.lan (192.168.86.72): 56 data bytes
64 bytes from 192.168.86.72: icmp_seq=0 ttl=64 time=9.043 ms
64 bytes from 192.168.86.72: icmp_seq=1 ttl=64 time=12.771 ms
64 bytes from 192.168.86.72: icmp_seq=2 ttl=64 time=8.236 ms
64 bytes from 192.168.86.72: icmp_seq=3 ttl=64 time=13.609 ms
64 bytes from 192.168.86.72: icmp_seq=4 ttl=64 time=13.310 ms
64 bytes from 192.168.86.72: icmp_seq=5 ttl=64 time=13.606 ms
64 bytes from 192.168.86.72: icmp_seq=6 ttl=64 time=7.753 ms

Maintenant vous savez que vous pouvez utiliser le nom de machine par défaut pour ssh, et vous connaissez l'adresse IP du pi.

Si cela ne fonctionne pas, vous pouvez aller sur la page d'administration de votre routeur pour voir si une nouvelle machine est connectée. Je ne peux pas vraiment vous aider avec ça.

Enfin, vous pouvez utiliser nmap. Installez cet outil , ouvrez un terminal, et tapez:

nmap -sP 192.168.1.1/24

Je suppose ici que les adresses de votre réseau local commencent par 192.168.1, ce qui est généralement le cas. Chez moi, elles commencent par 192.168.86, donc j'ai tapé nmap -sP 192.168.86.1/24. Le /24 veut dire que nmap va scanner toutes les adresses, de 192.168.1.0 à 192.168.1.255.

Starting Nmap 7.70 ( https://nmap.org ) at 2019-04-28 16:57 CEST
Nmap scan report for testwifi.here (192.168.86.1)
Host is up (0.014s latency).
Nmap scan report for 192.168.86.22
Host is up (0.021s latency).
Nmap scan report for 192.168.86.24
Host is up (0.029s latency).
Nmap scan report for raspmedia.lan (192.168.86.30)
Host is up (0.020s latency).
Nmap scan report for chromecast-audio.lan (192.168.86.46)
Host is up (0.043s latency).
Nmap scan report for rasphome.lan (192.168.86.58)
Host is up (0.023s latency).
Nmap scan report for 192.168.86.60
Host is up (0.054s latency).
Nmap scan report for lyocms23.lan (192.168.86.61)
Host is up (0.00051s latency).
Nmap scan report for pizerow1.lan (192.168.86.72)
Host is up (0.014s latency).
Nmap done: 256 IP addresses (9 hosts up) scanned in 3.64 seconds

Avec ces informations, vous devriez être capable de trouver l'adresse IP de votre pi zero.

Connexion au pi et finalisation de la configuration

Connectez-vous au pi par ssh :

ssh pi@<raspberry, or IP address>

Utilisez le mot de passe par défaut, qui est raspberry.

Nous allons maintenant configurer la machine avec raspi-config :

sudo raspi-config

Dans Localisation Options :

  • Choisissez l'arrangement de clavier (keyboard layout) correspondant à votre clavier (le défaut est US);
  • Changez la zone temporelle (timezone)

Revenez en arrière et allez dans Network Options :

  • Changez le nom de la machine (Hostname). Par défaut c'est raspberry. C'est peut-être ok maintenant, mais vous devrez de toutes façons le changer si vous faites l'acquisition d'un nouveau pi. Donc donnez-lui dès maintenant un nom unique.

Revenez en arrière et changez le mot de passe utilisateur (User password). C'est important car, pour des raisons de sécurité, vous ne pouvez pas garder un mot de passe connu par tous!

Vous pouvez maintenant quitter raspi-config et redémarrer. Après le redémarrage, vous devrez vous reconnecter par ssh, avec le nouveau nom de machine.

Enfin, nous allons mettre à jour le sytème :

sudo apt update
sudo apt upgrade

Et, si vous le souhaitez, vous pouvez installer des packages supplémentaires, par exemple :

sudo apt install xterm emacs git dbus-x11

Et voilà!

Dans cet article, vous avez appris :

  • ce qu'est le raspberry pi zero W : un tout petit ordinateur avec une carte wifi.
  • comment installer raspbian sur un raspberry pi sans clavier ni écran. Cette technique fonctionne avec tous les modèles de raspberry pi pourvus d'une carte wifi.
  • comment utiliser nmap pour trouver les machines connectées à votre réseau.

Préparez-vous à quelques tutos sur le thème des objets connectés!


N'hésitez pas à me donner votre avis dans les commentaires ! Je répondrai à toutes les questions.

Et si vous avez aimé cet article, vous pouvez souscrire à ma newsletter pour être prévenu lorsque j'en sortirai un nouveau. Pas plus d'un mail par semaine, promis!

Retour


Encore plus de data science et de machine learning !

Rejoignez ma mailing list pour plus de posts et du contenu exclusif:

Je ne partagerai jamais vos infos.
Partagez si vous aimez cet article: