Menu Fermer

Installation d’un Raspberry Pi 4 Model B avec le Pi4J pour Java et quelques tests en Python

L’exercice a été pour moi de vérifier que le nouveau Raspberry Pi 4 model B sorti en juin 2019 ne donnait aucune difficulté avec les descriptions et le contenu de mon livre Un livre sur Java, Python, Eclipse et le Raspberry Pi 3.

J’ai aussi acheté une carte SD de 32 Goctets et un adaptateur USB micro-B à USB-C afin d’utiliser une de mes anciennes alimentations officielles du Raspberry Pi (2.5 A), même s’il est recommandé d’acheter la nouvelle à 15 W (3.0 A). Je n’avais pas vu la note et je ferai une commande de cette alimentation  avant de tester les partie HDMI où il me faudra aussi un adaptateur HDMI. Pour l’instant je n’ai pas eu de soucis avec ce système avec une configuration sans écran.

J’ai utilisé les répertoires de sauvegarde d’un autre Raspberry Pi 3 pour les installer avec WinScp.

L’article Réinstaller un Raspberry Pi 3 avec Raspbian Buster pourra être consulté pour les détails.

Cette partie devrait encore être formatée correctement pour WordPress et pourrait nécessiter plus de commentaires et de détails :

But: installation de Raspbian Buster sur un Pi 4 avec une application de simulation de présence et quelques scripts Python.

Nous téléchargeons 2019-06-20-raspbian-buster-full.zip et dézipons dans un répertoire: 2019-06-20-raspbian-buster-full.img

Avec Win32 Disk Manager nous copions l'image sur la carte.

Lorsque c'est terminé, nous créerons notre fichier ssh vide et wpa_supplicant.conf comme décrit dans le livre page 43. Errata: fichier ssh en minuscule.

En utilisant le client Web de mon routeur, je découvre le nouveau nom raspberrypi-1 avec l'adresse IP 192.168.1.143 et je lui attribue une adresse IP fixe. Ensuite je redémarre le Pi 4 depuis PuTTY.

L'utilisateur de pi possède le password raspberry. Si un nouveau mot de passe est trop simple, il est refusé. Bravo Buster.

Avec WinScp j'ai copié mes sauvegardes de trois répertoires (java, python et celui de mon outil de simulation).  

Pour tous les fichiers .sh un chmod +x  python est nécessaire.

Un sudo halt et une arrêt de l'alimentation me permettra de transférer  
ma platine de test, broche à broche, d'un Raspberry Pi 3 A+, au Pi 4.   

L'installation du Pi4J c'est faite comme à la page 86 du chapitre 7 avec curl -s get.pi4j.com | sudo bash. J'ai aussi compilé tous les exemples. Aucun soucis, même avec le JDK 11.0.3 dans Buster du Pi 4.

Ensuite nous testons nos classes Java, quelques scripts Python avec un relais et un capteur de lumière et, évidemment, l'application de simulation de présence.

Aucun souci pour l'instant! Cool! Je continue mes tests et je vais me mettre à la version 11.0.3 de Java, qui vient avec Buster et faire une installation avec le JDK 11 de Java sur PC, avec le dernier Eclipse, mais toujours avec le Pi4J qui restera sans doute encore pour plusieurs semaines ou mois, sous Java 8.

Je passerai ensuite à la version écran et en y connectant un écran 4K ou similaire.

Test avec un relais

Je viens de recevoir mon Raspberry Pi 4 et installé comme décrit ci-dessus. J’avais juste commandé ce Raspberry Pi 4 Model B/4GB et le petit adaptateur noir (USB micro B à USB-C). Le câble USB blanc ici va directement sur un USB-3 connecteur de mon PC Windows 10, où j’utilise PuTTY pour me connecter, WinScp pour transférer mes fichiers .class ou .py et Eclipse pour le développement et la compilation de mon code Java.

Les trois câbles femelle-femelle sont pratiques dans ce cas, et le relais réagit bien avant des clics significatifs au script Python relay.py:

# coding: utf-8
import RPi.GPIO as GPIO
import time

RelayPin = 16 # pin16 (GPIO_04)

def setup():
GPIO.setmode(GPIO.BOARD) # Numéro GPIO par broche physique
GPIO.setup(RelayPin, GPIO.OUT) # RelayPin en mode output

GPIO.output(RelayPin, GPIO.HIGH)
time.sleep(1)
GPIO.output(RelayPin, GPIO.LOW)
time.sleep(1)

GPIO.cleanup() # Ressources libérées

if __name__ == '__main__': # Démarrage en Python
setup()

Le GPIO 04: c’est la notation de la librairie Java du Pi4J (pour vérifier ensuite mon code Java qui fonctionne aussi).

Date de la dernière modification: 9 septembre 2019