ESP8266 - Clavier - Moteur servo

Ce tutoriel vous explique comment utiliser l'ESP8266 et un clavier pour contrôler un moteur servo. En détail :

Le code ESP8266 prend également en charge plusieurs mots de passe.

Préparation du matériel

1×ESP8266 NodeMCU
1×Micro USB Cable
1×Keypad
1×Servo Motor
1×5V Power Adapter
1×DC Power Jack
1×Jumper Wires
1×(Optional) 5V Power Adapter for ESP8266
1×(Optional) ESP8266 Screw Terminal Adapter

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du clavier et du servomoteur

Si vous ne connaissez pas le clavier et le moteur servo (y compris le brochage, leur fonctionnement et comment les programmer), les tutoriels suivants peuvent vous aider :

Diagramme de câblage

Schéma de câblage du servo-moteur à clavier ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Voir plus dans l'agencement des broches de l'ESP8266 et comment alimenter l'ESP8266 et d'autres composants.

Veuillez noter que le schéma de câblage présenté ci-dessus convient uniquement à un moteur servo à faible couple. Si le moteur vibre au lieu de tourner, une source d'alimentation externe doit être utilisée pour fournir plus de puissance au moteur servo. Ci-dessous est présenté le schéma de câblage avec une source d'alimentation externe pour moteur servo.

À AJOUTER IMAGE

N'oubliez pas de connecter le GND de l'alimentation externe au GND de l'ESP8266.

Code ESP8266 - fait tourner le moteur Servo si le mot de passe est correct

Si le mot de passe est correct, le servo-moteur sera réglé à 90° pendant une période de 5 secondes. Ensuite, il sera remis à 0°.

/* * Ce code ESP8266 NodeMCU a été développé par newbiely.fr * Ce code ESP8266 NodeMCU est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp8266/esp8266-keypad-servo-motor */ #include <Keypad.h> #include <Servo.h> #define SERVO_PIN D0 // The ESP8266 pin connected to the servo motor #define ROW_NUM 4 // 4 rows #define COLUMN_NUM 3 // 3 columns char key_layout[ROW_NUM][COLUMN_NUM] = { {'1','2','3'}, {'4','5','6'}, {'7','8','9'}, {'*','0','#'} }; byte pin_rows[ROW_NUM] = {D1, D2, D3, D4}; // The ESP8266 pins connect to the row pins byte pin_column[COLUMN_NUM] = {D5, D6, D7}; // The ESP8266 pins connect to the column pins Keypad keypad = Keypad( makeKeymap(key_layout), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); Servo servo; // servo motor const String password_1 = "ABC1234"; // change your password here const String password_2 = "5642B"; // change your password here const String password_3 = "9765"; // change your password here String input_password; int angle = 0; // The current angle of servo motor unsigned long prev_time; void setup() { Serial.begin(9600); input_password.reserve(32); // maximum password size is 32, change if needed servo.attach(SERVO_PIN); servo.write(0); // rotate servo motor to 0° prev_time = millis(); } void loop() { char key = keypad.getKey(); if (key) { Serial.println(key); if (key == '*') { input_password = ""; // reset the input password } else if (key == '#') { if (input_password == password_1 || input_password == password_2 || input_password == password_3) { Serial.println("The correct password! Rotating Servo Motor to 90°"); angle = 90; servo.write(angle); prev_time = millis(); } else { Serial.println("The incorrect password! try again"); } input_password = ""; // reset the input password } else { input_password += key; // append new character to input password string } } if (angle == 90 && (millis() - prev_time) > 5000) { // 5 seconds angle = 0; servo.write(angle); Serial.println("Rotating Servo Motor to 0°"); } }

Étapes rapides

Pour commencer avec l'ESP8266 sur Arduino IDE, suivez ces étapes :

  • Consultez le tutoriel comment configurer l'environnement pour ESP8266 sur Arduino IDE si c'est la première fois que vous utilisez ESP8266.
  • Connectez les composants comme indiqué dans le schéma.
  • Branchez la carte ESP8266 à votre ordinateur à l'aide d'un câble USB.
  • Ouvrez Arduino IDE sur votre ordinateur.
  • Choisissez la bonne carte ESP8266, comme par exemple NodeMCU 1.0 (Module ESP-12E), et son port COM respectif.
  • Connectez un câble USB entre l'ESP8266 et le PC.
  • Ouvrez Arduino IDE, choisissez la bonne carte et le bon port.
  • Cliquez sur l'icône Libraries dans la barre gauche de Arduino IDE.
  • Recherchez "keypad" et trouvez la bibliothèque de clavier créée par Mark Stanley et Alexander Brevig.
  • Appuyez sur le bouton Install pour installer la bibliothèque de clavier.
Bibliothèque de clavier ESP8266 NodeMCU
  • Copiez le code et ouvrez-le avec l'IDE Arduino.
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour compiler et téléverser le code vers l'ESP8266.
Téléversement de code Arduino IDE
  • Entrez 12345# sur le clavier.
  • Ensuite, tapez 5642B#.
  • Vérifiez le moniteur série et observez l'état du moteur servo.
COM6
Send
The incorrect password! try again The correct password! Rotating Servo Motor to 90° Rotating Servo Motor to 0°
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Explication du code

Les mots de passe valides sont prédéfinis dans le code de l'ESP8266. Une chaîne de caractères, appelée input_password, est utilisée pour stocker le mot de passe saisi par les utilisateurs. Le clavier possède deux touches (* et #) qui sont utilisées à des fins spéciales : effacer le mot de passe et terminer le mot de passe. Lorsqu'une touche du clavier est pressée :

  • S'il ne s'agit pas de l'une des deux touches spéciales, il sera ajouté à l'input_password.
  • Si la touche pressée est *, alors l'input_password sera effacé, permettant à l'utilisateur de commencer ou de recommencer la saisie du mot de passe.
  • Si la touche pressée est # :
    • L'ESP8266 vérifie si le mot de passe est valide en comparant l'input_password avec les mots de passe prédéfinis. S'il correspond à l'un d'eux, l'ESP8266 fait tourner le servomoteur à 90°.
    • Que le mot de passe soit correct ou non, l'input_password sera effacé pour la prochaine saisie.
    • Après un délai, l'ESP8266 fait tourner le servomoteur à 0°.

Vidéo

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!