Table des matières:

Contrôle à distance et photosurveillance via MQTT : 8 étapes
Contrôle à distance et photosurveillance via MQTT : 8 étapes

Vidéo: Contrôle à distance et photosurveillance via MQTT : 8 étapes

Vidéo: Contrôle à distance et photosurveillance via MQTT : 8 étapes
Vidéo: Describe your perfect vacation. #philippines #angelescity #expat #travel #filipina #phillipines 2024, Novembre
Anonim
Contrôle à distance et surveillance photo sur MQTT
Contrôle à distance et surveillance photo sur MQTT

Bonjour.

Aujourd'hui, je voudrais parler de la fabrication d'un système de contrôle et de surveillance à distance qui peut être utilisé, par exemple, pour contrôler les portes de garage, l'éclairage, le chauffage, le contrôle de la pression, la température et bien d'autres paramètres. Mais la principale caractéristique de ce système est que vous pouvez recevoir à distance des photos d'un objet distant. Avant de commencer l'histoire, une courte préface. Une fois, j'ai voulu faire un système de surveillance photo en utilisant une carte Arduino M0-SD compatible, une caméra VC0706 et un shield 3G/GPRS/GSM/GPS pour Arduino. La carte compatible Arduino M0-SD a été choisie parmi les conditions qu'elle est très facile à programmer (tout comme l'Arduino UNO), la tension de fonctionnement est de 3,3V - c'est très pratique pour travailler avec la caméra VC0706, une grande quantité de ROM et RAM, plusieurs ports l'UART, un port virtuel séparé de l'USB, mais le principal avantage est la présence d'un connecteur micro SD directement sur la carte (C'est très pratique pour stocker de grandes quantités de données, comme des images).

Le shield 3G/GPRS/GSM/GPS pour Arduino est très pratique à utiliser avec une carte Arduino M0-SD compatible. Il existe plusieurs bibliothèques sur Internet, ainsi que de nombreux exemples pour travailler avec ce bouclier. Le taux de transfert de données (3G) est bien supérieur à celui des shields GPRS classiques (particulièrement pratique pour transmettre des images). La disponibilité du module GPS est un avantage supplémentaire.

J'ai choisi un tarif low-cost auprès d'un opérateur mobile pour la transmission de données (photos) sur Internet. Mais la question s'est posée: comment transférer des données ? MMS ? FTP ? Comment recevoir une notification sur la réception de données (photo) ? En conséquence, j'ai pris la décision d'envoyer des données (photos) par e-mail et de visualiser des lettres via l'application installée sur un téléphone mobile. Cela s'est avéré très pratique !:-) Le projet terminé peut être consulté sur ce lien.

Il existe également un projet similaire pour Arduino UNO par référence.

Ensuite, j'ai décidé d'étendre les fonctionnalités de mon appareil. Par exemple, ajoutez la possibilité de contrôler les LED (même si en réalité les possibilités sont bien plus larges). E-mail pour cela n'est pas très approprié. L'option SMS est chère et inconfortable. Et puis j'ai découvert le MQTT. Je ne vais pas décrire ce qu'il est. Laissez-moi juste dire: c'est une chose vraiment cool !:-) Avec l'aide de MQTT, vous pouvez échanger non seulement des messages, mais aussi des fichiers binaires (images). Dans l'application pour téléphone, vous pouvez facilement créer votre propre interface.

J'ai cherché des exemples d'implémentation du protocole MQTT pour mon shield 3G/GPRS/GSM/GPS (SIM5320) et, malheureusement, je n'ai pas trouvé l'implémentation dont j'avais besoin. Mais cela ne m'a pas laissé tranquille. J'ai décidé de mettre en œuvre de manière indépendante les fonctionnalités nécessaires. En conséquence, j'ai réussi à créer un appareil contrôlé (indiqué par trois LED) via MQTT à partir d'une application installée sur un téléphone mobile, et qui envoie également une photo au téléphone sur commande du téléphone. (Je vais vous dire un secret que je n'ai jamais vu d'exemples d'envoi d'images via le courtier MQTT auparavant et que je l'ai fait pour la première fois. Et quand j'ai réussi à transférer la première image, j'étais immensément heureux !:-)) Et donc, je propose d'aller directement à la première étape - une liste des composants nécessaires.

Étape 1: Liste des composants

Liste des composants
Liste des composants
Liste des composants
Liste des composants
Liste des composants
Liste des composants
Liste des composants
Liste des composants

Nous avons besoin des composants suivants:

1) Compatible Arduino M0-SD.

2) Caméra TTL VC0706.

3) Bouclier 3G/GPRS/GSM/GPS pour Arduino.

4) LED rouges, vertes, jaunes, 3 résistances (100-500 Ohm), fils, connecteur coudé au pas de 2,54 mm.

5) Adaptateur secteur AC-DC (6V 1A), antenne 3G, etc.

Étape 2: Préparation de la caméra

Préparation de la caméra
Préparation de la caméra
Préparation de la caméra
Préparation de la caméra
Préparation de la caméra
Préparation de la caméra

La caméra dispose d'une sortie RS-232 pour une connexion directe à un PC. Il faut retirer le MAX232 (convertisseur RS-232) et fermer les plots de contact entre les broches correspondantes 7-10 (TX), 8-9 (RX).

Le câble à six fils fourni avec l'appareil photo doit être légèrement refait:

  • Retirez les deux fils du connecteur.
  • Réorganisez les fils rouge (+ 5V) et noir (GND) comme indiqué sur la figure.

Sur les extrémités dénudées des fils doivent être soudées des pointes de type "femelle".

Étape 3: Préparation de l'Arduino M0-SD compatible

Préparation de l'Arduino M0-SD compatible
Préparation de l'Arduino M0-SD compatible
Préparation de l'Arduino M0-SD compatible
Préparation de l'Arduino M0-SD compatible
Préparation de l'Arduino M0-SD compatible
Préparation de l'Arduino M0-SD compatible

Comme déjà mentionné, l'Arduino M0-SD compatible est matériellement et logiciellement compatible avec l'Arduino M0 d'origine, mais il dispose également d'un connecteur microSD intégré pour connecter une carte mémoire.

Pour connecter la caméra à l'Arduino M0-SD compatible sur la carte, il est nécessaire de souder le connecteur angulaire aux bornes TXD, RXD (connecteur X6) comme indiqué sur la figure. Ce port correspond au "Série".

Les fils blanc (Caméra RX) et jaune (Caméra TX) de la caméra doivent être connectés respectivement aux bornes du TXD et du RXD (connecteur X6) comme indiqué sur la figure.

Étape 4: Préparation du bouclier 3G/GPRS/GSM/GPS SIM5320

Préparation du blindage 3G/GPRS/GSM/GPS SIM5320
Préparation du blindage 3G/GPRS/GSM/GPS SIM5320
Préparation du bouclier 3G/GPRS/GSM/GPS SIM5320
Préparation du bouclier 3G/GPRS/GSM/GPS SIM5320
Préparation du bouclier 3G/GPRS/GSM/GPS SIM5320
Préparation du bouclier 3G/GPRS/GSM/GPS SIM5320

Avant d'installer une carte SIM dans la fente, vous devez désactiver la demande de code PIN. Ensuite, installez la carte SIM dans la fente sur la face inférieure de la carte comme indiqué sur la figure. Deux cavaliers doivent être installés dans la position RX-1 (D1), TX-0 (D0).

Étape 5: Assemblage du matériel

Assemblage du matériel
Assemblage du matériel
Assemblage du matériel
Assemblage du matériel
Assemblage du matériel
Assemblage du matériel

L'assemblage du matériel consiste en plusieurs opérations simples:

  • Pour contrôler les LED, vous devez d'abord souder une petite conception de LED et de résistances de limitation de courant (100-500 Ohm) comme indiqué sur la figure. Faites attention à la polarité des LED - l'anode doit être soudée aux résistances (+). Pour réduire l'exposition parasite des LED, j'ai fabriqué un écran noir en carton ordinaire.
  • Connectez les LED et la caméra à une carte Arduino M0-SD compatible comme indiqué sur le schéma. L'alimentation de la caméra (fil rouge "+ 5V" et fil noir "GND") doit être prise sur les bornes "+5V" et "GND" du slot. Vous pouvez également utiliser un connecteur d'angle pour cela.
  • Après cela, connectez le blindage 3G/GPRS/GSM/GPS à la carte Arduino M0-SD compatible. N'oubliez pas de connecter une antenne 3G.

Étape 6: Configuration du courtier MQTT

Paramétrage du courtier MQTT
Paramétrage du courtier MQTT
Paramétrage du courtier MQTT
Paramétrage du courtier MQTT
Paramétrage du courtier MQTT
Paramétrage du courtier MQTT

J'ai choisi un www.cloudmqtt.com très pratique et clair en tant que courtier MQTT. Il propose des tests gratuits. Il est également possible de recevoir et d'envoyer des messages directement sur le site.

La procédure de configuration est la suivante:

  1. Inscrivez-vous en ligne.
  2. Appuyez sur le bouton "Créer une nouvelle instance".
  3. Définissez le nom, par exemple "MqttCamera".
  4. Appuyez sur le bouton "Sélectionner la région". Par exemple, sélectionnez "US-East-1 (Northern Virginia)".
  5. Appuyez sur le bouton « Examiner ».
  6. Appuyez sur le bouton "Créer une instance". Afficher le message « Instance créée avec succès ».
  7. Cliquez sur "MqttCamera".
  8. Mémorisez les informations: Serveur, Utilisateur, Mot de passe, Port, Clé API (Nous en aurons besoin aux 7ème et 8ème étapes).
  9. Ensuite, vous pouvez accéder à la fenêtre "WEBSOCKET UI", où vous pouvez tester et déboguer, afficher et envoyer des messages (nous aurons besoin de cette fenêtre à l'étape suivante).

Étape 7: Application MQTT Dash

Application MQTT Dash
Application MQTT Dash
Application MQTT Dash
Application MQTT Dash
Application MQTT Dash
Application MQTT Dash

Pour créer un panneau de contrôle dans un téléphone mobile, j'ai choisi une application MQTT Dash très conviviale et claire.

Installez l'application MQTT Dash sur votre téléphone et effectuez les réglages suivants:

  1. Ouvrez l'application.
  2. Dans la fenêtre du tableau de bord MQTT, cliquez sur (+) pour ajouter un nouveau panneau de configuration.
  3. Dans la fenêtre qui apparaît, remplissez les champs requis, tels que: Nom (par exemple, MqttCamera), Adresse, Port, Nom d'utilisateur, Mot de passe utilisateur (Prenez les données de l'étape 6).
  4. Après avoir rempli les champs, cliquez sur l'icône de la disquette (opération "Enregistrer").
  5. Dans la fenêtre avec la liste des panneaux de contrôle, cliquez sur la ligne apparue " MqttCamera ".
  6. Dans la fenêtre du panneau de configuration qui s'ouvre, cliquez sur l'icône en forme de flèche pour charger les métriques.
  7. Puis dans la fenêtre pop-up, cliquez sur le bouton « S'INSCRIRE ET ATTENDRE LA MÉTRIQUE ».
  8. Sur un ordinateur personnel, ouvrez un compte dans un courtier MQTT (voir l'étape précédente), ouvrez la fenêtre « WEBSOCKET UI », définissez le sujet « metrics/exchange » dans la fenêtre « Envoyer un message », et enregistrez le texte du fichier metrics.txt joint dans la fenêtre " Message ", cliquez sur le bouton " Envoyer ".
  9. Attendez 10 secondes, assurez-vous que la métrique est reçue dans le téléphone et que le panneau de contrôle est mis à jour.

Ensuite, vous pouvez procéder à la programmation compatible Arduino M0-SD.

Étape 8: Programmation et travail

Programmation et travail
Programmation et travail
Programmation et travail
Programmation et travail
Programmation et travail
Programmation et travail
Programmation et travail
Programmation et travail

Avant de programmer un Arduino M0-SD compatible, il faut installer sur l'ordinateur toutes les librairies nécessaires (pubsubclient-master, TinyGSM-master), que j'ai cité ci-dessous. Ces bibliothèques ont été légèrement modifiées pour fonctionner avec une carte Arduino M0-SD compatible, une caméra VC0706 et un shield 3G/GPRS/GSM/GPS SIM5320.

Vous devez connecter votre câble et votre alimentation (6V 1A pour alimenter le blindage 3G/GPRS/GSM/GPS) à l'Arduino M0-SD compatible.

Démarrez l'IDE Arduino. Dans Arduino, l'IDE doit choisir: Outils-> Carte: Arduino M0 Pro (Port USB natif).

Ouvrez le croquis MqttCamera.ino. Remplissez les champs: Nom d'utilisateur, Mot de passe utilisateur, Clé API, Port, Serveur (Prenez les données de l'étape 6).

Ouvrez la fenêtre Moniteur série.

Téléchargez le croquis. Je ne décris pas en détail la procédure de programmation (il y a suffisamment d'instructions sur Internet).

Après un chargement réussi et un assemblage correct, les informations suivantes devraient apparaître dans la fenêtre Serial Monitor:

Caméra VC0706 + Arduino M0 + SIM5320 + MQTT

Camera init… version: ----------------- VC0703 1.00 Ctrl infr exist Capteur défini par l'utilisateur 525 ----------------- succès ! Initialisation du modem… Modem: AT+CGMM SIMCOM_SIM5320E Attente du réseau… OK Connexion à Internet OK Connexion au 3.83.68.228 échoué Connexion au 3.83.68.228 OK Ping: 0

La ligne " Ping: XX " est un message périodique de l'Arduino M0-SD compatible vers le serveur. Au lieu de ces informations, vous pouvez envoyer des mesures ADC, l'état des entrées, etc.

Dans l'application MQTT Dash, cliquez sur les icônes des ampoules (LED_YELLOW, LED_GREEN, LED_RED) - allumer/éteindre. Regardez dans la fenêtre du moniteur série - il devrait y avoir des informations sur quelque chose comme ceci:

LED_JAUNE Allumée

LED_YELLOW_Off LED_GREEN Allumée LED_GREEN éteinte LED_RED Allumée LED_RED Éteinte

Cliquez sur l'icône de la caméra - envoyez la commande " SHOOT " et attendez un moment. Les informations suivantes doivent apparaître dans la fenêtre Serial Monitor:

Commencez à tirer !

Photo prise ! créer IMAGE332-j.webp

Et après un certain temps (5-10 secondes) dans la fenêtre " VIEW IMAGE " devrait s'afficher la photo.

Pour la démonstration, j'ai dirigé la caméra VC0706 vers les LED afin que vous puissiez voir leur état après les avoir commutées de manière arbitraire. Mais en utilisation réelle, vous pouvez diriger la caméra vers une pièce, une porte, une rue, un portail, une voiture, etc. (Bien sûr, vous devez tenir compte des exigences de la loi). téléphone mobile, où les états installés et réels des LED sont affichés.

J'espère que mon enseignement a été intéressant et utile pour vous. Je serai heureux de vos commentaires et commentaires. Dans mes projets de développer mon appareil et de partager avec vous de nouvelles innovations. Merci d'avoir regardé!

Conseillé: