Recuperer données d'un raspi et les affichez sur un autre

Paramétrer le Raspberry Pi B/B+ pour se connecter via Ethernet ou une clé WiFi USB

Modérateurs : Francois, maxty01

Répondre
bgwen53
Messages : 12
Enregistré le : dim. 18 janv. 2015 12:33

Recuperer données d'un raspi et les affichez sur un autre

Message par bgwen53 » ven. 7 oct. 2022 16:51

Bonjour
J'ai 2 Raspberry Pi branché sur un réseau en Ethernet , sur un Raspberry j'ai une sondes de température DS1820 et je crée un fichier log des températures.
Est t'il possible avec le second Raspberry Pi de recuperer les données du premier afin d'afficher la dernière valeur sur une page php ??

Comment faire pour interroger le premier Raspberry ?

Code : Tout sélectionner

// Recuperation de la sonde branché sur PI Piscine
	function getMemValues2($x,$flag=true){
	$x=strtoupper($x);
	$retval='NA';
	$resu=file(dirname(__FILE__)."http://xxxx.ddns.net:580/logs/1-Wire-values");
	$resu=file(dirname(__FILE__)."http://192.168.1.11/home/www/logs/1-Wire-values");
	foreach ($resu as $val) {
		if (strpos($val,$x)!==false){
			$rec=explode("=",$val);
			$retval=trim($rec[1]);
			switch($x){
				case 'TINT':
					$retval.='°C';
					$retval.="/$rec[2]";
					break;
				}
			return $retval;
			}
		}
	return $retval;
	}
Merci d'avance pour votre aide

jelopo
Raspinaute
Messages : 307
Enregistré le : mer. 11 oct. 2017 10:23

Re: Recuperer données d'un raspi et les affichez sur un autre

Message par jelopo » ven. 7 oct. 2022 17:26

Bonjour,

Oui, c'est possible de récupérer des données d'un PI sur un autre qui sont sur le même réseau avec SSH.
Par contre au niveau sécurité c'est très mauvais car la commande sera effectuée par PHP et du coup avec un navigateur on aurait accès complet au premier PI.

Pour lire la dernière ligne du contenu d'un fichier d'un pi:

$ ssh user@pi-distant tail -1 /chemin-complet/fichier.log

Mais bon puisque ça va être automatisé le script PHP pourrait faire tout et n'importe quoi sur pi-distant, ce qui est très mauvais.

Je propose d'installer un petit bout de logiciel (serveur MQTT) et après seules les données voulues seront publiées :

Sur le pi-serveur installer MQTT
(voir cet article http://www.framboise314.fr/linternet-de ... avec-mqtt/)
pi@pi-server$ sudo apt update && sudo apt install mosquitto mosquitto-clients
Sur les 2 pi installer mosquitto-clients

Code : Tout sélectionner

pi@pi-server$ sudo apt update && sudo apt install mosquitto-clients
Après 1 ligne à ajouter avant l'écriture en log sur pi-distant:

Code : Tout sélectionner

pi@pi-distant $  mosquitto_pub -h <addresse-pi-serveur> -t DS1820/ref1 -m <temperature> -r

Et 1 ligne à ajouter dans le script PHP pour lire le contenu

Code : Tout sélectionner

pi@pi-php $  mosquitto_sub -h <addresse-pi-serveur> -t DS1820/ref1 -m <temperature> -C1
Faire des essais à la main avant d'ajouter dans PHP.

EDIT: J'ai répondu avant que le bout de code PHP soit publié. Ou bien j'avais pas vu qu'il était là. Oups :oops:

A+

bgwen53
Messages : 12
Enregistré le : dim. 18 janv. 2015 12:33

Re: Recuperer données d'un raspi et les affichez sur un autre

Message par bgwen53 » ven. 7 oct. 2022 18:42

Merci jelopo ,Un peu trop compliqué MQTT pour moi !!

Ce que je veux c'est recuperer la valeur de TINT qui est dans un fichier log sur un autre PI

Code : Tout sélectionner

/ Recuperation de la sonde branché sur PI Piscine
	function getMemValues2($x,$flag=true){
	$x=strtoupper($x);
	$retval='NA';
	$resu=file(dirname(__FILE__)."http://xxxx.ddns.net:580/logs/1-Wire-values");

destroyedlolo
Raspinaute
Messages : 1583
Enregistré le : dim. 10 mai 2015 18:44
Localisation : Dans la campagne à côté d'Annecy
Contact :

Re: Recuperer données d'un raspi et les affichez sur un autre

Message par destroyedlolo » sam. 8 oct. 2022 12:55

jelopo a écrit :
ven. 7 oct. 2022 17:26
Par contre au niveau sécurité c'est très mauvais car la commande sera effectuée par PHP et du coup avec un navigateur on aurait accès complet au premier PI.
Il suffit d'utilisateur qui n'a aucun autre droit que celui d'accéder au répertoire où il y a le fichier + nologin.

Autres alternatives (par order de complexité):
  • passer par du sftp (du coup, il ne pourra pas se logger)
  • y mettre un serveur web minimum et l'interroger par un webservice
  • créer un démon qui expose la valeur et qu'on interroge par les socket
Mais tout ca tient de l'usine a gaz, MQTT est vraiment fait pour ca et permet surtout d'ajouter autant de fournisseurs / consomateur que l'on veut.
  • BananaPI : Gentoo, disque SATA de 2 To
  • Domotique : 1-wire, TéléInfo, Tablette passée sous Gentoo, ESP8266
  • Multimedia par DNLA
  • Et pleins d'idées ... et bien sûr, pas assez de temps.
Un descriptif de ma domotique 100% fait maison.

piper
Raspinaute
Messages : 641
Enregistré le : sam. 5 juin 2021 18:57

Re: Recuperer données d'un raspi et les affichez sur un autre

Message par piper » sam. 8 oct. 2022 23:15

Il y a mille moyen :
ssh (pas secure)
ftp (mieux surtout si tu fait un push)
smb (comme un disque partagé)
une api web
mqtt
etc..etc..etc...
3 Pi4 : Emby / Samba , Librelec, Android TV
3 Pi3 : Hifiberry /OSMC, Games station, Samba / VPN / HotSpot Wifi
2 Pi2 : RFID, radio reveil (PiReveil)
1 Pi0 : traker GPS et acquisitions
1 Pi0 2W : tests divers
5 Arduinos dont 4 nanos et 1 Mega
1 ESP32

bgwen53
Messages : 12
Enregistré le : dim. 18 janv. 2015 12:33

Re: Recuperer données d'un raspi et les affichez sur un autre

Message par bgwen53 » mar. 11 oct. 2022 10:47

Bonjour , j'ai opter pour l'utilisation de scp afin de recuperé le fichier 1-Wire-values sur mon second raspberry .

Code : Tout sélectionner

scp -q /home/www/logs/1-Wire-values root@192.168.1.19:/home/www/logs2/1-Wire-values

jelopo
Raspinaute
Messages : 307
Enregistré le : mer. 11 oct. 2017 10:23

Re: Recuperer données d'un raspi et les affichez sur un autre

Message par jelopo » mer. 12 oct. 2022 09:40

Bonjour,

Pour juste pour information:
Cette commande est "dangeureuse" car elle utilise le compte root. L'utilisateur qui pousse le fichier sur l'autre PI à tous les droits sur cette machine.
Si cet utilisateur est celui qui lance le serveur web, en théorie un hacker est root sur le second serveur PI, c'est donc un trou de sécurité. Il faut juste en avoir conscience. Si tes Pi ne sont pas sur le net et que tu est le seul administrateur, c'est moins grave et toute la responsabilité repose sur tes épaules. Il te faut alors être vigilant.

Pour amoindrir ce risque, je recommanderais de ne jamais utiliser l'utilisateur root. (Je sais, c'est pas facile!!!)

Dans ton cas, il serait mieux de transférer les fichier avec un utilisateur qui a les droits en écriture sur le répertoire /home/www/logs2/

A+

Répondre

Retourner vers « Le réseau sur le Raspberry Pï »