Table des matières:

NearBot polyvalent : 11 étapes (avec photos)
NearBot polyvalent : 11 étapes (avec photos)

Vidéo: NearBot polyvalent : 11 étapes (avec photos)

Vidéo: NearBot polyvalent : 11 étapes (avec photos)
Vidéo: NearBot Demo | Door Lock Use Case 2024, Novembre
Anonim
Image
Image

Cette instructable vous montrera comment construire un déclencheur de robot polyvalent qui peut déplacer quelque chose comme un bouton, un interrupteur ou une numérotation sur divers appareils lorsque vous (avec votre téléphone ou une balise dans votre poche) êtes à proximité. Cela signifie qu'il pourrait automatiquement déverrouiller et reverrouiller un loquet de porte lorsque * vous seul * passez, fermez une vanne d'arrosage pour que vous puissiez traverser l'eau indemne comme une sorte de Moïse de banlieue, baissez le volume des haut-parleurs pendant que vous êtes dans le garage dans la salle de concert, déclenchez un iPod jouant une mélodie d'entrée dramatique ou racontez une blague (tweet de Jaden Smith ?)

Ce projet ne nécessite pas de soudure ou d'outils spéciaux

Si vous appréciez suffisamment ces instructables, veuillez envisager de voter pour cette instructable au concours Robotics 2017 !

Étape 1: Acquérir les pièces matérielles

Tu auras besoin de:

  • NodeMCU v2 ou V3
  • Micro servomoteur 9G environ 1,40 $ USD livraison gratuite sur eBay ou Aliexpress
  • Fils de connexion Arduino femelle à mâle.
  • Un boîtier pour le NearBot - J'ai utilisé une boîte en plastique que j'ai trouvée.
  • Câble de données micro USB (pièces de téléphone de rebut)
  • Source d'alimentation USB (chargeur de téléphone usagé)

Si vous n'avez pas de smartphone avec une fonction de point d'accès mobile, vous aurez également besoin de:

  • Module ESP-01 environ 2,50 USD livraison gratuite sur DealExtreme, GearBest, Ebay ou Aliexpress.
  • 1 paire de piles AAA
  • porte-piles AAA double avec interrupteur

Étape 2: Démarrage rapide

Cette étape contient un guide de démarrage rapide au cas où vous aimeriez ce genre de chose. Le reste de cette instructable va étape par étape et ajoute des informations plus détaillées

//Liste de courses: //Microcontrôleur NodeMCU V3 (Lolin) ESP8266

//Servomoteur SG90 9G

//Banque d'alimentation USB ou adaptateur mural USB.

//Câble de données/charge micro USB

//Câbles de cavalier de type Arduino mâle à femelle

//AVANT DE COMMENCER:

//1. Si vous n'avez pas encore téléchargé l'IDE Arduino, obtenez-le gratuitement (don facultatif) à l'adresse:

//2. ouvrez l'IDE Arduino (si vous ne lisez pas déjà ceci dans l'IDE Arduino !)…

//3. Allez dans les fichiers et cliquez sur la préférence dans l'IDE Arduino…

///4. copiez le code ci-dessous dans le gestionnaire de cartes supplémentaires: //https://arduino.esp8266.com/stable/package_esp8266com_index.json

//5. cliquez sur OK pour fermer l'onglet des préférences…

///6. Accédez à outils et tableau, puis sélectionnez gestionnaire de tableau…

//7. Accédez à esp8266 par la communauté esp8266 et installez le logiciel pour Arduino…

//8. Vous devrez peut-être télécharger et installer le pilote CH340 si vous ne parvenez pas à faire parler le NodeMCU avec votre IDE Arduino:

// Une fois tous les processus ci-dessus terminés, nous sommes en mesure de programmer notre microcontrôleur NodeMCU esp8266 avec l'IDE Arduino.

//9.sélectionnez NodeMCU V1.0 ESP12E dans le menu de la carte /

/dix. Sélectionnez le port COM que vous utilisez.

//11. sélectionnez le code (téléchargement sur www.makersa.ga) et cliquez sur télécharger. /

/12. Branchez le servo dans le NodeMCU à l'aide de cavaliers. D0 au signal, terre à terre, +VCC à VO ou 3V. /

/13. Réglez le palonnier à l'aide d'un tournevis.

//14. Réglez les degrés de mouvement maximum et minimum à l'aide du code.

//15. Re-télécharger sur le NodeMCU chaque fois que le code est mis à jour.

//Vous trouverez peut-être important de déterminer quelle version de NodeMCU vous avez. Voici un guide de comparaison:

frightanic.com/iot/comparison-of-esp8266-no… // Schéma de brochage NodeMCU v1: https://frightanic.com/iot/comparison-of-esp8266-no… // Schéma de brochage NodeMCU v2: https://frightanic.com/iot/comparison-of-esp8266-no… // Schéma de brochage NodeMCU v3:

//Explication des rigs:

//Fabriqué à partir du microcontrôleur NodeMCU ESP8266, de la batterie ou de l'alimentation USB et du servomoteur SG90

//Vous pouvez utiliser un 2ème module esp8266 non modifié comme point d'accès de balise au lieu d'utiliser un smartphone, aucune programmation nécessaire.

Étape 3: Acquérir les pièces du logiciel

Vous devrez d'abord télécharger l'IDE Arduino gratuit

L'éditeur Web Arduino ne fonctionne pas avec le NodeMCU au moment où j'écris ceci, vous devrez donc installer l'IDE sur votre ordinateur à la place.

Vous devrez également récupérer les fichiers NearBot sur www. MakerSa.ga - Le lien de téléchargement de fichier pour ce projet est répertorié sur ce site.

Étape 4: Installer les pilotes et les profils de carte

Quelques informations utiles
Quelques informations utiles

À l'intérieur du zip NearBot que vous avez téléchargé et décompressé se trouvent les pilotes du module NodeMCU. Installez-les sur votre ordinateur.

Si ceux-ci ne fonctionnent pas pour vous, vous pourrez peut-être trouver des pilotes CH340G sur wemos.cc/downloads

Votre NodeMCU n'utilise peut-être pas la puce CH340G, vous devrez donc peut-être commenter le pilote que vous recherchez, et je vous répondrai avec le lien de téléchargement de ce pilote.

  1. Ensuite, ouvrez l'IDE Arduino et accédez à File PreferencesAdditional Boards Manager dans l'IDE Arduino.
  2. Collez-y le code suivant:
  3. Cliquez sur OK pour fermer l'onglet des préférences.
  4. Accédez à outils et tableau, puis sélectionnez gestionnaire de tableau.
  5. Accédez à "esp8266 by esp8266 community" et installez le logiciel pour Arduino.

Une fois tous les processus ci-dessus terminés, nous sommes prêts à programmer notre microcontrôleur esp8266 NodeMCU avec l'IDE Arduino !

Étape 5: Quelques informations utiles

Quelques informations utiles
Quelques informations utiles
Quelques informations utiles
Quelques informations utiles

Vous trouverez peut-être utile de déterminer quelle version de NodeMCU vous possédez. Voici un guide de comparaison:

frightanic.com/iot/comparison-of-esp8266-nodemcu-development-boards/

Chaque version a des dispositions de broches différentes. J'ai acheté la version v3 (Lolin) car elle a des broches de sortie 5V pour alimenter le servomoteur. J'ai finalement plutôt utilisé les broches d'alimentation 3 volts pour des raisons de sécurité (les broches d'E/S NodeMCU ne tolèrent pas 5 V), mais vous voudrez peut-être utiliser les broches 5 V car techniquement, ces types de servomoteurs sont spécifiés pour une puissance de 4,5 à 5 volts.

Étape 6: Chargez le code sur le NodeMCU

Charger le code sur le NodeMCU
Charger le code sur le NodeMCU
Charger le code sur le NodeMCU
Charger le code sur le NodeMCU
  1. Branchez le NodeMCU sur votre ordinateur à l'aide de n'importe quel câble micro USB.
  2. Ouvrez l'IDE Arduino et sous "Cartes", sélectionnez "ESP12E" et le port COM pour le NodeMCU.
  3. Dans l'IDE, accédez à FileOpen et parcourez le dossier zip précédemment téléchargé à partir de makersa.ga pour ouvrir le sketch Arduino appelé "ProximityActuator013017DonovanMagryta.ino"
  4. Ensuite, éditez la ligne de code contenant celle-ci pour ajouter le nom et le mot de passe de votre balise WiFi. Plus à ce sujet ci-dessous! Par exemple:

const char* ssid = "monwifi"; // Mettez le nom de votre point d'accès entre les guillemets

const char* password = "mywifipassword"; // Mettez votre mot de passe hotspot entre les guillemets

Cliquez ensuite sur « télécharger » pour flasher le code sur la carte NodeMCU.

Le NearBot utilise une balise WiFi de poche pour vous identifier et estimer la distance. Tout comme les clés de proximité, certaines voitures plus récentes déverrouillent la porte de la voiture lorsque vous vous approchez.

Vous pouvez utiliser le point d'accès mobile de votre smartphone comme balise, ou bien utiliser un module WiFi ESP-01 bon marché alimenté par une paire de piles AAA ou une petite batterie au lithium 3.7v. Pas besoin de programmer l'ESP-01, il passe par défaut en mode hotspot lorsqu'il est allumé. Le schéma de circuit pour cela est montré sur cette étape.

Étape 7: connectez le servo au NodeMCU

Vous aurez besoin de cavaliers pour brancher le servo dans le NodeMCU V3.

Le schéma du circuit est simple.

Broche D0 au signal en plomb (fil de couleur la plus claire sur le servo. généralement jaune ou blanc.)

Broche 3V ou broche VO au fil d'entrée 5V (deuxième fil de couleur la plus claire sur le servo, généralement rouge ou orange.)

Broche GND au fil de terre (fil de couleur le plus foncé sur le servo, généralement marron ou noir.)

Étape 8: affinez le NearBot

Le code convertit la force du signal en estimation de distance. Il fonctionne de manière fiable pour des distances de réaction inférieures à 2 mètres ou 6,5 pieds. Comme il s'agit d'une conversion directe, elle n'est pas aussi fluide pour des distances supérieures à 3 mètres qu'elle pourrait l'être avec une meilleure méthode de calcul. Plus à ce sujet plus tard.

Vous voudrez peut-être ajuster la position du palonnier du servo (le petit bras blanc qui bouge). Cela se fait en dévissant simplement le bras du servo avec un tournevis et en le repositionnant.

La partie suivante consiste à ajuster les degrés de mouvement maximum et minimum à l'aide du code.

Cela peut être fait en changeant les nombres contenus dans les lignes qui ressemblent à ceci:

monservo.write(10); // déplace le bras du servo à une rotation de 10 degrés

Vous pouvez également ajuster la sensibilité de la force du signal en modifiant les nombres négatifs dans les lignes qui ressemblent à ceci:

if (rssi > -30 && rssi < -5) { //Si la force du signal est supérieure à -30 et inférieure à -5. puis procédez comme suit…

Étape 9: Comment ça marche

  1. Le NearBot se connecte d'abord au point d'accès à l'avance à l'approche d'un utilisateur.
  2. Il scanne le RSSI (force du signal reçu) et le convertit en distance approximative.
  3. Tant que la distance est dans la plage spécifiée, il déplace le bras du servomoteur en position 1.
  4. Sinon, le servomoteur est déplacé en position 2.

Lorsque j'ai testé cela, ce réglage RSSI (-50) déplace le servo en position 1 alors que la distance est de 0 à 1,5 mètre avec la balise ESP-01 ou le point d'accès téléphonique dans ma poche.

Le RSSI se situe généralement dans une plage de -90 à -20, -20 étant la force de signal la plus forte.

Si vous ouvrez le moniteur série Arduino IDE alors que NearBot est branché sur l'ordinateur, il affichera la force du signal et les points de déclenchement en temps réel pour que vous ayez un retour pratique.

Voici le code complet:

//AVANT DE COMMENCER:

//1. Si vous n'avez pas encore téléchargé l'IDE Arduino, obtenez-le gratuitement (don facultatif) à l'adresse: https://www.arduino.cc/en/Main/Software //2. ouvrez l'IDE Arduino (si vous ne lisez pas déjà ceci dans l'IDE Arduino !)… //3. Allez dans les fichiers et cliquez sur la préférence dans l'IDE Arduino… //4. copiez le lien ci-dessous dans le gestionnaire de cartes supplémentaires: //https://arduino.esp8266.com/stable/package_esp8266com_index.json //5. cliquez sur OK pour fermer l'onglet des préférences… //6. Accédez à outils et tableau, puis sélectionnez gestionnaire de tableau… //7. Accédez à esp8266 par la communauté esp8266 et installez le logiciel pour Arduino… //8. Vous devrez peut-être télécharger et installer le pilote CH340 si vous ne parvenez pas à faire parler le NodeMCU avec votre IDE Arduino: https://www.arduino.cc/en/Main/Software // Une fois que tout le processus ci-dessus est terminé, nous sommes lire pour programmer notre microcontrôleur esp8266 NodeMCU avec l'IDE Arduino. Vous voudrez peut-être savoir quelle version de NodeMCU vous avez. Voici un guide de comparaison: https://www.arduino.cc/en/Main/Software //Fabriqué à partir du microcontrôleur NodeMCU ESP8266, de la batterie ou de l'alimentation USB et du servomoteur SG90 //Vous pouvez utiliser un 2ème module esp8266 non modifié comme balise point d'accès au point d'accès au lieu d'utiliser un smartphone. //Circuit NearBot: //Broche D0 vers le fil de signal Servo (fil de couleur la plus claire) /Alimentation USB vers prise USB sur le NodeMCU //Broche GND vers le fil de terre du servomoteur (fil de couleur la plus foncée) // Les lignes de note commencent par deux barres obliques et sont ignorées par les ordinateurs. Les notes sont réservées à nous les humains ! #include #include //Peut être nécessaire pour l'impression en série. #include //Servo Library #define D0 16 //Définit les broches pour faciliter l'attribution des broches. #define D1 5 // I2C Bus SCL (horloge) #define D2 4 // I2C Bus SDA (données) #define D3 0 #define D4 2 // Identique à "LED_BUILTIN", mais logique inversée #define D5 14 // SPI Bus SCK (horloge) #define D6 12 // SPI Bus MISO #define D7 13 // SPI Bus MOSI #define D8 15 // SPI Bus SS (CS) #define D9 3 // RX0 (Console série) #define D10 1 // TX0 (Console série) Servo myservo; //Créer un objet servo nommé myservo //Téléphone ou module ESP8266 supplémentaire réglé sur le mode point d'accès AP: const ch ar* ssid = " "; // Mettez votre nom de point d'accès entre les guillemets const char* password = " "; // Mettez votre mot de passe hotspot dans les guillemets void setup(){ Serial.begin(115200); // définit le débit en bauds série afin que le microcontrôleur puisse parler à l'interface d'impression série dans l'IDE Arduino - Vous devrez peut-être le changer en 9600 à la place ! monservo.attache(D0); // attache le servo sur la broche D0 aka GPIO16 à l'objet servo - Voir plus sur: https://www.esp8266.com/viewtopic.php?f=32&t=8862#… myservo.write(10); // déplace le bras du servo à une rotation de 10 degrés Serial.println("Locked"); // afficher sur le moniteur série le mot "Locked" WiFi.mode (WIFI_STA); // Définit le wifi en mode Station WiFi.begin(ssid, mot de passe); //Se connecte à la balise du point d'accès } void loop() { //La boucle s'exécute encore et encore rapidement if (WiFi.status() != WL_CONNECTED) { //Si le wifi n'est PAS connecté, procédez comme suit… Serial.println("Impossible d'obtenir une connexion wifi"); monservo.write(10); // Déplace le bras du servo à 10 degrés Serial.println("Locked"); } else { //Si le WiFi EST connecté, procédez comme suit… long rssi = WiFi. RSSI(); //Crée une variable nommée rssi et l'affecte à la fonction qui renvoie la lecture de la force du signal de la balise hotspot Serial.print(rssi); // envoie la lecture rssi au moniteur série if (rssi > -50 && rssi < -5) { // Si la force du signal est supérieure à -50 et inférieure à -5. puis procédez comme suit… myservo.write(170); //Tourner le bras du servo à 170 degrés Serial.println("Unlocked"); } else { //Si les conditions ci-dessus ne sont pas remplies, procédez comme suit… myservo.write(10); // Fait pivoter le bras du servo jusqu'à 10 degrés. Serial.println("Verrouillé"); } } }

Étape 10: Vous devez savoir…

Clause de non-responsabilité:

L'itération actuelle du code NearBot fonctionne de manière fiable pour des distances inférieures à 2 mètres ou 6,5 pieds. Au-delà, cela devient moins précis, mais fonctionne toujours.

Cela peut être corrigé, mais pour le moment je ne sais pas comment faire. J'adorerais que quelqu'un travaille avec moi pour que je puisse mettre à jour cette instructables avec une méthode plus précise de calcul de distance !

Ces liens peuvent être utiles: YouTuber CNLohr a développé un micrologiciel de détection de distance et de position pour l'ESP8266 avec un succès limité:

Espressif a développé une fonction de détection de distance Time of Flight qui fonctionnerait avec Arduino IDE pour l'ESP8266, mais ne l'a jamais publiée:

Le système de positionnement SubPos utilise les modules ESP8266 et le calcul de perte de chemin, ce que je ne sais pas comment implémenter dans Arduino IDE:

J'ai trouvé un exemple en langage Java, mais je ne sais pas comment répliquer c'est Arduino IDE:

double distance = Math.pow(10.0, (((double)(tx_pwr/10)) - rx_pwr - 10*Math.log10(4*Math. PI/(c/fréquence)))/(20*mu));

Étape 11: C'est tout

Si vous créez votre propre NearBot, postez votre "Je l'ai fait" dans les commentaires ci-dessous !

Si vous avez d'autres idées sur l'utilisation de la plate-forme polyvalente NearBot, veuillez commenter vos idées ! Cela pourrait être une grande source d'inspiration pour d'autres utilisateurs d'instructables !

Si vous aimez ce tutoriel, pensez à voter pour cette instructable dans les concours !

Conseillé: