Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-23 14:46
Kit de démarrage OSOYOO NodeMCU IOT
Veuillez nous suivre sur facebook, trouver notre nouvel article publié et partager votre idée et vidéo sur la façon d'utiliser nos produits de manière créative. Vous pouvez obtenir une remise en argent ou un cadeau de notre part ! Facebook:
Youtube:
Dans cette leçon, nous allons connecter un bouton de commutation au NodeMCU et envoyer l'état du commutateur à un courtier MQTT. Lorsque le bouton est enfoncé, NodeMCU publiera l'état du bouton « appuyé » sur le courtier MQTT et le client MQTT s'abonnera à ces messages. Lorsque le bouton-poussoir est relâché, « non enfoncé » sera envoyé.
Étape 1: Préparation
Matériel:
Carte NodeMCU x 1
Bouton de commutation x 1
Résistance 1K x 1
Planche à pain x 1
Fils de cavalier
Logiciel:
IDE Arduino (version 1.6.4+)
Paquet de carte ESP8266 et le pilote de port série
Client MQTT (MQTTBox ici)
Bibliothèque Arduino: PubSubClient
Étape 2: Graphique de connexion
Dans cette leçon, nous utilisons D2 (GPIO4) pour contrôler le commutateur, veuillez configurer le matériel en fonction du graphique de connexion.
Remarque: la résistance 1k est utilisée comme résistance de rappel, dans un tel circuit, lorsque le commutateur est fermé, l'entrée NodeMCU est à une valeur logique élevée, mais lorsque le commutateur est ouvert, la résistance de rappel tire la tension d'entrée jusqu'à la terre (valeur zéro logique), évitant un état indéfini à l'entrée.
Étape 3: Coder
Copiez le code ci-dessous dans l'IDE Arduino:
/* _ _ _ _ _ _ _ _ _ _ * / _ / /_)/ _ \| | | |/ _ / / _ / / _) _ \| / *| |_| |_ | |_| | |_| | |_| | |_| ((_| |_| | | | | * \_/(_/ \_/ \_ |\_/ \_(_)_)_/|_|_|_| * (_/ * Utilisez le NodeMCU envoie l'état du bouton de commutation au client MQTT via WiFi * URL du didacticiel: * CopyRight www.osoyoo.com */ #include #include
int BUTTON_PIN = D2; //le bouton est connecté à la broche GPIO D1
// Mettez-les à jour avec des valeurs adaptées à votre réseau. const char* ssid = "********";//mettre votre ssid wifi ici const char* mot de passe = "********";//mettre votre mot de passe wifi ici. const char* mqtt_server = "broker.mqttdashboard.com"; //const char* mqtt_server = "iot.eclipse.org";
WiFiClient espClient;
Client PubSubClient (espClient); long lastMsg = 0; char msg[50];
void setup_wifi() {
retard (100); // On commence par se connecter à un réseau WiFi Serial.print("Connexion à "); Serial.println(ssid); WiFi.begin(ssid, mot de passe); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } randomSeed(micros()); Serial.println(""); Serial.println("WiFi connecté"); Serial.println("Adresse IP: "); Serial.println(WiFi.localIP()); }
void callback(char* topic, byte* payload, unsigned int length)
{ } //fin du rappel
annuler la reconnexion () {
// Boucle jusqu'à ce que nous soyons reconnectés while (!client.connected()) { Serial.print("Tentative de connexion MQTT…"); // Créer une chaîne d'ID client aléatoire clientId = "ESP8266Client-"; clientId += String(random(0xffff), HEX); // Essayez de vous connecter // si votre courtier MQTT a un ID client, un nom d'utilisateur et un mot de passe // veuillez remplacer la ligne suivante par if (client.connect(clientId, userName, passWord)) if (client.connect(clientId.c_str())) { Serial.println("connecté"); //une fois connecté au courtier MQTT, s'abonner à la commande si un client.subscribe("OsoyooCommand"); } else { Serial.print("échec, rc="); Serial.print(client.state()); Serial.println(" réessayez dans 5 secondes"); // Attendre 5 secondes avant de réessayer delay(5000); } } } //fin de se reconnecter()
void setup() {
Serial.begin(115200); setup_wifi(); client.setServer(mqtt_server, 1883); client.setCallback(rappel); pinMode(BUTTON_PIN, INPUT); }
boucle vide() {
if (!client.connected()) { reconnecter(); } client.loop(); long maintenant = millis(); état entier; //envoyer un message toutes les 2 secondes if (now - lastMsg > 2000) { lastMsg = now; status=digitalRead(BUTTON_PIN); String msg="Statut du bouton: "; if(status==HIGH) { msg= msg+ "Appuyé"; message de caractère[58]; msg.toCharArray(message, 58); Serial.println(message); //publier les données du capteur sur le courtier MQTT client.publish("OsoyooData", message); } else { msg= msg+ " Ne pas appuyer"; message de caractère[58]; msg.toCharArray(message, 58); Serial.println(message); //publier les données du capteur sur le courtier MQTT client.publish("OsoyooData", message); } } }
Modifiez le code pour qu'il corresponde à vos propres paramètres WiFi et MQTT en procédant comme suit: 1) Configuration du point d'accès: trouvez la ligne de code ci-dessous, mettez votre propre ssid et mot de passe là-bas.
const char* ssid = « your_hotspot_ssid »;const char* password = « your_hotspot_password »;
2) Paramètre d'adresse du serveur MQTT: vous pouvez utiliser votre propre URL ou adresse IP de courtier MQTT pour définir la valeur mqtt_server ci-dessus. Vous pouvez également utiliser un célèbre serveur MQTT gratuit pour tester le projet tel que "broker.mqtt-dashboard.com", "iot.eclipse.org" etc.
const char* mqtt_server = « broker.mqtt-dashboard.com »;
3) Paramètres du client MQTT Si votre courtier MQTT nécessite une authentification par ID client, nom d'utilisateur et mot de passe, vous devez modifier
si (client.connect(clientId.c_str()))
À
if (client.connect(clientId, userName, passWord)) //mettre votre clientId/userName/passWord ici
Sinon, conservez-les par défaut. Après cela, choisissez le type de carte et le type de port correspondants comme ci-dessous, puis téléchargez le croquis sur le NodeMCU.
- Carte: "NodeMCU 0.9 (module ESP-12)"
- Fréquence du processeur: "80 MHz" Taille du flash: »
- 4M (3M SPIFFS)”
- Vitesse de téléchargement: "115200"
- Port: choisissez votre propre port série pour votre NodeMCU
Étape 4: Paramètres du client MQTT
Si vous ne savez pas comment configurer le client MQTT, veuillez visiter notre dernier article:
Paramètres des sujets: Sujet à publier: OsoyooCommand
Sujet pour s'abonner: OsoyooData
Résultat en cours d'exécution
Une fois le téléchargement terminé, si le nom du point d'accès wifi et le mot de passe sont corrects et que le courtier MQTT est connecté, ouvrez le moniteur série, vous verrez le résultat suivant: Continuez à appuyer sur ce bouton, le moniteur série affichera « État du bouton: Appuyé » toutes les 2 secondes; une fois ce bouton relâché, le moniteur série affichera « État du bouton: non enfoncé » toutes les 2 secondes.
Conseillé:
Panneau de commutation DIY Flight Sim: 7 étapes (avec photos)
Panneau de commutation de simulation de vol DIY : après avoir passé de nombreuses années dans la communauté des simulations de vol et m'être impliqué dans des avions de plus en plus compliqués, je me suis retrouvé à aspirer à la possibilité de garder les mains sur les commutateurs physiques au lieu d'essayer de voler avec ma main droite tout en utilisant le m
Bureau alimenté par batterie. Système solaire avec panneaux solaires à commutation automatique est/ouest et éolienne : 11 étapes (avec photos)
Bureau alimenté par batterie. Système solaire avec panneaux solaires à commutation automatique est/ouest et éolienne : Le projet : Un bureau de 200 pieds carrés doit être alimenté par batterie. Le bureau doit également contenir tous les contrôleurs, batteries et composants nécessaires à ce système. L'énergie solaire et éolienne chargera les batteries. Il y a un léger problème de seulement
Convertisseur de tension abaisseur en mode de commutation abaisseur de tension CC – CC (LM2576/LM2596) : 4 étapes
Convertisseur de tension abaisseur en mode de commutation abaisseur de tension CC - CC (LM2576/LM2596) : La fabrication d'un convertisseur abaisseur très efficace est un travail difficile et même les ingénieurs chevronnés ont besoin de plusieurs conceptions pour trouver la bonne. Un convertisseur abaisseur (convertisseur abaisseur) est un convertisseur de puissance DC-DC, qui abaisse la tension (tout en augmentant
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
Graveur alimenté par USB ! Ce projet peut brûler à travers les plastiques/bois/papier (le projet amusant doit également être du bois très fin) : 3 étapes
Graveur alimenté par USB ! Ce projet peut brûler à travers du plastique/du bois/du papier (le projet amusant doit également être du bois très fin) : NE PAS FAIRE CELA EN UTILISANT UN USB !!!! J'ai découvert qu'il peut endommager votre ordinateur à partir de tous les commentaires. mon ordinateur va bien. Utilisez un chargeur de téléphone 600ma 5v. Je l'ai utilisé et cela fonctionne bien et rien ne peut être endommagé si vous utilisez une prise de sécurité pour arrêter l'alimentation