Guide de branchement de chose ESP8266 – learn.sparkfun.com – Bitcoin investissement

Carte de paiement Crypto

Demandez votre Carte de paiement Crypto ici

Recevez 8 € de BTC gratuitement

Inscrivez-vous à CoinBase









Actualité bitcoin






Favorisé



Préféré


29

introduction

Au cours de l’année écoulée, l’ESP8266 a été une star en pleine croissance parmi les projets liés à l’internet des objets ou au WiFi. C'est un module WiFi extrêmement rentable qui, moyennant un petit effort supplémentaire, peut être programmé comme tout microcontrôleur. Malheureusement, l'ESP8266 n'était généralement disponible que sous une forme modulaire minuscule, ce qui, avec des E / S limitées et un brouillage génial, peut être difficile à construire.


Module WiFi – ESP8266

En stock

WRL-13678

Le module WiFi ESP8266 est un SOC autonome avec une pile de protocoles TCP / IP intégrée qui peut donner à n'importe quel microcontrôleur…








36

Le module WiFi ESP8266. Idéal pour le ferroutage sur un Arduino, difficile de construire un projet.

La nouvelle carte de développement de SparkFun pour l'ESP8266 détache toutes les broches du module et est équipée d'un chargeur LiPo, d'une alimentation et de tous les autres circuits de support nécessaires. Nous l'appelons avec amour la chose – c'est la base idéale pour votre Internet des objets.


SparkFun ESP8266 Chose

29 disponible

WRL-13231

Le SparkFun ESP8266 Thing est une carte de développement et de développement pour le SoC ESP8266 WiFi, une plate-forme de premier plan pour l'IoT ou le WiF…








43

Vous rencontrez des difficultés pour visionner les vidéos? Essayez de redimensionner la vidéo en cliquant sur le raccourci pour afficher la présentation du produit en plein écran.

Couvert dans ce tutoriel

Ce tutoriel vous familiarisera avec tout ce qui concerne SparkFun Thing. Il est divisé en sections, qui couvrent:

Matériaux nécessaires

Pour suivre ce tutoriel et commencer à utiliser la Chose, vous aurez peut-être besoin de quelques outils et matériels supplémentaires. Cette liste de souhaits inclut tout ce que nous utilisons dans ce tutoriel pour programmer et utiliser la chose si vous commandez le tableau individuellement:

Lecture suggérée

Avant de poursuivre ce didacticiel, vous voudrez peut-être vous familiariser avec certains de ces sujets s'ils vous sont inconnus:

Communication série

Concepts de communication série asynchrones: paquets, niveaux de signal, débits en bauds, UART, etc.

Niveaux de logique

Découvrez la différence entre les appareils 3,3 V et 5 V et les niveaux logiques.

Vue d'ensemble du matériel

Le ESP8266 Thing est un tableau relativement simple. Les broches sont réparties en deux rangées parallèles compatibles avec la carte d’affichage. Les connecteurs USB et LiPo situés en haut de la carte fournissent une alimentation contrôlée par le commutateur ON / OFF situé à proximité. Et les voyants situés à l'intérieur de la carte indiquent l'alimentation, la charge et l'état du CI.

Voici un aperçu rapide des principaux composants de la chose:

Composants de carte annotés

Le brochage

Les en-têtes d'E / S de la Chose peuvent être divisés en trois sections:

En-tête de programmation série

Cet en-tête à six broches constituera le principal point de contact entre Thing et votre ordinateur de développement. Le brochage de cette en-tête correspond à la très commune "en-tête FTDI". Cela signifie que vous pouvez l’interfacer avec un câble FTDI Basic 3,3 V ou un câble FTDI I / O 3,3 V pour programmer et déboguer la chose.

Pour une ventilation rapide des broches sur cet en-tête, consultez le tableau ci-dessous. Si une broche est directement liée à un ESP8266 I / O, il sera noté:

Étiquette broche ESP8266 I / O # Remarques
DTR Effectue une réinitialisation automatique et met l’ESP8266 en mode chargeur de démarrage. Se connecte via un condensateur à RESET et un tampon au GPIO0 de l'ESP8266.
TXO 7 ESP8266 Sortie de données UART1.
RXI 8 ESP8266 Entrée de données UART1.
3V3 Par défaut, cette broche ne fournit pas directement l'ESP8266 (un cavalier à l'arrière peut changer cela).
Caroline du Nord Pas connecté à rien sur la chose.
GND Terre (0V).

je2En-tête C

je2C est un protocole de communication très populaire dans le monde intégré. Que vous souhaitiez relier le Thing à un capteur de mouvement, un capteur de lumière, un convertisseur numérique-analogique ou un écran OLED, I2C est souvent le protocole de choix.

Cet en-tête comprend quatre broches – tout ce qui devrait être nécessaire pour connecter un I2C périphérique à la Chose.

Étiquette broche ESP8266 I / O # Remarques
GND Terre (0V).
3V3 3,3V
SDA 2 Peut être utilisé comme ESP8266 GPIO2 ou I2C données série (SDA).
SCL 14 Peut être utilisé comme ESP8266 GPIO14 ou I2C horloge série (SCL).
Également utilisé comme horloge SPI (SCLK).

Ce brochage correspond à celui de la plupart de nos2Des planches de discussion en C, de sorte que vous pouvez les greffer directement sur la Chose.

Si vous avez besoin d'E / S supplémentaires, au lieu de I2C, les broches SDA et SCL peuvent être utilisées en tant que GPIO 2 et 14 respectivement. La broche SCL sert également d’horloge (SCLK) pour l’interface SPI de l’ESP8266.

En-tête général d'E / S

Le reste des broches d'alimentation, de contrôle et d'E / S sont réparties de l'autre côté de la carte. Elles sont:

Étiquette broche ESP8266 I / O # Remarques
GND Terre (0V).
NIV Connexion USB: sortie ~ 4.5V
LiPo connecté (pas d'USB): sortie ~ 3,7V
Pas d'alimentation: Peut être utilisé comme entrée d'alimentation en tension du régulateur 3,3V.
5 5 Cette broche est également liée à la LED intégrée.
0 0
4 4
13 13 Matériel SPI MOSI
12 12 Matériel SPI MISO
XPD 16 Peut être connecté pour réinitialiser l’ESP8266 en mode veille prolongée.
ADC A0 Un ADC 10 bits avec un tension maximale de 1V.
EN ESP8266 activer la broche. HIGH = allumé, LOW = éteint. Tiré haut à bord.

Qu'est-il arrivé au reste des broches GPIO? Pourquoi le schéma de numérotation des broches éclectique? Nous prenons ce que l'ESP8266 nous donne. Malheureusement, la plupart des GPIO restants sont connectés au circuit intégré de mémoire flash SPI intégré, qui stocke la mémoire de programme de l'ESP8266 et potentiellement d'autres données.

Dos de la chose

Renverser la situation révèle quelques cavaliers de trace et points de test, que vous pourrez trouver utiles pour votre application.

texte alternatif

Sauteurs

Étiquette de cavalier Paramètres par défaut Remarques
DTR Fermé Permet la réinitialisation automatique lors de la programmation de l'ESP8266, mais rend le débogage en série difficile.
I2C PU Fermé Connecte des résistances de charge de 10 kΩ aux broches SDA et SCL.
FTDI VCC Ouvrir Connecte la broche 3V3 de l'en-tête de série directement à l'alimentation 3,3V de l'ESP8266.

Parmi ces cavaliers, le DTR l'un est le plus souvent modifié. La sortie DTR du FTDI Basic est utilisée à deux fins: réinitialiser l’ESP8266 et baisser le niveau de GPIO0 (placer la puce en mode chargeur de démarrage). Le fait de garder ce cavalier fermé active la programmation, mais rend difficile le débogage via le moniteur série, car la carte se réinitialisera en mode chargeur de démarrage à chaque ouverture du terminal. L'utilisation et la modification de ce cavalier sont décrites plus loin dans ce tutoriel.

le FTDI_VCC Le cavalier s'ouvre par défaut pour garantir que, si un câble FTDI Logic de 3,3 V (alimentation 5 V) est utilisé pour programmer la chose, le signal 5 V n'est pas acheminé accidentellement au CI. En outre, la plupart des cartes FTDI 3,3 V n'ont pas beaucoup de jus à fournir sur le bus 3,3 V (elles fournissent souvent environ 50 mA max).

Points de test

Ces broches sont mises à disposition au cas où elles deviendraient nécessaires à votre projet. Les six broches regroupées sont connectées à la mémoire flash SPI intégrée de la Thing, mais si vous avez réellement besoin du GPIO supplémentaire ou si vous souhaitez essayer les broches, elles sont disponibles.

le RST pin est plus utile, mais nous n’avons pas laissé de marge pour le sortir – du moins pas directement. RST est lié par un condensateur de 0,1 µF à la DTR broche, pour permettre la réinitialisation automatique pendant la programmation. Pour de nombreuses applications nécessitant la RST épingler, basculer le DTR La goupille fonctionne aussi bien. Placer l'ESP8266 en sommeil profond est l'une de ces applications.

Sélection de l'antenne

L'antenne WiFi par défaut de la Thing est une antenne de traçage pour PCB basée sur cette note d'application TI. C'est rentable et fonctionne vraiment très bien!

Si vous devez connecter une antenne plus sensible à la puce, un connecteur U.FL est également disponible sur la carte, mais n'est pas connecté par défaut à la broche d'antenne de l'ESP8266. Pour connecter cette antenne à la puce, vous devez chauffer la résistance 0Ω et la faire pivoter à 90 °:

texte alternatif

Une résistance (laide, non nettoyée) remplacée par une antenne imprimée par une antenne U.FL.

Un fer à souder, une pince à épiler, (2) des mains fermes et de bons yeux devraient suffire à accomplir la tâche.

Pourquoi y a-t-il des pièces non remplies?

Dans un premier temps, nous avons voulu faire de la Chose une station de base sécurisée à capteurs communs. Les pads vides que vous voyez sont des points d'atterrissage pour trois circuits intégrés uniques:

  • ATECC108A – Un "moteur d'algorithme de signature numérique à courbe elliptique et clé en main (ECDSA)", qui peut être utilisé pour les numéros de série uniques, le hachage, le stockage de clés ou des nombres aléatoires. Un bon début pour sécuriser votre projet IoT!
  • Capteur de température TMP102 – Un capteur de température numérique simple, 12 bits.
  • Capteur de lumière TSL2561 – Un capteur de luminosité / lumière astucieux. Si vous avez de la chance d’avoir obtenu ce capteur, le spot est disponible pour peupler. Malheureusement, le capteur TSL2561 est EOL, vous devrez donc utiliser un autre capteur de lumière et vous connecter via le PTH le long des côtés de la carte.
  • Plus quelques empreintes de pas pour découpler les condensateurs.

Après un changement d'esprit tardif, nous avons décidé de garder le tableau le moins coûteux possible (c'est la meilleure fonctionnalité de l'ESP8266!), Tout en laissant la possibilité pour une expansion ultérieure. Les pads sont toujours là. Si vous souhaitez ajouter l’un de ces composants, nous espérons que tout ce dont vous avez besoin est une station à air chaud (peut être probablement pas un Heaterizer) et quelques pincettes.

Alimenter la chose

The Thing prévoit deux méthodes d’alimentation: USB ou LiPo. Le connecteur USB de la Thing est de la variété Micro-B. Un câble micro-B branché sur un port USB de l'ordinateur ou sur une prise murale USB 5V peut alimenter la chose.

Chacune de nos batteries LiPo à une seule cellule fonctionnera également pour alimenter la Chose – elles ont toutes le même connecteur JST à 2 broches.

Alimenter la chose avec une batterie LiPo
Ajoutez un LiPo 850mAh et une IMU LSM9DS0 9DoF à la chose pour créer un capteur de mouvement IoT.

Si l’USB et le LiPo sont connectés à la Chose, le port USB sera alimenté et la batterie LiPo sera chargée jusqu’à 500 mA.

Caractéristiques électriques

La tension maximale de l'ESP8266 est de 3,6 V; la Thing dispose donc d'un régulateur intégré de 3,3 V pour délivrer une tension sûre et constante au CI. Cela signifie que les broches d'E / S de l'ESP8266 fonctionnent également à 3,3 V; vous devrez donc décaler le niveau des signaux 5 V qui traversent le circuit intégré.

L’entrée de ce régulateur peut être transmise par USB, une batterie LiPo ou par l’intermédiaire du NIV épingle.

Tension d'entrée maximale: Si vous alimentez la carte via le VIN, assurez-vous que la tension ne dépasse pas 6V. C'est la tension d'entrée maximale du régulateur AP2112K-3.3V utilisé par la carte.

Si vous avez une alimentation externe régulée que vous souhaitez livrer directement à l’ESP8266, vous pouvez fournir cette tension via le 3V3 pin (sur le je2C en-tête). Bien que cette tension ne doit pas obligatoirement être de 3,3 V, elle doit être comprise dans la plage de 1.7-3.6V.

Évaluations actuelles

En moyenne, la Chose tire environ 80mA. WiFi transmet et reçoit peut augmenter momentanément ce tirage au sort. Voici un tableau, transcrit à partir de la fiche technique ESP8266, avec certaines des caractéristiques de courant les plus courantes.

Paramètre Typique Max Unité
Transmettre 802.11b (1 Mbps) 215 mA
Transmettre 802.11b (11 Mbps) 197 mA
Transmettre 802.11g (54 Mbps) 145 mA
Transmettre 802.11n 135 mA
Recevoir 802.11b 60 mA
Recevoir 802.11g 60 mA
Recevoir 802.11n 62 mA
Etre prêt 0,9 mA
Sommeil profond dix µA
Capacité maximum d'entraînement de broche d'E / S 12 mA

Si votre application nécessite une durée de vie maximale de la batterie, vous devrez probablement utiliser généreusement la fonctionnalité de veille profonde de l'ESP8266. Ce sera couvert plus tard dans ce tutoriel.

Programmation de la chose

L'ESP8266 possède un chargeur de démarrage série intégré, qui facilite la programmation et la reprogrammation. Vous n'avez pas besoin d'un programmeur spécialisé et coûteux, mais simplement d'un simple convertisseur USB-série. Nous utilisons un FTDI Basic de 3,3 V pour programmer la Thing, mais d’autres convertisseurs série avec des niveaux d’E / S de 3,3 V devraient fonctionner (par ex. Câble FTDI 5 V VCC-3,3 V I / O, dérivation FT231X, dérivation de base CH340G). Assurez-vous simplement d’installer les pilotes correspondants pour votre convertisseur et d’obtenir le câble USB compatible. Le convertisseur nécessite une ligne DTR en plus des broches RX et TX.


Câble FTDI 5V VCC-3.3V I / O

En stock

DEV-09717

Le câble FTDI est un convertisseur USB à série (niveau TTL) qui permet de connecter facilement des périphériques à interface TTL à des…








11


SparkFun FT231X Breakout

En stock

BOB-13263

Présentation de la carte opto-isolée SparkFun FT231X, complète de la fonction de négociation matérielle UART complète! Le pin-out de ce b…








4

Remarque: Lors de la programmation de la Chose, il est préférable de la mettre hors tension via USB. Nous avons remarqué que la programmation est plus susceptible d'échouer si la chose est uniquement alimentée par la batterie.

Selon votre configuration, il existe plusieurs méthodes de programmation de l’ESP8266 Thing. Vous trouverez ci-dessous quelques manières de programmer l’ESP8266 à l’aide d’un convertisseur série-USB.

Méthode 1: deux câbles USB

L'en-tête à 6 broches du FTDI Basic correspond exactement à l'en-tête du port série à 6 broches de la Thing. Pour configurer la programmation, connectez simplement le FTDI directement à ce port – veillez à faire correspondre les broches DTR et GND! Si vous soudez des en-têtes femelles à la Chose, le branchement d'une rangée à 6 broches d'en-têtes mâles à angle droit entre le FTDI et l'en-tête permet de créer une interface de programmation temporaire. Les broches d'en-tête sont petites d'un côté, assurez-vous donc qu'il y a un contact entre les deux cartes lors du téléchargement.

Deux câbles USB pour télécharger du code avec une carte dérivée FTDI
Si vous manquez de ports USB, le câble SparkFun Cerberus est peut-être exactement ce dont vous avez besoin.

Méthode 2: un câble USB avec un fil de liaison

Si vous ne disposez que d'un seul câble USB, vous pouvez connecter un convertisseur USB-série à l'en-tête de programmation série de l'ESP8266 Thing. Vous aurez juste besoin de vous connecter 3V3 sur l'en-tête de programmation série vers le 3V3 sur l'en-tête I2C avec un fil de liaison. Vous trouverez ci-dessous un exemple de liaison série classique CH340G connectée au câble de liaison reliant les broches 3,3V.

Un câble USB pour télécharger le code avec un fil de liaison

Remarque: Si l'ESP8266 Thing n'est pas connecté à une maquette, vous pouvez directement connecter l'en-tête femelle de votre convertisseur USB / série au côté de l'en-tête mâle de l'ESP8266 au lieu d'utiliser des cavaliers 6x pour connecter les cartes ensemble. Vous aurez toujours besoin de connecter les broches 3,3 V en utilisant un fil de liaison.

⚡ Attention: Assurez-vous de déconnecter la batterie LiPo de l'ESP8266 lorsque vous connectez un convertisseur USB / série si vous décidez d'ajouter un cavalier entre les broches 3V3 pour éviter les tensions conflictuelles.

Méthode 3: un câble USB avec un cavalier de soudure

Une troisième méthode consiste à ajouter un cavalier de soudure aux pads de cavalier portant la mention "FTDI VCC" pour connecter les broches 3V3 entre l'en-tête de programmation série et l'en-tête I2C. Vous pouvez ensuite connecter un convertisseur USB / série à l'en-tête de programmation série, comme indiqué précédemment.

Un câble USB pour télécharger le code avec un cavalier de soudure

⚡ Attention: Assurez-vous de déconnecter la batterie LiPo de l'ESP8266 lorsque vous connectez un convertisseur USB / série si vous décidez d'ajouter de la soudure aux pastilles pour éviter des tensions conflictuelles.

Assemblage de matériel

Oh. Nous devançons nous-mêmes. Pour connecter le programmateur FTDI à votre objet, vous devez souder quelque chose à la chose.

Si vous n'avez jamais soudé, c'est le moment de commencer! Ces points de soudure sont faciles, les broches de trou traversant, consultez notre section Comment souder – Soudage de trou traversant pour obtenir de l'aide pour commencer.

Ce que vous soudez exactement au tableau dépend à la fois de la façon dont vous l’utiliserez dans votre projet et de la façon dont vous l’interagirez avec le programmeur. Lorsqu'il s'agit de sélectionner un en-tête (ou un fil) à souder, il existe une variété d'options. Nous avons essayé beaucoup d'entre eux avec la chose:

Les embases empilables à 10 broches le rendent pratique pour brancher la Chose et le fil de connexion en dehors.

En-têtes empilables soudés dans la Chose

Ou vous pouvez combiner les en-têtes pour répondre au mieux à vos besoins. Les en-têtes mâles à angle droit peuvent aider à établir une interface entre la FTDI et la Chose. Les embases mâles droites sont un bon choix pour les connexions à profil bas. Les en-têtes femelles droites peuvent aider à se connecter à I2Capteurs C. Et, bien sûr, le fil peut être soudé à n’importe laquelle des broches ayant un long chemin à connecter à quelque chose.

Plusieurs types d'en-tête soudés dans la chose

Une fois que vous avez au moins soudé le port de programmation, vous êtes prêt à charger du code dans la Chose. Clignotons quelques LED et IoT (Internet our Thing).

Installation de l'additif ESP8266 Arduino

Divers environnements de développement peuvent être équipés pour programmer l'ESP8266. Vous pouvez utiliser une simple configuration Notepad / gcc, ajuster un environnement Eclipse, utiliser une machine virtuelle fournie par Espressif ou créer votre propre logiciel.

Heureusement, la communauté étonnante ESP8266 a récemment poussé la sélection IDE plus loin en créant un addon Arduino. Si vous commencez à programmer l'ESP8266, c'est l'environnement dans lequel nous recommandons de commencer, et celui que nous allons décrire dans ce didacticiel.

Cet addon ESP8266 pour Arduino est basé sur l'incroyable travail de Ivan Grokhotkov et du reste de la communauté ESP8266. Consultez le référentiel ESP8266 Arduino GitHub pour plus d'informations.

GitHub ESP8266 Core pour Arduino

Installer l'addon avec Arduino Boards Manager

Avec la sortie d'Arduino 1.6.4, l'ajout de cartes tierces à l'IDE Arduino est facilement réalisable grâce au nouveau gestionnaire de cartes. Si vous utilisez une version plus ancienne d’Arduino (1.6.3 ou antérieure), nous vous recommandons de procéder à la mise à niveau maintenant. Comme toujours, vous pouvez télécharger la dernière version d’Arduino à partir de Arduino.cc.

Pour commencer, nous devons mettre à jour le gestionnaire de forum avec une URL personnalisée. Ouvrez Arduino, puis allez dans les Préférences (Fichier > Préférences). Ensuite, vers le bas de la fenêtre, copiez cette URL dans la zone de texte "URL supplémentaires du gestionnaire de conseil":

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Si vous avez déjà une URL et que vous souhaitez la conserver, vous pouvez en séparer plusieurs en plaçant une virgule entre elles. (Arduino 1.6.5 a ajouté une zone de texte développée, des liens séparés ici par ligne.)

Ajout de l'URL du gestionnaire de cartes aux préférences Arduino

Frappé D'accord. Puis dirigez-vous vers le responsable du conseil en allant sur Outils > Planches > Responsable des conseils. Il devrait y avoir quelques nouvelles entrées en plus des cartes Arduino standard. Chercher esp8266. Cliquez sur cette entrée, puis sélectionnez Installer.

Installation de cartes supplémentaires à partir de Board Manager

Les définitions de carte et les outils pour l'ESP8266 Thing incluent un tout nouvel ensemble de fichiers binaires compilés gcc, g ++ et assez volumineux; le téléchargement et l'installation peuvent donc prendre quelques minutes (le fichier archivé est d'environ 110 Mo). Une fois l'installation terminée, un «INSTALLED» bleu Arduino apparaît à côté de l'entrée.

Sélection de la table de chose ESP8266

Une fois le module Board ajouté, il ne vous reste plus qu'à sélectionner "ESP8266 Thing" dans la liste Outils > Planches menu.

Sélection du conseil

Puis sélectionnez le numéro de port de votre FTDI sous le Outils > Port menu.

Pour vérifier que tout fonctionne, essayez de télécharger l’ancien standard: Blink. Au lieu de faire clignoter la broche 13, comme vous le faites peut-être bien, basculez la broche 5, qui est fixée au voyant intégré.

langue: c
#define ESP8266_LED 5

void setup()

  pinMode (ESP8266_LED, OUTPUT);


boucle vide ()

  digitalWrite (ESP8266_LED, HIGH);
  retard (500);
  digitalWrite (ESP8266_LED, LOW);
  retard (500);

Si le téléchargement échoue, assurez-vous d'abord que l'ESP8266 est allumé – le voyant DEL rouge "PWR" doit être allumé.

Envois plus rapides! La vitesse de téléchargement en série par défaut est 115200 bps, ce qui est fiable, mais peut sembler un peu lent. Vous pouvez augmenter la vitesse de téléchargement d'un facteur d'environ 8 en sélectionnant 921600 sous le Outils > Vitesse de téléchargement menu.

Cette vitesse de téléchargement plus rapide peut être légèrement moins fiable, mais vous fera gagner beaucoup de temps!

Il reste encore quelques bugs à sortir de l'outil esptool, il faut parfois quelques tentatives pour télécharger un sketch. Si vous continuez à échouer, essayez d’allumer puis d’éteindre l’ESP8266, ou de débrancher puis de rebrancher le FTDI. Si le problème persiste, contactez notre formidable équipe de support technique.

Exemple d'esquisse: serveur Web AP

L'ESP8266 peut non seulement se connecter à un réseau WiFi et interagir avec Internet, mais il peut également configurer son propre réseau, permettant ainsi à d'autres appareils de s'y connecter directement. Cet exemple montre comment transformer l’ESP8266 en un point d'accès (AP) et servir des pages Web à n’importe quel client connecté.

Copiez et collez le code ci-dessous dans l'IDE Arduino. Puis cliquez sur le bouton de téléchargement.

langue: c
#comprendre 

//////////////////////////
// Définitions WiFi //
//////////////////////////
const char WiFiAPPSK[] = "sparkfun";

///////////////////////
// Définitions Pin //
///////////////////////
const int LED_PIN = 5; // Chose à bord, LED verte
const int ANALOG_PIN = A0; // La seule broche analogique de la chose
const int DIGITAL_PIN = 12; // Pin numérique à lire

Serveur WiFiServer (80);

void setup()

  initHardware ();
  setupWiFi ();
  server.begin ();


boucle vide ()

  // Vérifie si un client s'est connecté
  Client WiFiClient = server.available ();
  si (! client) 
    revenir;
  

  // Lire la première ligne de la requête
  String req = client.readStringUntil (' r');
  Serial.println (req);
  client.flush ();

  // correspond à la demande
  int val = -1; // Nous utiliserons 'val' pour garder trace des deux
                // type de requête (read / set) et valeur si définie.
  if (req.indexOf ("/ led / 0")! = -1)
    val = 0; // va écrire LED faible
  else if (req.indexOf ("/ led / 1")! = -1)
    val = 1; // va écrire LED haute
  else if (req.indexOf ("/ read")! = -1)
    val = -2; // Imprimera les lectures de punaises
  // Sinon, la demande sera invalide. Nous dirons autant en HTML

  // Définit GPIO5 en fonction de la demande
  si (val> = 0)
    digitalWrite (LED_PIN, val);

  client.flush ();

  // prépare la réponse. Commencez avec l'en-tête commun:
  String s = "HTTP / 1.1 200 OK  r  n";
  s + = "Type de contenu: text / html  r  n  r  n";
  s + = " r  n r  n ";

  / * Remarque: supprimez les commentaires de la ligne ci-dessous pour une actualisation automatique.
   * toutes les secondes. Ce n'est pas idéal pour les grandes pages
   * mais pour une lecture simple, il est utile pour la surveillance
   * vos capteurs et broches d'E / S. Pour ajuster le taux de frais,
   * ajuster la valeur pour le contenu. Pendant 30 secondes, tout simplement
   * changer la valeur à 30. * /
  // s + = " r  n "; // page d’actualisation automatique

  // Si nous allumons la LED, affiche un message disant que nous l'avons fait
  si (val> = 0)
  
    s + = "LED est maintenant";
    s + = (val)? "on": "off";
  
  sinon si (val == -2)
  // Si nous lisons des pins, affichez ces valeurs:
    s + = "Analog Pin =";
    s + = chaîne (analogRead (ANALOG_PIN));
    s + = "
"; // va à la ligne suivante.     s + = "broche numérique 12 =";     s + = String (digitalRead (DIGITAL_PIN));      autre        s + = "Requête invalide.
Essayez / led / 1, / led / 0, ou / read. ";      s + = " n ";   // envoyer la réponse au client   client.print (s);   retarder (1);   Serial.println ("Client déconnecté");   // le client sera réellement déconnecté   // quand la fonction retourne et que l'objet 'client' est détruit annuler setupWiFi ()   WiFi.mode (WIFI_AP);   // Fait un peu de travail pour obtenir un nom unique. Ajouter le   // deux derniers octets du MAC (HEX'd) à "Thing-":   uint8_t mac[WL_MAC_ADDR_LENGTH];   WiFi.softAPmacAddress (mac);   String macID = String (mac[WL_MAC_ADDR_LENGTH - 2], HEX) +                  String (mac[WL_MAC_ADDR_LENGTH - 1], HEX);   macID.toUpperCase ();   String AP_NameString = "Chose ESP8266" + macID;   char AP_NameChar[AP_NameString.length() + 1];   memset (AP_NameChar, 0, AP_NameString.length () + 1);   pour (int i = 0; i <AP_NameString.length (); i ++)     AP_NameChar[i] = AP_NameString.charAt (i);   WiFi.softAP (AP_NameChar, WiFiAPPSK); void initHardware ()   Serial.begin (115200);   pinMode (DIGITAL_PIN, INPUT_PULLUP);   pinMode (LED_PIN, OUTPUT);   digitalWrite (LED_PIN, LOW);   // Inutile de définir ANALOG_PIN en entrée,   // c'est tout ce que cela peut être.

Après avoir téléchargé cette esquisse, trouvez un autre appareil que vous pouvez connecter à un réseau WiFi – téléphone, ordinateur portable, etc. Recherchez un réseau appelé "Thing-XXXX", où XXXX correspond aux 2 derniers octets de l'adresse MAC de la chose.

Connexion à l'AP Chose

L'esquisse définit le mot de passe du réseau sur "sparkfun".

Une fois connecté au réseau AP de votre Thing, chargez un navigateur et pointez-le sur 192.168.4.1/read. The Thing devrait vous proposer une page Web présentant ses lectures ADC et numérique 12:

La chose sert une page Web

Après cela, donnez 192.168.4.1/led/0 et 192.168.4.1/led/1 essayez et gardez un œil sur le voyant vert de la chose pendant que vous le faites.

Actualisation automatique

Fatigué de cliquer sur le bouton d'actualisation pour mettre à jour les lectures des broches d'E / S? Essayez de décommenter la ligne de code où elle dit: s + = " r n ";. Transférez ensuite le code sur votre ESP8266. Cette ligne de code actualisera automatiquement la page toutes les secondes.

        / * Remarque: supprimez les commentaires de la ligne ci-dessous pour une actualisation automatique.
   * toutes les secondes. Ce n'est pas idéal pour les grandes pages
   * mais pour une lecture simple, il est utile pour la surveillance
   * vos capteurs et broches d'E / S. Pour ajuster le taux de frais,
   * ajuster la valeur pour le contenu. Pendant 30 secondes, tout simplement
   * changer la valeur à 30. * /
  // s + = " r  n "; // page d’actualisation automatique

Comme toujours, vérifiez dans les commentaires du code pour obtenir une ventilation ligne par ligne de ce qui se passe.

Utiliser l'addon Arduino

Si vous avez déjà utilisé Arduino dans le passé, ESP 8266 proposera de nouveaux programmes de programmation.

Pin Mappings

Comme pour tout autre Arduino, les correspondances de broches imprimées sur le tableau correspondent à la broche que vous avez lue ou écrite. Les broches SDA et SCL peuvent être référencées respectivement 2 et 14.

Il n'y a qu'une seule broche d'entrée analogique, étiquetée ADC. Lire le ADC broche, faire un appel de fonction à analogRead (A0). Rappelez-vous que cette broche a une tension maximale étrange de 1V – vous obtiendrez une valeur de 10 bits (0-1023) proportionnelle à une tension comprise entre 0 et 1V.

Céder

C'est l'une des différences les plus critiques entre l'ESP8266 et un microcontrôleur Arduino plus classique. L'ESP8266 exécute de nombreuses fonctions utilitaires en arrière-plan: garder le WiFi connecté, gérer la pile TCP / IP et effectuer d'autres tâches. Le blocage de l'exécution de ces fonctions peut entraîner le blocage et la réinitialisation de l'ESP8266. Pour éviter ces réinitialisations mystérieuses, évitez les longues boucles de blocage dans votre croquis.

Si vous avez une longue boucle dans votre croquis, vous pouvez ajouter un retard([milliseconds]) appelez dedans, pour permettre aux fonctions critiques d'arrière-plan de s'exécuter. Les ESP8266 retard() funciton, tout en retardant bien entendu un certain nombre de millisecondes, appelle également rapidement les fonctions d’arrière-plan.

Les incroyables créateurs des bibliothèques Arduino ESP8266 ont également implémenté un rendement() fonction, qui appelle les fonctions d’arrière-plan pour leur permettre de faire leur travail. Par exemple, si votre esquisse attend que quelqu'un appuie sur un bouton attaché à la broche 12, la création d'une boucle comme celle-ci empêchera l'ESP8266 de se bloquer:

langue: c
pinMode (12, INPUT_PULLUP); // Définir la broche 12 comme une entrée avec pull-up
while (digitalRead (12) == HIGH) // tant que la broche 12 est HIGH (non activée)
    rendement(); // Ne fait (presque) rien - permet d'autoriser les fonctions d'arrière-plan de l'ESP8266
Serial.println ("Le bouton est enfoncé!"); // Bouton Imprimer Message enfoncé.

ESP8266WiFi Class

Il s’agit de l’ESP8266, de sorte que la classe WiFi sera probablement incluse dans à peu près toutes les esquisses existantes. Si vous avez déjà utilisé la bibliothèque WiFi Arduino auparavant, la bibliothèque WiFi ESP8266 sera très similaire, il y a juste quelques différences clés:

  • À inclure la bibliothèque WiFi ESP8266 appel #comprendre ne pas .
  • À relier réseau, comme la bibliothèque WiFi normale, appelez WiFi.begin (NetworkSSID, NetworkPassword). Vous pouvez également configurer l’ESP8266 comme point d’accès WiFi en appelant WiFi.softAP (AP_SSID, AP_Password).
  • Pour régler l'ESP8266 mode, qui peut être un point d’accès (AP), une station (STA) ou un combo (l’ESP8266 peut faire les deux à la fois!), appelez WiFi.setMode ([mode]) soit WIFI_AP, WIFI_STA, ou WIFI_STA_AP comme paramètre.

Les exemples précédents dans ce didacticiel auraient dû démontrer toutes ces différences.

Bibliothèques disponibles / non disponibles et les différences

Une grande partie des bibliothèques Arduino principales ont été réécrites pour fonctionner pour l'ESP8266, notamment:

  • Câble – Le ESP8266 devrait fonctionner avec n'importe quel I2Capteur C que vous pouvez utiliser – utilisez simplement les mêmes appels Wire API que ceux auxquels vous êtes habitués. Il y a quelques différences:
    • Définition du code PIN: l’ESP2866 n’a pas de matériel I2C broches – celles qui sont marquées dans Thing sont les valeurs par défaut, mais vous pouvez en réalité utiliser deux broches quelconques comme SDA et SCL. Appel Wire.begin () supposons que les broches 2 et 14 sont SDA et SCL, mais vous pouvez les définir manuellement sur n’importe quelle autre broche en appelant Wire.begin ([SDA], [SCL]).
  • SPI – L’ESP8266 Thing peut contrôler un bus SPI à l’aide d’appels de fonction standard de la bibliothèque Arduino SPI.
    • Une fonction supplémentaire pour régler la fréquence – SPI.setFrequency ([frequency]) — est ajouté. Vous devrez peut-être appeler cela dans votre configuration pour ralentir l'horloge par rapport à sa valeur par défaut. Par exemple, SPI.setFrequency (1000000) mettra l'horloge SPI à 1 MHz.
    • Les broches MISO, MOSI et SCLK SPI sont codées en dur et ne peuvent pas être déplacées. Elles sont:
Code PIN Fonction SPI
12 MISO
13 MOSI
14 (SCL) SCLK
15 CS

Utilisation du moniteur de série

GPIO0 – tout en étant parfaitement capable en tant qu'E / S numérique – remplit une fonction secondaire en tant que contrôleur de démarrage / mode de fonctionnement. Lorsque l'ESP8266 démarre, il considère que la valeur de GPIO0 permet d'entrer dans le chargeur de démarrage ou de démarrer l'exécution du programme actuel:

Valeur GPIO0 Mode ESP8266
ÉLEVÉ (3.3V) Exécuter de programme
BASSE (0V) Chargeur de démarrage

Pour faciliter la programmation de l'ESP8266, nous avons lié GPIO0 à DTR (avec RST). Lorsque votre programmeur commence à télécharger une esquisse, il passe à DTR bas, puis règle GPIO0 sur bas et permet à l'ESP8266 d'entrer en mode chargeur de démarrage.

Malheureusement, lorsque vous ouvrez un terminal série, DTR redevient généralement faible. Ainsi, chaque fois que vous ouvrez le moniteur série Arduino, l'ESP8266 passe en mode chargeur de démarrage, au lieu du mode d'exécution. Si vous ouvrez le moniteur série et que vous ne voyez qu'une ligne de charabia, vous avez probablement démarré l'ESP8266 en mode chargeur de démarrage.

Il y a plusieurs façons de contourner cela. Nous avons ajouté le cavalier DTR au bas du tableau. Vous pouvez couper la trace à l'arrière et installer un connecteur mâle à 2 broches associé à un cavalier à 2 broches. Si le cavalier est présent, la carte pourra être programmée. Le retrait du cavalier activera le mode terminal série.

Cavalier DTR installé

Vous pouvez également trouver un programme de terminal série permettant de contrôler directement la broche DTR. RealTerm permet ce contrôle – accédez à l'onglet "Pins", puis cliquez sur "Effacer" en regard de "DTR".

Broche DTR désactivante en temps réel

Malheureusement, cette solution exclusivement Windows est le seul programme terminal que nous ayons trouvé jusqu'à présent avec un tel contrôle. Votre meilleur pari peut être d’essayer d’éviter le débogage en série chaque fois que possible – c’est à cela que servent les voyants, non? (Langue seulement gentil dans la joue.)

Plus d'exemples de chose ESP8266

Besoin d'un petit coup de coeur pour utiliser le ESP8266 en web client mode avec un autre service de transmission de données en continu et / ou une plateforme IoT? Consultez ce didacticiel pour enregistrer les données avec ThingSpeak. Le didacticiel utilise la carte de développement ESP8266 Thing, mais il fonctionne également avec la chose ESP8266.

Guide de l'expérience Internet des objets

23 novembre 2016

SparkFun ESP8266 Thing Dev Board est une plate-forme de développement puissante qui vous permet de connecter vos projets matériels à Internet. Dans ce guide, nous vous montrons comment combiner des composants simples pour enregistrer à distance les données de température, envoyer des textes et contrôler les lumières de loin.

Ressources et aller plus loin

Maintenant que votre ESP8266 Thing est opérationnel, il est temps de l'intégrer à votre propre projet! Pour plus d'informations, consultez les ressources ci-dessous:

Une communauté étonnamment impressionnante s'est développée autour de l'ESP8266. Nous leur devons énormément pour l’extraordinaire addon Arduino qu’ils ont construit en coopération. Pour tous vos besoins en ESP8266, nous vous recommandons de consulter le forum communautaire esp8266.com. En plus de cela, voici quelques ressources relatives à ESP8266 que nous avons trouvées extrêmement utiles:

Vous avez besoin d'un peu d'inspiration pour votre projet, maintenant que vous avez votre ESP8266 Thing opérationnel? Peut-être que certains de ces tutoriels liés à SparkFun aideront à stimuler certaines idées. Grâce à sa capacité de sommeil profond, la chose est une base idéale pour une station météorologique basée sur le WiFi, ou un plushy amical, confortable et interactif. Vous pouvez également le connecter à une plate-forme IoT ou à Raspberry Pi.

ESt ce que ça va? Widget

Utilisez un Imp électrique et un accéléromètre pour créer un widget "Êtes-vous d'accord". Une technologie confortable que votre ami ou un être cher peut encourager à vous faire savoir qu’il va bien à partir d’un demi-monde.

Guide de l'expérience Internet des objets

SparkFun ESP8266 Thing Dev Board est une plate-forme de développement puissante qui vous permet de connecter vos projets matériels à Internet. Dans ce guide, nous vous montrons comment combiner des composants simples pour enregistrer à distance les données de température, envoyer des textes et contrôler les lumières de loin.

Ou consultez certaines de ces publications pour des idées:





Traduit depuis https://learn.sparkfun.com/tutorials/esp8266-thing-hookup-guide/all

Carte de paiement Crypto

Demandez votre Carte de paiement Crypto ici

Recevez 8 € de BTC gratuitement


Inscrivez-vous à CoinBase