Outils pour utilisateurs

Outils du site


electronique:micro_controleurs:esp8266:sketchbook

Ceci est une ancienne révision du document !


Sketchbook, tips and tricks

Les liens indispendables

Les bonnes pratiques pour débuter : Sparkfun
Le github officiel d'espressif pour l'IDE arduino : Github
ESP8266 Arduino core documentation, version 2.3.0 : esp8266.github.io
Le forum officiel quand rien ne va plus : www.esp8266.com
Des projets à gogo : Hackster.io (ESP8266)

Activer le débug

Activer le mode debug sur l'IDE Arduino pour Wemos : Lien

Interface de commande série

Source : Lien

Exemple de code :

serial_interpreter.ino
const byte numChars = 32;
char receivedChars[numChars]; // an array to store the received data
char endMarker = '\r'; // Il s'agit de marqueur de fin pour minicom (quand on press Enter)
 
boolean newData = false;
 
void setup() {
 Serial.begin(9600);
 Serial.println("<Arduino is ready>");
}
 
void loop() {
 recvWithEndMarker();
 showNewData();
}
 
void recvWithEndMarker() {
 static byte ndx = 0;
 
 char rc;
 
 while (Serial.available()> 0 && newData == false) {
 rc = Serial.read();
 
  if (rc != endMarker) {
  receivedChars[ndx] = rc;
  ndx++;
  if (ndx>= numChars) {
  ndx = numChars - 1;
  }
  }
  else {
  receivedChars[ndx] = '\0'; // terminate the string
   ndx = 0;
  newData = true;
  }
 }
}
 
void showNewData() {
 if (newData == true) {
   Serial.printf("Commande reçue %s\n", receivedChars);
 
   // Conversion d'un array en string pour faire des comparaisons
   String str((char*)receivedChars);
   if (str == "test") Serial.println("It works!");
 
   newData = false;
 }
}

Interface de commande UDP

Lien

Exemple pour allumer ou éteindre un relais :

udp_interpreter.ino
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>
 
const char* ssid = "freebox";
const char* password = "maison de clairon et tata";
 
WiFiUDP Udp;
unsigned int localUdpPort = 4210;  // local port to listen on
char incomingPacket[255];  // buffer for incoming packets
char  replyPacekt[] = "Hi there! Got the message :-)";  // a reply string to send back
 
void setup()
{
  Serial.begin(115200);
  Serial.println();
 
  Serial.printf("Connecting to %s ", ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
    Serial.print(".");
  }
  Serial.println(" connected");
 
  Udp.begin(localUdpPort);
  Serial.printf("Now listening at IP %s, UDP port %d\n", WiFi.localIP().toString().c_str(), localUdpPort);
 
  pinMode(D1, OUTPUT );
  digitalWrite(D1, LOW);
}
 
void loop()
{
  int packetSize = Udp.parsePacket();
  if (packetSize)
  {
    // receive incoming UDP packets
    Serial.printf("Received %d bytes from %s, port %d\n", packetSize, Udp.remoteIP().toString().c_str(), Udp.remotePort());
    int len = Udp.read(incomingPacket, 255);
    if (len> 0)
    {
      incomingPacket[len] = 0;
    }
    Serial.printf("UDP packet contents: %s\n", incomingPacket);
 
    // Conversion d'un array en string pour faire des comparaisons
   String udp_packet_string((char*)incomingPacket);
 
    if (udp_packet_string == "ON" ) digitalWrite(D1, HIGH);
    else if (udp_packet_string == "OFF" ) digitalWrite(D1, LOW);
    else Serial.printf("Commande non reconnue ...\n");
 
  }
}

Pour envoyer rapidement un packet UDP en ligne de commande :

echo -n "ON"> /dev/udp/ip_du_module/port_du_module

Transmettre des notifications PushBullet

Librairie pushbullet sur Github : PushBullet-ESP8266

Version simplifiée à tester : www.esp8266.com

Utilisation en ligne de commande

IDE

Compiler et uploader : ./arduino –upload sketch.ino
Récupérer la configuration courante : ./arduino –get-pref

Port COM

Utiliser minicom : lancer avec colorisation minicom -c on

electronique/micro_controleurs/esp8266/sketchbook.1491223856.txt.gz · Dernière modification : 2025/01/14 11:19 (modification externe)