Aller au contenu principal

Machine de travail IoT

installation de Ubuntu server 64 bits sur Rpy 3/4

1.0 Préparation matérielle

Boot sur clé USB pour plus de confort.. de rapidité, de quantité mémoire, etc... La procédure est la suivante

arp -a | findstr b8-27-eb
  • La suite du travail est faite avec le ssh sur la Raspberry...

1.1 configuration initiale

  • au 1er démarrage, changement du mot de passe par defaut : ubuntu / par : iutseMP2022 (iutSEmp2022)
  • réaliser les mises à jours des paquets puis redémarrer
sudo apt update
sudo apt upgrade -y
sudo reboot
  • installation du francais pour l'I18N
sudo apt autoremove --purge -y
sudo locale-gen fr_FR
sudo locale-gen fr_FR.UTF-8
sudo update-locale LANG=fr_FR.UTF-8 LANGUAGE=fr_FR
sudo update-locale
sudo locale-gen --purge
sudo timedatectl set-timezone Europe/Paris
sudo reboot

proxy-cache

au sein de UJM... accès au proxy.. en ajoutant au fihier d'environnement (remarque : ne fonctionne pas avec snap.. )

sudo nano /etc/environment  

avec les lignes suivantes à la fin du fichier

http_proxy="http://cache.univ-st-etienne.fr:3128/"
https_proxy="http://cache.univ-st-etienne.fr:3128/"
ftp_proxy="http://cache.univ-st-etienne.fr:3128/"
no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
HTTP_PROXY="http://cache.univ-st-etienne.fr:3128/"
HTTPS_PROXY="http://cache.univ-st-etienne.fr:3128/"
FTP_PROXY="http://cache.univ-st-etienne.fr:3128/"
NO_PROXY="localhost,127.0.0.1"
sudo timedatectl set-ntp true

penser aussi à modifier le fichier de configuration

sudo nano /etc/systemd/timesyncd.conf

pour ajouter le ntp de UJM avec la ligne en fin de fichier

FallbackNTP=ntp.univ-st-etienne.fr

puis redémarrer... et vérifier que le ntp a bien été activé (commande date )

1.2 Wifi

avec le snap wifi-ap

Ubuntu propose un snap qui fonctionne simplement, et pour l'installer, voir les consignes à https://snapcraft.io/install/wifi-ap/ubuntu

sudo snap install wifi-ap 

les informations de configuration sont dans le fichier config du snap

cat /var/snap/wifi-ap/current/config 
sudo wifi-ap.config get

et pour modifier l'ensemble des paramètres, et finalement récupérer la clé WIFI, utiliser les commandes suivantes

sudo wifi-ap.config set wifi.channel=2
sudo wifi-ap.config set wifi.country-code=FR
sudo wifi-ap.config set wifi.ssid=ubuntuMP
sudo wifi-ap.config get wifi.security-passphrase

donc SSID = ubuntuMP et pass = qjyWU5yEWjTdyVng et penser à faire un reboot !

avec le snap de NM : NetworkManager

!! cette partie n'est pas opérationnelle !! et seule la solution 1 fonctionne; elle est inspirée de l'usage de l'outil de virtualisation de Ubuntu snap présent dans les dépots snapcraft.io avec celui dédié au point d'accès avec utilisation du network manager à https://snapcraft.io/nm-wifi-hotspot

  • installation
 sudo snap install nm-wifi-hotspot --edge
  • configuration avec les commandes
sudo snap set nm-wifi-hotspot ssid="ubuntuMP"
sudo snap set nm-wifi-hotspot psk="qjyWU5yEWjTdyVng"

en ligne de commande

!! cette partie n'est pas opérationnelle !! seule la solution précedente fonctionne; elle est inspirée du lien https://linuxconfig.org/ubuntu-20-04-connect-to-wifi-from-command-line et pour commencer il est bien de vérifier la présence des fichiers de configuration

ls /sys/class/net
ls /etc/netplan/

ensuite éditer le fichier

sudo nano /etc/netplan/50-cloud-init.yaml

et ajouter à la suite les lignes

    wifis:
wlan0:
optional: true
access-points:
"ubuntuMP":
password: "qjyWU5yEWjTdyVng"
dhcp4: true

puis redémarrer les services réseau

sudo netplan --debug apply

1.3 MQTT server

pour mosquitto de la fondation Eclipse https://mosquitto.org/

  • installation via les paquets, puis création d'un fichier de configuration personnalisé
sudo apt install net-tools -y
sudo apt install mosquitto mosquitto-clients -y
cd /etc/mosquitto/conf.d
sudo nano /etc/mosquitto/conf.d/iot.conf

pour ajouter les lignes suivantes qui autorisent l'accès via toutes les interfaces réseau

listener 1883
password_file /etc/mosquitto/conf.d/passwd
  • puis ajout d'un user, avec le mot de passe iutseMP2022
 sudo mosquitto_passwd -c /etc/mosquitto/conf.d/passwd iutmp
  • redémarrer le service, et tester pour vérifier le user/passwd
sudo systemctl restart mosquitto.service
systemctl status mosquitto.service
mosquitto_pub -t sensors/temperature -m 32 -q 1 -r --username iutmp --pw iutseMP2022
mosquitto_sub -t '#' --username iutmp --pw iutseMP2022 --remove-retained --retained-only

1.4 Nodered

Installation : méthode rapide

simplement avec l'outil de virtualisation de Ubuntu snap en version edge en écoute sur le port 1880... cf https://snapcraft.io/node-red

sudo snap install node-red --edge

Les fichiers de configuration, flows, etc.. sont dans le dossier /var/snap/node-red/current

  • pour ajouter des outils dans la palette et créer des flows, cf nodered tutoriel
  • pour visualiser les fichiers de cette configuration : flows, etc...
ls -al /var/snap/node-red/current/

Installation : méthode classique

Elle est précisée dans la documentation pour un systeme Linux ou raspberry à https://nodered.org/docs/getting-started/raspberrypi

sudo apt install -y build-essential git curl 
bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)

Ensuite il est demandé de lancer la procédure de configuration de l'initialisation avec

Exécution

lancer l'accès au service sur l'URL ip-server:1880

1.5 Influxdb2

installation rapide

Pour installer la version edge du dépot snap, le serveur est en écoute port 8086.. cf https://snapcraft.io/influxdb pour la ligne de commande :

sudo snap install influxdb --edge 

installation dans OS

voir ce qui est un peu plus complet à influxdb

  • Pour la configuration et l'utilisation (depuis la version 2) via le frontal web...

1.6 Grafana

Super outil de dataviz.. le site officiel à https://grafana.com/oss/ et pour la derniere version stable (8..) le dépot snap officiel à https://snapcraft.io/grafana-8-u ce qui permet de l'installer avec une seule commande

sudo snap install grafana-8-u 

Utiliser le frontal web pour l'utiliser !! mais il n'est ouvert qu'en local sur le port 3125.. donc à configurer

1.7 Bilan

Les fichiers de configuration pour les services installés via les dépots "snap", visualiser les dossiers associés, et pour les ports en écoute via udp et tcp, les 2 commandes :

ls -al /var/snap/
netstat -antu
  • services de type network
serviceportprotocole
node-red1880http
influxdb28086http
mosquitto1883mqtt
grafana3125http