Table des matières:
- Étape 1: Création de l'application sur votre téléphone
- Étape 2: Préparation du PI
- Étape 3: Création de votre projet
- Étape 4: MonProjet.js
- Étape 5: MyProject dans Arduino
- Étape 6: Câblage
- Étape 7: C'est tout
Vidéo: Raspberry PI & Arduino - Blynk Stepper Control : 7 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:09
Ce tutoriel va vous montrer comment contrôler un moteur pas à pas avec un Arduino, un Raspberry Pi et l'application Blynk.
En bref, l'application envoie des requêtes au Raspberry Pi via des broches virtuelles, le Pi envoie ensuite un signal HAUT/BAS à l'Arduino et l'Arduino s'occupe ensuite du moteur pas à pas.
Je pense qu'il est plus facile d'utiliser cette approche car la plupart des gens sont habitués à travailler avec Arduino et pas beaucoup avec node.js sur le Raspberry Pi.
Composants nécessaires pour cela:
- Raspberry PI (j'utilise le modèle Raspberry Pi 3 b)
- Arduino (j'utilise un Arduino Nano)
- Servomoteur (j'utilise un 28BYJ-48 5VDC avec son contrôleur)
- Quelques fils de liaison
- Source d'alimentation (5VDC 2A.)
L'esquisse Arduino et le code Node.js sont disponibles en téléchargement. Il suffit de rechercher les fichiers.
Étape 1: Création de l'application sur votre téléphone
Téléchargez Blynk depuis l'AppStore ou GooglePlay
Ouvrez l'application et créez un utilisateur ou connectez-vous avec facebook.
- Créer un nouveau projet
Nommez votre projet: MyProject
Choisissez l'appareil: Rasapberry Pi 3 B
Type de connexion: Wifi (ou Ethernet si votre Pi est câblé à votre réseau)
- Cliquez sur Créer
Vérifiez votre e-mail pour votre jeton
(ressemble à ceci 3aa19bb8a9e64c90af11e3f6b0595b3c)
Ce jeton est lié à votre application actuelle. Si vous créez une autre application, vous générerez un autre jeton.
Dans l'application, ajoutez les widgets suivants (voir image)
- Ajouter 3 boutons
- Ajouter 1 écran LCD
- Modifier le bouton
nommez le premier Command1, définissez la broche comme broche virtuelle 1 et définissez le mode sur SWITCH
nommez le second CW, définissez la broche comme broche virtuelle 2 et définissez le mode sur PUSH
nommez le troisième CCW, définissez la broche comme broche virtuelle 3 et définissez le mode sur PUSH
- Modifier l'écran LCD
définissez les broches sur la broche virtuelle 4 et la broche virtuelle 5 et définissez le mode sur PUSH
Étape 2: Préparation du PI
Tout d'abord, vous devez installer Node.js. Avant de mettre à jour Node.js, assurez-vous de supprimer les anciennes versions:
Ouvrez le Terminal et tapez
sudo apt-get purger le nœud nodejs
node.js -ysudo apt-get suppression automatique
Installation automatique de Node.js Ajoutez des référentiels:
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
Installer Node.js
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install build-essential nodejs -y
Une fois Node.js installé, installez Blynk
sudo npm installer blynk-library -g
sudo npm installer onoff -g
Étape 3: Création de votre projet
Commencez par changer de répertoire (commande cd) vers le répertoire pi
Ouvrez Terminal et tapez:
cd /accueil/pi/
Ensuite, créez un répertoire où résidera votre projet
mkdir MonProjet
Changez de répertoire en MyProject, tapez ce qui suit dans le Terminal
cd MonProjet
Vérifiez le contenu du répertoire (il doit être vide). Tapez simplement ce qui suit dans le terminal
ls
Ensuite, tapez ce qui suit pour créer la description de votre projet (package.json)
initialisation npm
Tapez simplement le nom du projet, l'auteur, la version, etc…
Une fois cela fait, installez la bibliothèque Blynk, la bibliothèque onoff et la bibliothèque system-sleep dans VOTRE répertoire de projet. Tapez ce qui suit dans votre terminal
npm install blynk-library --save
npm install onoff --save
npm install system-sleep --save
Enfin, créez votre fichier.js (Ce sera là que résidera votre code). Tapez ce qui suit dans le terminal
nano MonProjet.js
Une fois que vous avez exécuté cette commande, nano (éditeur de texte de terminal) s'ouvrira.
Étape 4: MonProjet.js
En nano, écrivez les lignes de code suivantes
var Blynk = require('blynk-library');
var AUTH = ' ****************** '; C'EST VOTRE JETON
var blynk = nouveau Blynk. Blynk(AUTH);
var Gpio = require('onoff'). Gpio,
command1 = new Gpio (18, 'out'), // Sera connecté à Arduino D2
commandCW = new Gpio (23, 'out'), // Sera connecté à Arduino D3
commandCCW = new Gpio(24, 'out'); // Sera connecté à Arduino D4
var sleep = require('system-sleep');
var v1 = nouveau blynk. VirtualPin(1); // ceci est votre bouton Command1 dans l'application
var v2 = nouveau blynk. VirtualPin(2); // ceci est votre bouton CW dans l'application
var v3 = nouveau blynk. VirtualPin(3); // ceci est votre bouton CCW dans l'application
var v4 = nouveau blynk. VirtualPin(4); //c'est votre ligne LCD 1 dans l'application
var v5 = nouveau blynk. VirtualPin(5); //c'est votre ligne LCD 2 dans l'application
v1.on('write', function (param) //Recherchez le bouton Command1 dans l'application
{
if (param == 1) //Si le bouton est enfoncé (ce qui correspond à 1), procédez comme suit
{
v4.write("Exécution"); //Ecrire "Executing" sur la première ligne de l'écran LCD
v5.write("Commande"); // Écrivez "Commande" sur la deuxième ligne de l'écran LCD
command1.writeSync(1); //Définir le GPIO18 (qui est la variable command1) à 1 (HIGH)
sommeil(4000); //Attendez 4 secondes
command1.writeSync(0); //Définir le GPIO18 (qui est la variable command1) à 0 (LOW)
v4.write("Terminé"); // Écrivez "Terminé" sur la première ligne de l'écran LCD
v5.write(" "); // Écrivez " " (rien) sur la deuxième ligne de l'écran LCD
v1.write(0); // Écrivez 0 sur votre bouton Command1, cela le réinitialisera à la position OFF
}
});
v2.on('write', function (param) //Recherche le bouton CW dans l'application
{
if (param == 1) //Si le bouton est enfoncé (ce qui correspond à 1), procédez comme suit
{
commandCW.writeSync(1); //Définir le GPIO23 (qui est la variable commandCW) à 1 (HIGH)
}
else if (param == 0) //Si le bouton n'est pas enfoncé (ce qui est 0) alors procédez comme suit
{
commadCW.writeSync(0); //Définir le GPIO23 (qui est la variable commandCW) à 0 (LOW)
}
});
v3.on('write', function (param) //Recherchez le bouton CCW dans l'application
{
if (param == 1) // Si le bouton est enfoncé (ce qui correspond à 1), procédez comme suit
{
commandCCW.writeSync(1); //Définir le GPIO24 (qui est la variable commandCCW) à 1 (HIGH)
}
else if (param == 0) //Si le bouton n'est pas enfoncé (ce qui est 0) alors procédez comme suit
{
commandCCW.writeSync(0); //Définir le GPIO24 (qui est la variable commandCCW) à 1 (HIGH)
}
});
Enregistrez-le et quittez nano
- pour enregistrer CTRL+O
- pour quitter CTRL+X
Vous avez terminé avec le Raspberry Pi.
Maintenant, testez-le pour voir s'il y a des erreurs (la plupart du temps, ce sont des fautes de frappe)
Pour le tester, tapez simplement ce qui suit dans votre Terminal
nœud MonProjet.js
Vous devriez obtenir une sortie qui ressemble à ceci
Mode OnOff
Connexion à: blynk-cloud.com 8441
Autorisation SSL…
Autorisé
Étape 5: MyProject dans Arduino
Ok donc maintenant nous avons 2/3 choses terminées !
Il ne nous reste plus qu'à écrire du code pour l'Arduino.
- Créez une nouvelle esquisse Arduino et tapez le code suivant.
#comprendre
#define STEPS_PER_MOTOR_REVOLUTION 32
#define STEPS_PER_OUTPUT_REVOLUTION 32 * 64 //2048
//Les connexions des broches doivent être les broches 8, 9, 10, 11 connectées
// vers le pilote de moteur In1, In2, In3, In4
// Ensuite, les broches sont entrées ici dans la séquence 1-3-2-4 pour un séquençage correct
Stepper small_stepper(STEPS_PER_MOTOR_REVOLUTION, 8, 10, 9, 11);
int Steps2Take;
int Command1;
int CommandCW;
int CommandCCW;
void setup()
{
pinMode(2, INPUT);
pinMode(3, INPUT);
pinMode(4, ENTREE);
//(La bibliothèque pas à pas définit les broches comme sorties)
}
boucle vide()
{
Command1 = digitalRead(2);
CommandCW = digitalRead(3);
CommandCCW = digitalRead(4);
if(Commande1 == 0)
{
//ne fais rien
}
autre
{
ExecutionFunction();
}
si(CommandeCW == 1)
{
small_stepper.setSpeed(700);
small_stepper.step(-1);
retard(1);
}
if(CommandeCCW ==1)
{
small_stepper.setSpeed(700);
small_stepper.step(1);
retard(1);
}
}
void ExecutionFunction()
{
Steps2Take = STEPS_PER_OUTPUT_REVOLUTION / 4; // Rotation CCW 1/4 de tour
small_stepper.setSpeed(700);
small_stepper.step(Steps2Take); // Vous pouvez remplacer Steps2Take par n'importe quelle valeur entre 0 et 2048
retard (500);
Steps2Take = - STEPS_PER_OUTPUT_REVOLUTION / 4; // Rotation CW 1/4 de tour
small_stepper.setSpeed(700);
small_stepper.step(Steps2Take); // Vous pouvez remplacer Steps2Take par n'importe quelle valeur entre 0 et 2048
retard (2000);
}
Compilez et téléchargez sur votre Arduino.
Maintenant, assurez-vous de tout connecter correctement ! Voir l'étape suivante pour le câblage.
Étape 6: Câblage
Connectez Arduino D3 à RaspberryPi GPIO18 (qui est en fait la broche 12)
Connectez Arduino D4 à RaspberryPi GPIO23 (qui est en fait la broche 16)
Connectez Arduino D4 à RaspberryPi GPIO24 (qui est en fait la broche 18)
Connectez Arduino GND à RaspberryPi GND (broche 6)
Connectez Arduino D8 au contrôleur pas à pas In1
Connectez Arduino D9 au contrôleur pas à pas In2
Connectez Arduino D10 au contrôleur pas à pas In3
Connectez Arduino D11 au contrôleur pas à pas In4
Connectez 5VDC à Arduino, Raspberry Pi et contrôleur pas à pas
Étape 7: C'est tout
Regardez la vidéo, et vous devriez avoir terminé !
Merci et profitez-en!
Conseillé:
Projet Totoro - IoT & MQTT & ESP01 : 7 étapes (avec photos)
Projet Totoro - IoT & MQTT & ESP01 : Le projet Totoro c'est un beau projet IoT que vous pouvez copier sous de nombreuses autres formes différentes. En utilisant la carte ESP01, avec le protocole MQTT, vous pouvez communiquer l'état du bouton au courtier MQTT (dans mon cas AdafruitIO).Un guide utile pour MQTT et Ad
Balance intelligente bricolage avec réveil (avec Wi-Fi, ESP8266, Arduino IDE et Adafruit.io): 10 étapes (avec photos)
Balance intelligente bricolage avec réveil (avec Wi-Fi, ESP8266, Arduino IDE et Adafruit.io): Dans mon projet précédent, j'ai développé une balance de salle de bain intelligente avec Wi-Fi. Il peut mesurer le poids de l'utilisateur, l'afficher localement et l'envoyer vers le cloud. Vous pouvez obtenir plus de détails à ce sujet sur le lien ci-dessous : https://www.instructables.com/id/Wi-Fi-Smart-Scale-wi
Tapis avec capteurs/communication RF avec Arduino Micro : 4 étapes (avec photos)
Tapis avec capteurs/communication RF avec Arduino Micro : J'ai récemment terminé l'installation Tout aussi diversifiée, qui est composée d'une série de lampes qui réagissent aux capteurs placés dans un tapis sous les lampes. Voici comment j'ai fait le tapis avec des capteurs de pression. J'espère que vous trouverez ça utile.:)
Console portable avec contrôleurs et capteurs sans fil (Arduino MEGA & UNO): 10 étapes (avec photos)
Console portable avec contrôleurs et capteurs sans fil (Arduino MEGA & UNO): Ce que j'ai utilisé:- Arduino MEGA- 2x Arduino UNO- Adafruit 3.5" Écran tactile TFT 320x480 HXD8357D- Buzzer- Haut-parleur 4Ohm 3W- Lumières LED 5mm- Imprimante Ultimaker 2+ avec filament PLA noir- Découpeur laser avec bois MDF- Peinture en aérosol noire (pour le bois)- 3x nRF24
Minuterie Stepper Pomodoro : 3 étapes (avec photos)
Minuterie Stepper Pomodoro : La minuterie Stepper Pomodoro est une minuterie de bureau pour aider à gérer sa liste de tâches quotidiennes en divisant chaque période de travail en segments de 30 minutes. Cependant, contrairement à une minuterie Pomodoro normale, cela ne vous rend pas anxieux en affichant le temps restant. Au lieu