Partage
  • Partager sur Facebook
  • Partager sur Twitter

Liaison Arduino et base de données

Lecture et écriture de données depuis un arduino dans une bdd

8 janvier 2020 à 17:33:42

Bonjour tout le monde, j'ai comme projet de réaliser un système de "pointage" en php et mySql. Le but du système est de pouvoir prendre des présence dans une école à l'aide d'un système RFID. Les élèves badgent leurs cartes munie d'un tag Rfid à l'entrée des locaux et un arduino envoi le nombre d'élèves présent dans le local à une base de données ainsi que leurs noms.

J'ai déjà conçu le code C++ pour lire UID d'un tag RFID mais je ne sais pas comment envoyé cette variable dans une base de données. Je ne sais pas dans quelle direction chercher ?

Merci d'avance pour votre aide !

P.s : j'ai des connaissances assez basique en Php et MySql et je suis débutant en C++. 

  • Partager sur Facebook
  • Partager sur Twitter
8 janvier 2020 à 18:37:20

Bonjour,

Si tu as démarré ton code en C++, pourquoi ne pas continuer ?

C++ dispose d'un connecteur pour MySQL, un peu de recherche autour de cela et tu devrais trouver ton bonheur ... Pour le coup si tu as des questions à ce sujet, il faudra les poster dans le forum C++ ;)

J'attire ton attention sur l'importance de la structure de ta base de données pour pouvoir respecter les fonctionnalités présentes au cahier des charges de ton système. As-tu déjà réfléchi à la structure de la table recevant les pointages ?

Après, si tu as besoin d'afficher les données en base sur un site web par exemple, tu vas aussi avoir besoin d'un peu de PHP pour lire la base et afficher les données retravaillées.

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
8 janvier 2020 à 20:27:35

Enfaîte plus je réfléchis, plus je me demande si cela est possible...

Je vais vous détailler mon projet pour avoir votre avis (il s'agit de mon projet de fin d'année pour mon cours d'informatique).

Le projet consiste en un boîtier placer à l'entrée de chaque classe comprenant un arduino, un module rfid ainsi qu'un écran LCD et un clavier. Quand le professeurs arrive, il scanne sa carte magnétique. Ensuite, chaque élève scanne sa carte magnétique pour pouvoir rentrer en classe. Le boîtier affiche ensuite sur l'écran lcd le nombre de personnes manquantent. Le professeur peut alors, à l'aide du clavier, confirmer ce numéro.

Une page Web affichent pour chaque classe, le nombre d'élèves absents ainsi que le noms des absents. 

Voici la base mais je pense vraiment que ce n'est pas faisable uniquement en C++, CSS et html. 

  • Partager sur Facebook
  • Partager sur Twitter
8 janvier 2020 à 22:42:58

Mthems a écrit:

je pense vraiment que ce n'est pas faisable uniquement en C++, CSS et html. 

Il manque une base de données dans cette histoire, et un langage côté serveur pour générer les pages web ...

Mais selon moi c'est tout à fait faisable ... as-tu jeter un oeil sur ce tuto : https://www.instructables.com/id/PART-1-Send-Arduino-data-to-the-Web-PHP-MySQL-D3js/

Tout y est ...

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
8 janvier 2020 à 23:26:18

Benzouye a écrit:

Mthems a écrit:

je pense vraiment que ce n'est pas faisable uniquement en C++, CSS et html. 

Il manque une base de données dans cette histoire, et un langage côté serveur pour générer les pages web ...

Mais selon moi c'est tout à fait faisable ... as-tu jeter un oeil sur ce tuto : https://www.instructables.com/id/PART-1-Send-Arduino-data-to-the-Web-PHP-MySQL-D3js/

Tout y est ...

Oui j'ai évidemment une base de donnés avec deux tables : une comportant le nom, prénom, classe et UID pour chaque élève et une table comprenant le nom, prénom pour chaque professeurs ainsi que le local et le nombre d'élèves censé assisté au cours (variant en fonction de l'heure). Le tout gérer en Php. 

Merci beaucoup pour le liens du tuto, il a l'air fort complet et semble aller dans la direction de mon projet ! 

  • Partager sur Facebook
  • Partager sur Twitter
9 janvier 2020 à 11:01:33

Ton modèle pourrait être :

  • classe ( id [pk], libelle )
  • salle ( id [pk], libelle )
  • matiere ( id [pk], libelle )
  • eleves ( id [pk], nom, prenom, id_classe [fk], etc. )
  • professeur ( id [pk], nom, prenom, etc. )
  • cours ( id [pk], id_matiere [fk], jour, horaire, duree, id_professeur [fk], id_salle [fk], id_classe [fk] )
  • pointage ( id [pk], horaire, id_eleve [fk], id_salle [fk] )

Dans la table pointage tu enregistres via ton arduino (cf. tuto) chaque passage de badge. Et pour l'affichage ... il faut créer un programme qui interroge la base et affiche les données nécessaires sur le LCD, avec quel langage ? Si tu es à l'aise avec C++ vas-y ...

-
Edité par Benzouye 9 janvier 2020 à 11:02:09

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
9 janvier 2020 à 16:55:23

Benzouye a écrit:

Ton modèle pourrait être :

  • classe ( id [pk], libelle )
  • salle ( id [pk], libelle )
  • matiere ( id [pk], libelle )
  • eleves ( id [pk], nom, prenom, id_classe [fk], etc. )
  • professeur ( id [pk], nom, prenom, etc. )
  • cours ( id [pk], id_matiere [fk], jour, horaire, duree, id_professeur [fk], id_salle [fk], id_classe [fk] )
  • pointage ( id [pk], horaire, id_eleve [fk], id_salle [fk] )

Dans la table pointage tu enregistres via ton arduino (cf. tuto) chaque passage de badge. Et pour l'affichage ... il faut créer un programme qui interroge la base et affiche les données nécessaires sur le LCD, avec quel langage ? Si tu es à l'aise avec C++ vas-y ...

-
Edité par Benzouye il y a environ 5 heures

C'est là tout le problème, le C++ est le langage que je gère le moins... :D Et je ne sais vraiment pas en quel autre langage le faire...

  • Partager sur Facebook
  • Partager sur Twitter
9 janvier 2020 à 19:48:17

Alors fait simplement injecter à arduino les mesures en base (cf. Tuto) et fait un site web en PHP où le prof a juste à choisir son cours pour voir les pointages associés ...

Rajoute une colonne "valide" dans la table des cours pour enregistrer la validation du prof...

-
Edité par Benzouye 9 janvier 2020 à 19:49:03

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
9 janvier 2020 à 21:02:12

Benzouye a écrit:

Alors fait simplement injecter à arduino les mesures en base (cf. Tuto) et fait un site web en PHP où le prof a juste à choisir son cours pour voir les pointages associés ...

Rajoute une colonne "valide" dans la table des cours pour enregistrer la validation du prof...

-
Edité par Benzouye il y a environ 1 heure


D'accord, je vais essayer de faire ça ! j'ai commandé des modules ESP8266 pour pouvoir connecter mon arduino au wifi et une arduino méga car avec le module RFID, le LCD, le potentiomètre, le clavier, etc, il ne me reste plus beaucoup de pin...:D
  • Partager sur Facebook
  • Partager sur Twitter
10 janvier 2020 à 11:03:44

Juste le RFID ... Le reste sera sur un PC dans la salle non ?

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
10 janvier 2020 à 15:23:52

Benzouye a écrit:

Juste le RFID ... Le reste sera sur un PC dans la salle non ?


Mais il me faut un module ESP8266 pour pouvoir envoyer mes données dans la bdd non ?
  • Partager sur Facebook
  • Partager sur Twitter
10 janvier 2020 à 15:59:05

Oui bien sûr, sinon tu ne peux communiquer avec le réseau ... en WiFi ou Ethernet ...

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL