Afin de connecter nos objets à Internet, nous devons sélectionner un protocole de communication Internet pour que les différents appareils Internet puissent communiquer entre eux. Certains protocoles IoT couramment utilisés sont HTTP, MQTT, etc.
Dans cette leçon, nous allons apprendre à utiliser le protocole HTTP et à créer un simple serveur web HTTP avec le bouclier Osoyoo MEGA-IoT et le microcontrôleur MEGA2560, et à afficher une page web “Hello World ! La page web montre également la tension d’entrée de la broche A0 qui est détectée par les fonctions analogRead() d’Arduino.
1).Veuillez brancher la carte d’extension OSOYOO MEGA-IoT sur la carte OSOYOO MEGA2560:
2)Utiliser le cavalier Cap pour connecter ESP8266 RX avec A8, TX avec A9)
Avis : Eteignez votre batterie ou débranchez votre adaptateur d’alimentation lorsque vous téléchargez le code sketch dans votre OSOYOO MEGA2560.
Logiciel libre (IDE) | Télécharger l’IDE ici: https://www.arduino.cc/en/Main/Software?setlang=en |
|
7 zip est un utilitaire gratuit qui décompresse les fichiers zip | Téléchargez gratuitement 7zip ici https://www.7-zip.org/ |
Etape 1 Installer la dernière version de l’IDE (Si vous avez la version de l’IDE après 1.1.16, veuillez sauter cette étape).
Télécharger l’IDE à partir de https://www.arduino.cc/en/software, puis installer le logiciel.
Etape 2 OSOYOO MEGA-IoT étend la broche TX/RX à la broche A9/A8 par défaut. Donc dans votre code d’esquisse, nous devons utiliser le port série logiciel pour communiquer avec l’ESP8266 (mettre A9 comme TX et A8 comme RX dans l’objet SoftwareSerial).Nous devons télécharger la bibliothèque WiFiEsp-master à partir du lien suivant d’abord : https://osoyoo.com/driver/WiFiEsp-master.zip
Etape 3 Ouvrir l’IDE ->Sketch ->Include Library ->Add ,Zip library pour charger les fichiers zip ci-dessus dans l’IDE Arduino.
Étape 4 Après avoir installé la bibliothèque ci-dessus, téléchargez le code principal à partir du lien suivant. Décompressez le fichier zip téléchargé lesson3.zip, vous verrez un dossier appelé smarthome-lesson3.
https://osoyoo.com/driver/smarthome/smarthome-lesson3.zip
Étape 5 Une fois les opérations ci-dessus terminées, connectez la carte OSOYOO MEGA2560 au PC à l’aide du câble USB.
Étape 6 Ouvrir l’IDE et choisir le type de carte et le type de port correspondant à votre projet.
Etape 7 IDE : Cliquer sur file -> cliquer sur Open -> choisir le code “smarthome-lesson3”, charger le sketch sur votre carte.
Note : Dans le croquis, trouver les lignes suivantes :
char ssid[] = "******"; // your network SSID (name) char pass[] = "******"; // your network password
veuillez remplacer le ****** par votre SSID wifi et votre mot de passe, sinon votre projet ne pourra pas se connecter à Internet.
Après avoir chargé le sketch dans l’IDE, ouvrir le moniteur série dans le coin supérieur droit de l’IDE, vous verrez le résultat suivant :
Sur le moniteur série, vous pouvez voir l’adresse IP de votre carte MEGA2560 dans le cercle de lecture (dans l’image ci-dessus, 192.168.50.102).
Utilisez ensuite votre navigateur pour visiter le site web http://mega2560-ip-address (in above case, http://192.168.50.102), vous verrez le résultat suivant:
Le résultat ci-dessus indique également la tension d’entrée de la broche A0 grâce à la fonction analogRead(0) de la ligne 94. analogRead() peut lire la tension d’entrée de 0 à 5 V et renvoyer une valeur comprise entre 0 et 1023 correspondant à la tension.
Si nous connectons A0 à GND via un fil de liaison, l’entrée analogique A0 : affiche 0
Si nous connectons A0 à 5V via un fil de liaison, l’entrée analogique A0 : affiche 1023.
Parfois, lors de l’exécution du projet lesson3, l’ESP8266 peut avoir un problème d’initialisation avec les broches MEGA2560 A8,A9 et cela provoque une erreur d’initialisation du WifiESP qui s’affiche dans le moniteur série comme suit :
[WiFiEsp] Initializing ESP module [WiFiEsp] >>> TIMEOUT >>> [WiFiEsp] >>> TIMEOUT >>> [WiFiEsp] >>> TIMEOUT >>> [WiFiEsp] >>> TIMEOUT >>> [WiFiEsp] >>> TIMEOUT >>> [WiFiEsp] Cannot initialize ESP module
Pour résoudre le problème, nous devons utiliser les broches stables D10 et D11 pour initialiser l’ESP8266, puis revenir à A8 et A9 :
Original line 15 is :
SoftwareSerial softserial(A9, A8); // RX, TXPlease change above line to:
SoftwareSerial softserial(10, 11); // RX, TX
Etape 3) Charger le sketch dans l’IDE et l’initialisation s’effectue normalement et s’affiche.
[WiFiEsp] Initilization successful - 1.5.4 SSI
DownLoad Url osoyoo.com
You must be logged in to post a comment.
I am getting this error on the serial monitor:
[WiFiEsp] Initializing ESP module
[WiFiEsp] >>> TIMEOUT >>>
[WiFiEsp] >>> TIMEOUT >>>
[WiFiEsp] >>> TIMEOUT >>>
[WiFiEsp] >>> TIMEOUT >>>
[WiFiEsp] >>> TIMEOUT >>>
[WiFiEsp] Cannot initialize ESP module
[WiFiEsp] >>> TIMEOUT >>>
[WiFiEsp] No tag found
WiFi shield not present
Does this mean that my ESP shield is bad?
Nevermind. I solved the problem. The diagram showing the jumper cap connection is not very descriptive.
Hi Cbales!
I’m running into the same problem but I am sure I have the jumpers right.
What did you end up doing exactly?
Do I need a third jumper on Tx0 and Rx0 or something?
Check if your hotspot name and password are correct
Nevermind Cbales:
I had some bent pins on the board.
This is the message I am getting – what could I be doing wrong. I checked to make sure the ssid and password are correct and the pins are entered correctly.
[WiFiEsp] Initializing ESP module
[WiFiEsp] >>> TIMEOUT >>>
[WiFiEsp] >>> TIMEOUT >>>
[WiFiEsp] >>> TIMEOUT >>>
[WiFiEsp] >>> TIMEOUT >>>
[WiFiEsp] >>> TIMEOUT >>>
[WiFiEsp] Cannot initialize ESP module
[WiFiEsp] >>> TIMEOUT >>>
[WiFiEsp] No tag found
WiFi shield not present
tienes que descargarte la carpeta que te dan de wifiESP-master.zip y adjuntarla a la librería . Y después , cambiar el código a :
/* ___ ___ ___ _ _ ___ ___ ____ ___ ____
* / _ \ /___)/ _ \| | | |/ _ \ / _ \ / ___) _ \| \
*| |_| |___ | |_| | |_| | |_| | |_| ( (__| |_| | | | |
* \___/(___/ \___/ \__ |\___/ \___(_)____)___/|_|_|_|
* (____/
* Use browser and OSOYOO MEGA-IoT extension shield to control LED from remote browser
* Tutorial URL http://osoyoo.com/?p=28284
* CopyRight http://www.osoyoo.com
*/
#include “WiFiEsp.h”
// Emulate softserial on pins 6/7 if not present
//#ifndef HAVE_HWSERIAL1
#include “SoftwareSerial.h”
SoftwareSerial softserial (10, 11); // RX, TX
//#endif
char ssid[] = “vodafone3418”; // your network SSID (name)
char pass[] = “RJSPSB7TVU78R8”; // your network password
int status = WL_IDLE_STATUS;
int reqCount = 0; // number of requests received
WiFiEspServer server(80);
void setup()
{
// initialize serial for debugging
Serial.begin(9600);
// initialize serial for ESP module
softserial.begin(115200);
softserial.write(“AT+CIOBAUD=9600\r\n”);
softserial.write(“AT+RST\r\n”);
softserial.begin(9600);
// initialize ESP module
WiFi.init(&softserial);
// check for the presence of the shield
if (WiFi.status() == WL_NO_SHIELD) {
Serial.println(“WiFi shield not present”);
// don’t continue
while (true);
}
// attempt to connect to WiFi network
while ( status != WL_CONNECTED) {
Serial.print(“Attempting to connect to WPA SSID: “);
Serial.println(ssid);
// Connect to WPA/WPA2 network
status = WiFi.begin(ssid, pass);
}
Serial.println(“You’re connected to the network”);
printWifiStatus();
// start the web server on port 80
server.begin();
}
void loop()
{
// listen for incoming clients
WiFiEspClient client = server.available();
if (client) {
Serial.println(“New client”);
// an http request ends with a blank line
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
// if you’ve gotten to the end of the line (received a newline
// character) and the line is blank, the http request has ended,
// so you can send a reply
if (c == ‘\n’ && currentLineIsBlank) {
Serial.println(“Sending response”);
// send a standard http response header
// use \r\n instead of many println statements to speedup data send
client.print(
“HTTP/1.1 200 OK\r\n”
“Content-Type: text/html\r\n”
“Connection: close\r\n” // the connection will be closed after completion of the response
“Refresh: 20\r\n” // refresh the page automatically every 20 sec
“\r\n”);
client.print(“\r\n”);
client.print(“\r\n”);
client.print(“Hello World!\r\n”);
client.print(“Requests received: “);
client.print(++reqCount);
client.print(“\r\n”);
client.print(“Analog input A0: “);
client.print(analogRead(0));
client.print(“\r\n”);
client.print(“\r\n”);
break;
}
if (c == ‘\n’) {
// you’re starting a new line
currentLineIsBlank = true;
}
else if (c != ‘\r’) {
// you’ve gotten a character on the current line
currentLineIsBlank = false;
}
}
}
// give the web browser time to receive the data
delay(10);
// close the connection:
client.stop();
Serial.println(“Client disconnected”);
}
}
void printWifiStatus()
{
// print the SSID of the network you’re attached to
Serial.print(“SSID: “);
Serial.println(WiFi.SSID());
// print your WiFi shield’s IP address
IPAddress ip = WiFi.localIP();
Serial.print(“IP Address: “);
Serial.println(ip);
// print where to go in the browser
Serial.println();
Serial.print(“To see this page in action, open a browser to http://“);
Serial.println(ip);
Serial.println();
}
y ya esta . Y ademas quitar los jumpers y conectar lo de un cable macho hembra a los dos pines que te dice .
I’m running into the same problem. The pins are OK.
What shall I do ?
Hi gents
I get the same problem and jumpers seem to be ok
How did you solve yours?
The wifi module works when I do the troubleshooting steps for connecting to 10, 11. However, when I try to roll back to the A8, A9 it is not working.
can anyone help by showing a picture of how the cables should be connected to A8, A9 — do i use the pnp jumpers or do i use the regualr jumper cables. Please help.
I’ll reply you by email
Hi David,
I havent received the reply yet.
Thanks
have you sent it yet?
The mailbox prompts that the mail was delivered successfully
can someone help me!
Hi everyone i´m trying to start wifi ESP with the following code
/* ___ ___ ___ _ _ ___ ___ ____ ___ ____
* / _ \ /___)/ _ \| | | |/ _ \ / _ \ / ___) _ \| \
*| |_| |___ | |_| | |_| | |_| | |_| ( (__| |_| | | | |
* \___/(___/ \___/ \__ |\___/ \___(_)____)___/|_|_|_|
* (____/
* Use browser and OSOYOO MEGA-IoT extension shield to control LED from remote browser
* Tutorial URL http://osoyoo.com/?p=28284
* CopyRight http://www.osoyoo.com
*/
#include “WiFiEsp.h”
// Emulate softserial on pins 6/7 if not present
//#ifndef HAVE_HWSERIAL1
#include “SoftwareSerial.h”
SoftwareSerial softserial(10, 11); // RX, TX
//SoftwareSerial softserial(A9, A8); // RX, TX
//#endif
char ssid[] = “TEST”; // your network SSID (name)
char pass[] = “0001234”; // your network password
int status = WL_IDLE_STATUS;
int reqCount = 0; // number of requests received
WiFiEspServer server(80);
void setup()
{
// initialize serial for debugging
Serial.begin(9600);
// initialize serial for ESP module
softserial.begin(115200);
softserial.write(“AT+CIOBAUD=9600\r\n”);
softserial.write(“AT+RST\r\n”);
softserial.begin(9600);
// initialize ESP module
WiFi.init(&softserial);
// check for the presence of the shield
if (WiFi.status() == WL_NO_SHIELD) {
Serial.println(“WiFi shield not present”);
// don’t continue
while (true);
}
// attempt to connect to WiFi network
while ( status != WL_CONNECTED) {
Serial.print(“Attempting to connect to WPA SSID: “);
Serial.println(ssid);
// Connect to WPA/WPA2 network
status = WiFi.begin(ssid, pass);
}
Serial.println(“You’re connected to the network”);
printWifiStatus();
// start the web server on port 80
server.begin();
}
void loop()
{
// listen for incoming clients
WiFiEspClient client = server.available();
if (client) {
Serial.println(“New client”);
// an http request ends with a blank line
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
// if you’ve gotten to the end of the line (received a newline
// character) and the line is blank, the http request has ended,
// so you can send a reply
if (c == ‘\n’ && currentLineIsBlank) {
Serial.println(“Sending response”);
// send a standard http response header
// use \r\n instead of many println statements to speedup data send
client.print(
“HTTP/1.1 200 OK\r\n”
“Content-Type: text/html\r\n”
“Connection: close\r\n” // the connection will be closed after completion of the response
“Refresh: 20\r\n” // refresh the page automatically every 20 sec
“\r\n”);
client.print(“\r\n”);
client.print(“\r\n”);
client.print(“Hello World!\r\n”);
client.print(“Requests received: “);
client.print(++reqCount);
client.print(“\r\n”);
client.print(“Analog input A0: “);
client.print(analogRead(0));
client.print(“\r\n”);
client.print(“\r\n”);
break;
}
if (c == ‘\n’) {
// you’re starting a new line
currentLineIsBlank = true;
}
else if (c != ‘\r’) {
// you’ve gotten a character on the current line
currentLineIsBlank = false;
}
}
}
// give the web browser time to receive the data
delay(10);
// close the connection:
client.stop();
Serial.println(“Client disconnected”);
}
}
void printWifiStatus()
{
// print the SSID of the network you’re attached to
Serial.print(“SSID: “);
Serial.println(WiFi.SSID());
// print your WiFi shield’s IP address
IPAddress ip = WiFi.localIP();
Serial.print(“IP Address: “);
Serial.println(ip);
// print where to go in the browser
Serial.println();
Serial.print(“To see this page in action, open a browser to http://“);
Serial.println(ip);
Serial.println();
}
but the serial monitor shows me the following message:
[WiFiEsp] >>> TIMEOUT >>>
[WiFiEsp] >>> TIMEOUT >>>
[WiFiEsp] >>> TIMEOUT >>>
[WiFiEsp] >>> TIMEOUT >>>
[WiFiEsp] Cannot initialize ESP module
[WiFiEsp] >>> TIMEOUT >>>
[WiFiEsp] No tag found
WiFi shield not present