Vous êtes sur la page 1sur 14

CO-ENCADRE PAR

Mr Mohsine ELOUAHABI
Mr Aziz DKIOUAK

1
Introduction :

Dans ce projet on va construire une balance intelligente, qui va nous permettre d’afficher les
valeurs mesurées à l’aide d’un serveur hébergé localement dans un microcontrôleur esp32. Ce
serveur est accessible depuis n’importe quel appareil connecté à ce réseau local, il suffit d’ouvrir le
navigateur et d’entrer l’adresse IP local du microcontrôleur. On va voir les commandes qui va nous
permettre de connecter l’ESP32 à un point d’accès mobile via WIFI, ensuite on va voir comment
intégrer les données fournit par le capteur de poids dans un code html (HyperText Markup
Language) qui sert à créer et de représenter le contenu d'une page web et sa structure.

2
Architecture matérielle
L'architecture matérielle est basée sur 3 éléments principaux, l'unité de microcontrôleur qui a été
intégrée à un module radio WIFI dans un boîtier SOC, le capteur de poids et l'alimentation,
l'architecture est représentée dans le schéma ci-dessous :

Un Capteur de force (plus communément appelé « cellule de force») est un appareil électronique
qui convertit les forces de tension et de compression en un signal électrique correspondant. Ces
capteurs sont souvent fixés directement aux jauges, et ce sont des exemples de capteurs de
pression.

Un amplificateur de cellule de force aide à conditionner le signal de la cellule de charge et le rend


lisible pour d'autres appareils. L'étalonnage de la cellule de pesée dépend de la cellule de pesée
utilisée.

3
L'alimentation est basée sur et LDO (régulateur linéaire à faible chute) qui maintiennent une
tension constante. La résistance du régulateur varie en fonction de la tension d'entrée et de la
charge, ce qui donne une tension de sortie constante.

Les matériaux nécessaires :

1. ESP8266 : un microcontrôleur système sur puce (SoC) à faible coût


d'Espressif Systems, il se décline en versions monocœur et double
cœur du microprocesseur Xtensa LX6 32 bits de Tensilica avec Wi-Fi et
Bluetooth intégrés.

2. HX711 : Cette puce est spécialement conçue pour amplifier les signaux
des cellules de charge et les transmettre à un autre microcontrôleur. Les
cellules de charge se branchent sur cette carte, et cette carte indique à
l'ESP32 ce que mesurent les cellules de charge.

4
3. Les cellules de pesée : ce sont des pièces métalliques de forme
spéciale sur lesquelles sont collées des jauges de contrainte. Les jauges
de contrainte sont des résistances qui changent de résistance
lorsqu'elles sont pliées. Lorsque la partie métallique se plie, la résistance
de la cellule de charge change.

5
Instructions utiles pour se connecter à un point d'accès et créer un
serveur Web :

Nous avons besoin de ces bibliothèques pour créer un serveur Web :

• ESP8266WiFi.h : bibliothèque nécessaire pour effectuer toutes les fonctionnalités


liées au Wifi telles que la connexion, l'AP, etc.
• WiFiClient.h : ce fichier est nécessaire pour envoyer une demande au navigateur Web
• ESP8266WebServer.h : gère tous les protocoles http

Définir le SSID et le mot de passe du routeur WiFi, avec lequel l'ESP se connecte :

Le serveur Web est sur le port 80, on peut également utiliser d'autres ports, le port HTTP par
défaut est 80, pour ouvrir une page Web avec un numéro de port différent, il faut entrer le
numéro de port après l'adresse IP :

Il existe deux façons pour créer un serveur Web, la première consiste à se connecter à un point
d'accès Wifi. La deuxième consiste à faire fonctionner l'ESP comme un point d'accès.
Cette commande est utilisée pour se connecter à un point d'accès Wifi. Le terme point d'accès est
le même que Wifi Hot Spot :

L’ESP8266 une fois connecté et déconnecté en raison d'une perte de signal ou n’importe quelle
autre raison, à l’aide de cette commande, il essaiera de se reconnecter automatiquement :

6
Pour obtenir l'adresse IP attribuée à L’ESP8266 par le routeur Wifi, on utilise cette commande :

Lorsque le client demande une page Web spécifique en entrant l'adresse IP ESP, les données à
envoyer sont gérées par cette instruction :
server.on(chemin_du_page,nom_page)
Pour démarrer le serveur, on utilise cette commande :

Dans la boucle principale, nous traitons la demande du client :

Cette fonction est appelée lorsque vous entrez l'adresse IP dans le navigateur Web et appuyez sur
Entrée. Cette fonction envoie le test "hello from esp8266" au navigateur Web. La fonction imprime
simplement en texte brut « Hello from esp8266 » sur la page Web. Le text/plain est utilisé car nous
envoyons simplement du texte et non du HTML.

Transférer notre propre code HTML en tant que page Web :

Pour afficher notre propre code HTML, il suffit de remplacer "hello from esp8266" par le code
HTML :

7
Structure de base d'un document HTML :

Un document HTML (HyperText Markup Language) est un fichier qui contient des balises. Les
balises HTML sont les éléments de base du codage HTML. Elles sont utilisées pour mettre en forme
un texte, structurer et hiérarchiser le contenu d'une page. Les balises indiquent également au
navigateur comment afficher la page en question. Pour l'internaute, elles sont invisibles sauf s'il
affiche le code source.

Balise de premier niveau :


<html> Balise principale
<head> En-tête de la page
<body> Corps de la page

Balises d'entête :
<link> Liaison avec une feuille de style (auto-fermant)
<meta > Métadonnées de la page web (charset, description, etc.)
<script> Code JavaScript
<style> Code CSS
<title> Titre de la page

Balises structurelles de texte :


<strong> Mise en valeur forte
<em> Mise en valeur normale
<h1> Titre de niveau 1
<h2> Titre de niveau 2
<h3> Titre de niveau 3
<h4> Titre de niveau 4
<h5> Titre de niveau 5
<h6> Titre de niveau
<a> Lien hypertexte
<p> <p>
8
<br> Retour à la ligne (balise auto-fermant)

Exemple :

La

déclaration DOCTYPE est une instruction au navigateur Web indiquant dans quelle version de
HTML la page est écrite. Cela garantit que la page Web est analysée de la même manière par
différents navigateurs Web.

9
Code principal :

#include <ESP8266WebServer.h>
#include <Wire.h> // cette librairie permet de communiquer avec des appareils I2C/TWI
#include "HX711.h" // cette librairie permet de gérer l’amplificateur hx711

const int LOADCELL_DOUT_PIN = 2;


const int LOADCELL_SCK_PIN = 3;

HX711 scale;

float weight;

const char* ssid = "AP4686"; // Entrer le SSID


const char* password = "6c081tuu"; //Entrer le mot de passe

ESP8266WebServer server(80);

void setup() {
Serial.begin(115200);
delay(100);

scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);

Serial.println("Connecting to ");
Serial.println(ssid);

WiFi.begin(ssid, password);

10
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected..!");
Serial.print("Got IP: "); Serial.println(WiFi.localIP());

server.on("/", handle_OnConnect);
server.onNotFound(handle_NotFound);

server.begin();
Serial.println("HTTP server started");

}
void loop() {
server.handleClient();
}

void handle_OnConnect() {
weight = scale.read();
server.send(200, "text/html", SendHTML(weight));
}

void handle_NotFound(){
server.send(404, "text/plain", "Not found");
}

String SendHTML(float weight){

11
String ptr = "<!DOCTYPE html> <html>\n";
ptr +="<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-
scalable=no\">\n";
ptr +="<title>ESP8266 weight scale</title>\n";
ptr +="<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto; text-align:
center;}\n";
ptr +="body{margin-top: 50px;} h1 {color: #444444;margin: 50px auto 30px;}\n";
ptr +="p {font-size: 24px;color: #444444;margin-bottom: 10px;}\n";
ptr +="</style>\n";
ptr +="</head>\n";
ptr +="<body>\n";
ptr +="<div id=\"webpage\">\n";
ptr +="<h1>ESP8266 weight scale</h1>\n";
ptr +="<p>weight: ";
ptr +=weight;
ptr +="kg</p>";
ptr +="</div>\n";
ptr +="</body>\n";
ptr +="</html>\n";
return ptr;
}

12
Exemple de mesure :

13
Conclusion :
L'utilisation intensive de divers types d'appareils IoT a entraîné une forte demande de
développeurs ayant des compétences en IoT, car cette technologie permet aux industries et aux
entreprises d'avoir une meilleure efficacité et fiabilité dans leurs opérations, renforce la
prévention des incidents et participe à l’amélioration des conditions de travail, Ce projet nous a
permis d’acquérir de nouvelles connaissances en conception des systèmes IoT, ce qui va nous aider
dans notre parcours professionnel.

14

Vous aimerez peut-être aussi