Projets Raspberry
Damgan
17 juillet 2019
Structure d’une machine informatique
Ordonnancement
}
Structure d'un ordinateur
/dev
4
1 Présentation d'Unix : le projet GNU
Le projet GNU : [Link]
Principe de base : le libre accès au code source accélère le progrès en matière
d'informatique car l'innovation dépend de la diffusion du code source
La liberté au sens GNU est définie selon quatre principes :
- liberté d'exécuter le programme, pour tous les usages
- liberté d'étudier le fonctionnement du programme, de l'adapter à ses besoins
- liberté de redistribuer des copies
- liberté d'améliorer le programme et de publier ses améliorations, pour en faire profiter toute
la communauté
/ la racine, elle contient les répertoires principaux
/bin contient des exécutables essentiels au système, employés par tous les utilisateurs.
/boot contient les fichiers permettant à Linux de démarrer
/dev contient les points d'entrée des périphériques
/etc commandes et les fichiers nécessaires à l'administrateur (fichiers passwd, group, inittab, [Link], [Link], ...)
/home répertoire personnel des utilisateurs
/lib contient des bibliothèques partagées essentielles au système lors du démarrage
/lost +found fichiers perdus. Le binaire fsck, lancé au démarrage de linux, les détecte et les stocker dans ce répertoire
/media contient les points de montage des partitions temporaires (cd-rom, disquette, ...)
/opt contient des packages d'applications supplémentaires
/root répertoire de l'administrateur root
/sbin contient les binaires système essentiels (par exemple la commande adduser)
/tmp contient les fichiers temporaires
/usr Hiérarchie secondaire
/usr/bin contient la majorité des fichiers binaires et commandes utilisateurs
/usr/include contient les fichiers d'en-tête pour les programmes C et C++
/usr/lib contient la plupart des bibliothèques partagées du système
/usr/local contient les données relatives aux programmes installés sur la machine locale par le root
/usr/sbin contient les fichiers binaires non essentiels au système réservés à l'administrateur système
/usr/share réservé aux données non dépendantes de l'architecture
/usr/src contient des fichiers de code source
/usr/X11R6 contient ce qui concerne Xfree86 (bibliothèques, binaires, documentation).
/var contient des données variables
6
/var/spool répertoire des fichiers qui servent de file d'attente. Les données à imprimer, envoyer, sont stockées jusqu'à ce
3 Éléments d'administration Unix : Nommage des périphériques
Nommage des périphériques :
Périphériques IDE
IDE 0 Master Slave
/dev/hda /dev/hdb
IDE 1 Master Slave
/dev/hdc /dev/hdd
3 Éléments d'administration Unix : Partitionnement des disques
Partitionnement disque :
M
B
R
Disque dur entier (/dev/hda)
4 partitions
primaires max
M Partition primaire 1 Partition primaire 2 Partition primaire 3 Partition primaire 4
B /dev/hda1 /dev/hda2 /dev/hda3 /dev/hda4
R Système Windows
Data utilisateur Applications Archives
bootable 3 partitions primaires max +
1 étendue
M Partition primaire 1 Partition primaire 2 Partition étendue 3 /dev/hda3
/dev/hda1 /dev/hda2
B /dev/hda5 /dev/hda6 /dev/hda7 /dev/hda8
R Système Windows Data utilisateur Swapp
Linux Syst. Data user Applications
bootable
MBR
MBR : Master Boot Reccord
TP BL BS Partition 1 BS Partition 2 BS Partition 3 TP : Table Partition
bootable
BL : Boot Loader
BS : Boot Sector
Rq: correspondance Windows : C: <=> /dev/hda1
D: <=> /dev/hda2 ...
3 Éléments d'administration Unix : Filesystem
Système d'exploitation Types de système de fichiers supportés
Dos FAT16
Windows 95 FAT16
Windows 95 OSR2 FAT16, FAT32
Windows 98 FAT16, FAT32
Windows NT4 FAT, NTFS (version 4)
Windows 2000/XP FAT, FAT16, FAT32, NTFS (versions 4 et 5)
Linux Ext2, Ext3, Ext4, ReiserFS, Linux Swap, (FAT, NTFS, ...)
MacOS HFS, MFS
SGI IRIX XFS
FreeBSD, OpenBSD UFS (Unix File System)
Sun Solaris UFS (Unix File System)
IBM AIX JFS (Journaled File System)
*
3 Éléments d'administration Unix : Gestionnaires de paquets
GNU/Linux et les applications tournant sous ce système peuvent être livrés
(source ou binaires) sous 3 formats principaux :
Le format Read Hat (RPM : ReadHat Package Manager) :
fichiers *.rpm
Le format DEBIAN (DPKG : Debian PacKaGe) :
fichiers *.deb
Le format tar (archive) :
- fichiers *.tar : archive créée par la commande Unix tar
- fichiers *.[Link] : archive tar comprimée par gzip
- fichiers *.tar.bz2 : archive tar comprimée par bzip
3 Éléments d'administration Unix : Gestionnaire DEBIAN
Commande dpkg : gestion d'un paquet isolé,
pas de gestion automatique des dépendances
dpkg [option] [[Link] ...] ; Principales options :
-i : installe le(s) paquets contenus dans les fichiers(s)
-r : désinstalle le paquet sans supprimer ses fichiers de configuration
--purge : désinstallation complète (paquet + fichiers config)
-reconfigure paquet : rejouer la configuration du paquet
-l : liste de tous les paquets
-L : affiche la liste de tous les fichiers contenus dans le paquet
-S fichier : recherche de tous les paquets contenant fichier
Exemples :
dpkg -i cups
dpkg -S /usr/bin/cupsd
3 Éléments d'administration Unix : Gestionnaire DEBIAN
Le système APT : Advanced Package Tool
Résoud automatiquement les problèmes de dépendances entre paquets
Tient à jour les listes des installés et des paquets disponibles
Gère la liste des sources d'installation (fichier /etc/apt/[Link])
apt-get install [Link] ... : installer des paquets Debian
apt-get remove [--purge] [Link] ... : désinstaller des paquets
apt-get update : récupère la liste des paquets disponibles en utilisant les
sources mentionnées dans le fichier [Link]
apt-get upgrade : mise à jour des paquets
apt-get clean : supprime les fichiers présents dans
/var/cache/apt/archives
Synaptic
Structure du logiciel
16
Noyau linux et interface graphique
KDE , GNOME ou XFCE
17
Niveaux d'exécution de Linux (run levels)
0 Arrêt init 0 : arrêt
1 Mode mono-utilisateur
2 Mode utilisateur sans NFS
3 Mode multiutilisateur complet init 3 : mode console
(serveur)
4 inutilisé
5 X11 init 5 : mode graphique
6 Redémarrage init 6 : redémarrage
Redémarrage manuel du serveur apache2 :
sudo /etc/init.d/apache2 restart (start, stop, restart, status)
18
2 Principes de fonctionnement d'UNIX : Scripts de lancement
Exemple de contenu du répertoire /etc/rc5.d :
lrwxrwxrwx 1 root root 18 2005-09-18 20:04 S10sysklogd -> ../init.d/sysklogd
lrwxrwxrwx 1 root root 15 2005-09-18 20:04 S11klogd -> ../init.d/klogd
lrwxrwxrwx 1 root root 13 2005-09-18 20:03 S14ppp -> ../init.d/ppp
Démarrage du réseau lrwxrwxrwx 1 root root 17 2005-09-18 19:10 S18portmap -> ../init.d/portmap
lrwxrwxrwx 1 root root 14 2005-09-19 09:42 S20apmd -> ../init.d/apmd
Démarrage du service lrwxrwxrwx 1 root root 16 2005-09-18 19:11 S20dbus-1 -> ../init.d/dbus-1
lrwxrwxrwx 1 root root 17 2005-09-18 19:11 S20dirmngr -> ../init.d/dirmngr
d'impression lrwxrwxrwx 1 root root 15 2005-09-18 20:03 S20exim4 -> ../init.d/exim4
lrwxrwxrwx 1 root root 15 2005-09-18 20:03 S20inetd -> ../init.d/inetd
lrwxrwxrwx 1 root root 13 2005-09-18 19:10 S20lpd -> ../init.d/lpd
Démarrage du serveur lrwxrwxrwx 1 root root 17 2005-09-18 20:02 S20makedev -> ../init.d/makedev
ssh lrwxrwxrwx 1 root root 16 2005-09-18 20:05 S20pcmcia -> ../init.d/pcmcia
lrwxrwxrwx 1 root root 15 2005-09-18 15:16 S20rsync -> ../init.d/rsync
lrwxrwxrwx 1 root root 13 2005-09-18 19:11 S20ssh -> ../init.d/ssh
Démarrage de la lrwxrwxrwx 1 root root 13 2005-09-18 14:57 S20vdr -> ../init.d/vdr
bannière de connexion lrwxrwxrwx 1 root root 16 2005-09-18 22:01 S20webmin -> ../init.d/webmin
en mode graphique ...
( gnome display lrwxrwxrwx 1 root root 13 2005-09-18 21:00 S20xfs -> ../init.d/xfs
lrwxrwxrwx 1 root root 16 2005-09-18 21:00 S20xinetd -> ../init.d/xinetd
manager) lrwxrwxrwx 1 root root 15 2005-09-18 21:07 S21aumix -> ../init.d/aumix
lrwxrwxrwx 1 root root 13 2005-09-18 19:12 S21fam -> ../init.d/fam
lrwxrwxrwx 1 root root 20 2005-09-18 19:10 S21nfs-common -> ../init.d/nfs-common
lrwxrwxrwx 1 root root 13 2005-09-18 20:04 S89atd -> ../init.d/atd
lrwxrwxrwx 1 root root 14 2005-09-18 20:03 S89cron -> ../init.d/cron
lrwxrwxrwx 1 root root 13 2005-09-18 19:17 S99gdm -> ../init.d/gdm
Projet Raspberry
[Link]
Structure carte raspberry
Modèle I
>>>>>>>>>>>>>>>>>>
GPIO (General Purpose Input/Output)
Entrée-sortie à usage général
22
Geekcreit® 16 In 1 Sensor Module Kit Laser Black ABS Case Enclosure Box With
Ultrasonic Obstacle Avoidance For Mini Cooling Fan And Heat Sink Kit For
Raspberry Pi 2 Pi2 Pi3 Carton Box Package Raspberry Pi 3B
1wire
I2C
[Link]
utm_design=41&utm_source=emarsys&utm_medium=Neworder171109&utm_campaign=trigger-
emarsys&utm_content=winna&sc_src=email_2675773&sc_eh=640df5b80f623f9f1&sc_llid=7357516&sc_lid=105229698&sc_uid=BuipRtYkea&cur_warehouse=CN
[Link] 23
utm_design=41&utm_source=emarsys&utm_medium=Neworder171109&utm_campaign=trigger-
emarsys&utm_content=winna&sc_src=email_2675773&sc_eh=640df5b80f623f9f1&sc_llid=7357516&sc_lid=105229698&sc_uid=BuipRtYkea&cur_warehouse=CN
Projet hardware
Nomenclature
Brochages
Protocoles
C.I. Openplotter
I2C 1W Domoticz
kicad
Télécommande
gpio
Raspberry pi3 pi zéro Arduino esp32
24
Munin
[Link]
#!/bin/bash cat /sys/bus/w1/devices/28-051760ad81ff/w1_slave
if [ "$1" = "config" ]; then
echo 'graph_title Temperature dans et hors nichoir' 6e 01 4b 46 7f ff 0c 10 ad : crc=ad YES
echo 'graph_order nichoir dehors gel' 6e 01 4b 46 7f ff 0c 10 ad t=22875
echo 'graph_args -r --lower-limit -20 --upper-limit 50'
echo 'graph_height 400'
echo 'graph_width 800'
echo 'graph_vlabel Celsius'
echo 'graph_printf %.1lf'
echo 'graph_info Comparaison des temperatures dans et hors du nichoir'
echo 'graph_category nichoir'
echo 'graph_period minute'
echo '[Link] Nichoir'
echo '[Link] LINE'
echo '[Link] cc2200'
echo '[Link] Temperature dans le nichoir'
echo '[Link] Dehors'
echo '[Link] LINE'
echo '[Link] 1144ff'
echo '[Link] Temperature hors du nichoir contre lui'
echo '[Link] Gel'
echo '[Link] 000022'
exit 0
fi
GEL=0
NICHOIR=$(cat /sys/bus/w1/devices/28-000007f0acfc/w1_slave | grep "t=" | awk -F "t=" '{printf("%.1f\n", $2/1000)}')
DEHORS=$(cat /sys/bus/w1/devices/28-000007f0c9f5/w1_slave | grep "t=" | awk -F "t=" '{printf("%.1f\n", $2/1000)}') 25
printf "[Link] %.1f\[Link] %.1f\[Link] %i" $NICHOIR $DEHORS $GEL
Domoticz
L’objectif du projet est de développer une application avec interface Web :
• Qui s’appuie sur la base de données de Domoticz en la faisant évoluer si nécessaire ;
• Qui soit « Responsive » pour s’adapter à différents périphériques : ordinateur, tablette, smartphone ;
• Simplifiée avec uniquement l’affichage de la température et des boutons de commandes ;
• Qui garde une trace des membres de la famille qui ont activé/désactivé tel ou tel bouton.
• Accessible en local et depuis Internet. 26
Domoticz
27
Domoticz
28
29
●
OpenCPN Logiciel de navigation léger et robuste. Préparer des routes et suivre sa position.
●
zyGrib Télécharger et visualiser des fichiers météo GRIB au format 1 et 2.
●
SDR-AIS Recevoir et décoder les signaux AIS via un dongle DVB-T. Outils de calibration inclus.
●
Signal K Server Convertir les données des capteurs en Signal K et échanger entre divers formats.
●
Compass Cap et gîte depuis un capteur IMU, avec compensation d’inclinaison et auto calibration.
●
Pypilot Construire un pilote automatique économique, précis et complet.
●
WiFi Access Point Partager les données NMEA et Signal K avec un portable, une tablette ou un
smarphone.
●
Headless Accéder à OpenPlotter depuis le cockpit via vos appareils mobiles.
●
Dashboards Construire des tableaux de bord pour visualiser des données de navigation.
●
1W sensors Connecter de multiples capteurs : température, moteur, échappement, réfrigérateur,
eau ...
●
I2C sensors Connecter des capteurs de température, pression, taux d’humidité ou des éclairages.
●
NMEA 0183 Recevoir, filtrer, multiplexer et envoyer des données NMEA via le port série et les entrée
sorties du réseau.
●
NMEA 2000 Se connecter à votre réseau NMEA 2000, via un adaptateur USB, pour recevoir et
transmettre des données.
●
Analog sensors Mesurer la charge des batteries, le niveau des réservoirs ou n’importe quelle
information d’un capteur analogique.
●
Digital inputs Connecter des interrupteurs (y compris spéciaux). Détecter fumée, ouverture de porte
mouvements ...
●
Digital outputs Activer des relais, des LED, des buzzers ...
●
Actions Utiliser date, heure ou n’importe quelle valeur de donnée manipulée par votre système
comme déclencheur de multiples actions.
●
Share data Publier des informations sur votre bateau via Twitter ou envoyer des courriels / SMS
automatiquement.
●
Remote Monitoring Recevoir ou envoyer des informations de votre bateau pendant que vous n’êtes
pas à bord.
●
Open tools Utiliser les multiples outils inclus pour interargir avec le système et créer les votres.
30
[Link]
Câblage de l’IMU, des capteurs d’environnement et sondes Temp
31
Questions ?
32