CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Raspberry Pi / PHP / Récuperer des infos

Pseudo supprimé
Pseudo supprimé 28 septembre 2015 à 19:27:44

Salut, j'ai une idée de petit projet pour m'éxercer un peu avant d'attaquer mon gros projet (le cloud dont j'avais parlé) donc une petite page web qui m'afficherait (en live si c'est possible, mais va falloir de l'ajax et/ou du node.js je crois)les infos de ma Raspi. Je compte faire ça en PHP, et si possible faire une petite app avec AppInventor pour afficher ces résultats sur une app android (ça c'est tout à fait optionnel).

Les infos que je veux récuperer son entre-autres :
-Température de la machine
-Usage du CPU
-Programmes ouverts
-Et un petit truc pour dire si le Raspi va bien ou pas (je suis un gamin je sais ^^ )

Et donc je voulais savoir comment récuperer ces infos. Je suppose que je devrais faire un serveur sur le raspberry pi qui contient ces infos, créer un script PHP qui les récupererait et ensuite les afficherait sur la page.

Donc voila quelqu'un peut m'aiguiller svp ?
Merci d'avance :)

typedefstruct
typedefstruct
Niveau 7
28 septembre 2015 à 20:02:42

Tu peux utiliser la commande php system() et récupérer le resultat.

Et pour chacun de tes tirets de fonctionnalité:

-Température de la machine
-Usage du CPU
-Programmes ouverts

Tu tapes "nom_de_ta_distribution + [contenu du tiret]" sur google, les questions sont déja posées beaucoup de fois, avec différentes méthode, à toi de voir laquelle tu préfères.

-Et un petit truc pour dire si le Raspi va bien ou pas (je suis un gamin je sais ^^ )

Si il ne "va" pas, tu ne vois pas la page d'accueil du site, donc tu ne verras pas le message, non ?

Pseudo supprimé
Pseudo supprimé 28 septembre 2015 à 20:27:27

Non en gros si tous les états sont bons et ben un petit pouce vert s'affiche, si la santé est bof ( grosse température ou beaucoup de programmes ouverts) un pouce orange et un pouce rouge si tout va mal.
Si la Raspi n'est pas connectée je renvoierai vers une petite page HTML du style 404 :) !
Je posterai ici quand j'aurais des probs, là j'ai trouvé un petit truc avec du python qui à l'air pas mal.

Chnapy
Chnapy
Niveau 10
28 septembre 2015 à 20:56:08

Ce que tu cherches à faire existe déjà -> https://www.google.fr/webhp?ie=utf-8&oe=utf-8&gws_rd=cr&ei=DYwJVtyFGIWtabLwrLAL#q=raspberry+pi+web+interface :ok:

Darkandgel
Darkandgel
Niveau 10
28 septembre 2015 à 21:20:57

Si la Raspi n'est pas connectée je renvoierai vers une petite page HTML du style 404 :) !

Je posterai ici quand j'aurais des probs, là j'ai trouvé un petit truc avec du python qui à l'air pas mal.

Gnié ?
Si ton serveur est down, tu peux toujours courrir pour afficher une 404...

Pseudo supprimé
Pseudo supprimé 30 septembre 2015 à 20:03:26

Darkandgel :d) Pas une page 404, une page "du style" 404 avec une grande croix rouge en flat design avec un "Le Raspberry pi n'est pas connecté à Internet" et finalement je vais le faire en Python.

Darkandgel
Darkandgel
Niveau 10
30 septembre 2015 à 22:13:06

O_o

Soit j'ai pas saisi, soit tu devrais revoir tes bases. Ca urge.

Si ton serveur est down, tu n'afficheras rien du tout. Tout ce que ça affichera c'est ça : http://www.uihgjkg.com/

Chnapy
Chnapy
Niveau 10
30 septembre 2015 à 23:13:54

Le 30 septembre 2015 à 20:03:26 AlanTuring- a écrit :
Darkandgel :d) Pas une page 404, une page "du style" 404 avec une grande croix rouge en flat design avec un "Le Raspberry pi n'est pas connecté à Internet" et finalement je vais le faire en Python.

Si l'utilisateur ne peut pas accéder à ton serveur, ton serveur ne peut rien lui envoyer. C'est logique non ?

Pseudo supprimé
Pseudo supprimé 01 octobre 2015 à 00:07:39

Oui je sais, mais je n'hébergerai pas cette page sur mon raspberry pi, c'est le raspberry pi qui envoie les infos à un autre serveur qui lui affichera la page. Si aucune infos n'est envoyée, c'est que le raspberry pi est soit éteint, soit non connecté :)

rangerprice
rangerprice
Niveau 10
01 octobre 2015 à 02:36:22

Déjà il te faudra un format pour stocker tes données, le PHP gère bien le JSON (json_encode(), json_decode, json_last_error()....)

:d) Tu fais un script pour le serveur

Tu fais un script PHP (l'idéal serait d'avoir un autre langage côté serveur style Python ou Perl car le PHP n'a pas été crée pour cette utilisation)
qui choppe les données de l'OS (température, processus, cpu %) (tu devrais aussi prendre la mémoire flash utilisé du RPI et aussi l'espace restant sur la carte micro sd, c'est plutôt utile).

:d) Récupération des données par le script

Pour prendre les données, tu peux utiliser les commandes linux, et parser le résultat. (Ya plus de boulot, c'est pas la meilleur façon).
Ou sinon tu peux faire apppel à une bibliothèque, le problème c'est que comme j'ai dis plus haut PHP n'a pas été conçu pour ça, mais pour générer des pages web, alors des bibliothèques qui donne des states sur le système seront difficile à trouver sauf si tu utilises Python/Perl/...

:d) Envoie des données par le script

Ce script, doit écouté sur un port du serveur. Une fois qu'il reçoit un signal du genre: "FETCH STATS", le script renvoie au client les données, sous forme de string, formaté en JSON.

Pour gêrer les sockets(la connexion quoi) tu peux utiliser soit une bibliothèque, des fonctions built-in de PHP (http://php.net/manual/en/book.sockets.php), ou un outil externe. (le moyen le plus simple, et qui ouvre plus de possibilité)

Pour l'outil externe, netcat(ou nc) est un outil très bien supporté par linux/windows/mac. Et il connu, tu trouveras souvent le paquet directement téléchargable sur t'as distribution préféré...., Il permet de gêrer des sockets via à des commandes linux simplement et intuitivement.

Par exemple pour te connecter à un serveur, tu peux simplement faire ça en PHP(en supposant que netcat est déjà installé): exec("netcat 192.168.1.1 80"); // te connecte à 192.168.1.1 sur le port 80.
ou tu peux créer et mettre en marche un serveur avec:
exec("netcat -l -p 865"); // Crée un serveur qui écoute toute les données qui passe sur le port 865.

Il éxiste aussi cryptcat, une alternative sécurisé à netcat qui chiffre la connexion, et c'est là l'avantage des outils externes, ils te mache une bonne partie du travail, car crée une connexion chiffré en PHP avec la gestion des erreurs et tout et tout n'est pas le plus simple :hap:

Après il te faudra juste récupérer la sortie de la commande éxécuté avec exec().
http://php.net/manual/fr/function.exec.php

Cependant, apprendre à gêrer les sockets en PHP te sera toujours plus utile sur le longterme que les bibliothèques ou les outils externes.

:d) Réception des données par le client et génération de la page web

Le client, après avoir envoyé une requête au serveur, doit récupérer les données grâce au socket, à toi de voir comment tu feras pour ça, je t'en ai parlé avant !

Avec ces données, il doit recevoir une seule, chaine de caractère encodé en json.
C'est là que PHP intervient et qu'il fait son job.

Il parse le json avec json_decode() puis normalement tu auras un tableau qui contiendra toute les données voulu. (température, processus...).

http://php.net/json_decode

Il ne te restera plus qu'à l'écrire avec echo() puis pourquoi pas accompagner le tout d'une belle feuille de style CSS pour la déco ?

Sur ce, bonne chance :hap:

Pseudo supprimé
Pseudo supprimé 01 octobre 2015 à 18:57:34

Wah :hap:
Je pensais pas devoir faire autant pour un si petit truc ...
En tout cas merci beaucoup pour ce petit guide :)
Je vais aller me renseigner :) !

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment