OBJECTIF
Depuis Arduino UNO, envoyez des commandes AT à ESP8266 via un port SoftwareSerial et recevez les résultats.
STATUT ACTUEL
J'envoie des commandes AT et je ne récupère rien ( schéma de câblage 1 ) ou j'envoie des commandes AT et je récupère des ordures ( schéma de câblage 2 ).
En utilisant l'Arduino comme un pass through (comme expliqué dans le tutoriel répertorié dans la section ressources), je peux envoyer des commandes AT. J'ai trouvé que je peux communiquer avec l'ESP8266 à 115200 bauds.
Ce sont les résultats de l'exécution AT+GMR
:
AT version:0.40.0.0(Aug 8 2015 14:45:58)
SDK version:1.3.0
Ai-Thinker Technology Co.,Ltd.
Build:1.3.0.2 Sep 11 2015 11:48:04
SCHÉMA DE CÂBLAGE 1
!! J'ai le fil vert attaché à la broche 3 sur l'Arduino Uno et le fil jaune attaché à la broche 2; pas 1 et 0 comme le suggère la photo !!
SCHÉMA DE CÂBLAGE 2
Même câblage que ci-dessus, mais j'ai inversé RX et TX. Le fil vert est attaché à la broche 2 et le fil jaune est attaché à la broche 3.
CODE
Cela fonctionne sur Arduino Uno
#include <SoftwareSerial.h>
SoftwareSerial esp8266(2, 3);
void setup() {
// Open serial communications and wait for port to open:
Serial.begin(115200);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
Serial.println("Started");
// set the data rate for the SoftwareSerial port
esp8266.begin(115200);
esp8266.write("AT\r\n");
}
void loop() {
if (esp8266.available()) {
Serial.write(esp8266.read());
}
if (Serial.available()) {
esp8266.write(Serial.read());
}
}
RÉSULTATS DU CROQUIS EN COURS
Schéma de câblage 1
Started
Schéma de câblage 2
Started
�����
J'ai testé l'ESP8266 via les instructions répertoriées dans le didacticiel de la section Ressources que j'ai utilisées ci-dessous. L'ESP8266 fonctionne très bien lors de l'envoi des instructions via l'invite série.
RESSOURCES QUE J'AI UTILISÉES http://rancidbacon.com/files/kiwicon8/ESP8266_WiFi_Module_Quick_Start_Guide_v_1.0.4.pdf
QUESTION
Est-ce que quelqu'un sait si ce que j'essaie de faire est possible? Et si c'est le cas, que fais-je de mal?
Réponses:
Absolument possible :)
SoftwareSerial n'est pas capable d'une vitesse de 115200 bauds (malgré "l'autorisation" comme paramètre). Certains rapports suggèrent que 57600 est réalisable, mais selon mon expérience, 9600 est le meilleur pour la fiabilité. La façon de modifier la vitesse de transmission sur l'ESP8266 dépendra de la version du micrologiciel. J'ai eu du succès avec
AT+IPR=9600
. Vous n'avez besoin d'exécuter cette commande qu'une seule fois (c'est un paramètre persistant). Je dirais, sur la base de votre description, que c'est le coupable le plus probable à l'origine de la sortie "poubelle" que vous décrivez.Quelques autres notes:
AT
mais lorsque vous essayez de vous connecter à un réseau, etc., cela peut entraîner des réinitialisations inattendues de l'appareil.la source
Eh bien, vous pouvez essayer ceci:
Commencez par télécharger un sketch clignotant sur votre Arduino puis connectez-le à votre ESP8266 comme ceci: TX-TX et RX-RX.
Maintenant, ouvrez Serial Monitor et envoyez la commande AT et voyez si elle répond. Si c'est le cas, vous pouvez le contrôler à l'aide de votre Arduino en le reliant à TX-RX et RX-TX.
PS: N'oubliez pas de définir la ligne se terminant dans le moniteur série sur Retour à la ligne ou Retour chariot.
Utilisez ce code pour vous connecter à ESP8266:
Étant donné que l'interface matérielle série sera occupée lors de la connexion à l'ordinateur, vous devez utiliser une autre interface série pour communiquer avec votre ESP8266. Dans ce cas, Software Serial est pratique.
la source
Est-ce que quelqu'un sait si ce que j'essaie de faire est possible? C'est possible, je l'ai fait avec 2 arduinos où l'un simulait ESP8266 (en attente de la commande ebay).
Et si c'est le cas, que fais-je de mal?
Ce que vous faites est mal à la plupart des niveaux, mais je pense que vous avez été le mieux réglé.
Une idée est d'implémenter ce petit gars: le changement de niveau logique, cela vous évitera de nombreux problèmes plus tard.
Sur votre "SCHÉMA DE CÂBLAGE 1", vous utilisez le port série matériel de l'arduino pour parler directement à l'appareil comme s'il était connecté via un câble TTL ou FTDI.
Cela signifie que le périphérique arduino lirait en théorie à partir du matériel lorsque vous parlez également de l'ESP8266, si vous avez un autre arduino ou un câble TTL, essayez de le connecter aux portes 2 et 3 de l'arduino "principal" et vous devriez obtenir un similaire résultat comme pour votre exemple de résultat 2. Puisque vous le feriez de cette façon, proxy via l'arduino. Sinon, ce serait un endroit pour commencer le débogage.
À côté de cela, je ne pouvais que vous recommander d'investir dans un TTL 3,3v ou un convertisseur de niveau logique. Quand j'ai eu mon câble, tout a fonctionné hors de la boîte.
la source
J'ai aussi eu beaucoup de problèmes. Dans mon cas, les problèmes sont presque résolus en passant de SoftwareSerial à AltSoftSerial . Il semblait que sur l'Uno, la bibliothèque série de logiciels standard ne fonctionnait pas pour moi. Après avoir changé, j'ai commencé à obtenir des résultats pour la première fois. (J'ai également utilisé le décalage de niveau et l'alimentation externe pour 3,3 V)
Et par presque résolu, je veux dire - je reçois toujours, de temps en temps, du charabia sur le terminal. Ainsi, même AltSoftSerial n'est pas une solution parfaite. J'utilisais l'ESP-07 avec un débit de données de 115200 bps.
la source
Nous avons constaté que bon nombre des problèmes liés à l'intégration du logiciel série ESP - Arduino Uno étaient liés à des vitesses de transmission incompatibles. Nous avons créé ce court didacticiel (y compris une bibliothèque Github) que vous pouvez tester et voir s'il résout ces problèmes. http://www.instructables.com/id/Simple-ESP8266-Arduino-Uno-Software-Serial-Integra/
la source
Voici quelques conseils lors de l'utilisation du module ESP8266.
N'utilisez pas de logiciel en série car il n'est pas fiable, en particulier à des taux de transmission plus élevés.
Connectez toujours le module ESP à l'ordinateur et testez toutes les commandes AT avant d'interagir avec Arduino pour vous assurer que vous travaillez dans la bonne direction
Faire une carte d'adaptateur d'alimentation pour rendre le module ESP compatible avec l'alimentation Arduino 5v
Consultez également ce lien pour plus de détails
la source