Table des matières:

Unité de télécommande GSM/SMS basée sur Arduino : 16 étapes (avec images)
Unité de télécommande GSM/SMS basée sur Arduino : 16 étapes (avec images)

Vidéo: Unité de télécommande GSM/SMS basée sur Arduino : 16 étapes (avec images)

Vidéo: Unité de télécommande GSM/SMS basée sur Arduino : 16 étapes (avec images)
Vidéo: Переключение устройств на основе приложения Android SMS с использованием Arduino 2024, Novembre
Anonim
Unité de contrôle à distance GSM/SMS basée sur Arduino
Unité de contrôle à distance GSM/SMS basée sur Arduino

! ! ! AVIS !

En raison de la mise à niveau de la tour de téléphonie mobile locale dans ma région, je ne suis plus en mesure d'utiliser ce module GSM. La nouvelle tour ne prend plus en charge les appareils 2G. Par conséquent, je ne peux plus apporter aucun soutien à ce projet.

Avec une telle gamme de modules GSM disponibles pour l'amateur, la plupart d'entre nous ont fini par en acheter un. J'ai acheté un module SIM800L localement, et j'ai fini par jouer avec les différentes commandes du module.

En utilisant l'Arduino Uno et l'IDE Arduino, j'ai pu transformer mes idées en réalité. Cela n'a pas été facile, le SEUL PLUS GROS PROBLÈME étant la limitation de seulement 2 Ko de SRAM. Après de nombreuses recherches sur internet et différents forums, j'ai pu surmonter cette limitation.

Différentes techniques de programmation, une bien meilleure compréhension du compilateur Arduino et l'utilisation de la carte SIM et de l'EEPROM pour la mémoire supplémentaire ont sauvé ce projet. Après quelques modifications du code, un prototype stable a été construit et testé sur une période d'une semaine.

Un inconvénient de la SRAM limitée était que l'unité ne pouvait pas être équipée d'un écran et de touches utilisateur. Cela a entraîné une réécriture complète du code. Sans interface utilisateur, la seule option qui restait pour continuer le projet était d'utiliser des messages SMS pour configurer l'unité, ainsi que les utilisateurs.

Cela s'est avéré être un projet passionnant, et d'autres futurs ont été ajoutés au fur et à mesure que le développement se poursuivait.

Mon objectif principal était de rester avec l'Arduino Uno, ou dans ce cas, l'ATMEGA328p, et de n'utiliser aucun composant de montage en surface. Cela rendra plus facile pour le grand public de copier et de construire l'unité.

Spécification de l'unité:

  • Un maximum de 250 utilisateurs peut être programmé sur l'unité
  • Quatre sorties numériques
  • Quatre entrées numériques
  • Chaque sortie peut être configurée en sortie PULSE ou ON/OFF
  • La durée d'impulsion de sortie peut être réglée entre 0,5.. 10 secondes
  • Chaque entrée peut être configurée pour se déclencher sur des changements de OFF à ON.
  • Chaque entrée peut être configurée pour se déclencher sur les changements ON à OFF
  • Chaque délai d'entrée peut être réglé entre 0 seconde et 1 heure
  • Les messages SMS pour les changements sur les entrées peuvent être envoyés à 5 utilisateurs différents
  • Les noms et le texte d'état pour chaque entrée peuvent être définis par l'utilisateur
  • Les noms et le texte d'état pour chaque sortie peuvent être définis par l'utilisateur
  • L'unité peut être configurée pour recevoir des messages de solde de carte SIM via la messagerie USSD.
  • Tous les utilisateurs peuvent demander des mises à jour de l'état des E/S de l'unité
  • Tous les utilisateurs peuvent contrôler les sorties individuelles via des messages SMS
  • Tous les utilisateurs peuvent contrôler les sorties individuelles en appelant l'unité

Des dispositifs de sécurité

  • La configuration initiale de l'unité ne peut être effectuée qu'à partir de l'unité.
  • La configuration initiale ne peut être effectuée que par le MASTER USER
  • Les commandes de configuration initiale sont automatiquement désactivées après dix minutes.
  • Seuls les appels et SMS envoyés par des utilisateurs connus peuvent contrôler l'unité
  • Les utilisateurs ne peuvent exploiter que les sorties qui leur sont attribuées par le MASTER USER

Autres caractéristiques

  • Les appels vers cet appareil sont gratuits, car l'appel n'obtient jamais de réponse.
  • Lorsque l'unité est appelée, l'appel ne sera interrompu qu'au bout de 2 secondes. Ceci est la confirmation à l'appelant que l'unité a répondu à l'appel.
  • Si le fournisseur de services de la carte SIM prend en charge les messages USSD, les demandes de solde peuvent être effectuées par l'UTILISATEUR MAÎTRE. Le message USSD contenant le solde sera alors transmis au MASTER USER.

Étape 1: Alimentation

Source de courant
Source de courant

Pour garantir que l'unité peut être connectée à des systèmes de sécurité standard (systèmes d'alarme, portes de garage électriques, moteurs de portails électriques), l'unité sera alimentée en 12 V CC qui est normalement disponible sur de tels systèmes.

L'alimentation est appliquée sur les bornes 12V IN et 0V, et est protégée par un fusible 1A. Des bornes 12V OUT supplémentaires sont disponibles et sont également protégées par le fusible.

La diode D1 protège l'unité contre les connexions à polarité inversée sur les lignes 12V.

Les condensateurs C1 et C2 filtrent tout bruit présent sur les lignes d'alimentation 12V. L'alimentation 12V est utilisée pour alimenter les relais de l'unité.

L'alimentation 5V se compose d'un régulateur de tension LM7805L et délivre un +5V stable nécessaire au module GSM SIM800L, ainsi qu'au microprocesseur. Les condensateurs C3 et C4 filtrent tout bruit qui pourrait être présent sur la ligne d'alimentation +5V. Des condensateurs électrolytiques de taille relativement grande ont été utilisés, car le module GSM SIM800L utilise pas mal d'énergie lors de la transmission.

Aucun dissipateur de chaleur n'est requis sur le régulateur de tension.

Étape 2: Entrées numériques

Entrées numériques
Entrées numériques
Entrées numériques
Entrées numériques

Les signaux d'entrée numériques sont tous en 12V et doivent être interfacés avec le microcontrôleur 5V. Pour cela, des optocoupleurs sont utilisés pour isoler les signaux 12V du système 5V.

La résistance d'entrée 1K limite le courant d'entrée vers l'optocoupleur à environ 10mA.

En raison des limitations d'espace, aucun espace n'était disponible sur la carte de circuit imprimé pour les résistances de rappel 5V. Le microcontrôleur est configuré pour permettre aux broches d'entrée des tractions faibles.

En l'absence de signal présent sur l'entrée (LOW) de l'optocoupleur, aucun courant ne traversera la LED de l'optocoupleur. Ainsi, le transistor optocoupleur est bloqué. Le faible pull-up du microcontrôleur fera monter le collecteur à près de 5V et sera considéré comme un HAUT logique par le microcontrôleur.

Avec 12V appliqué (HIGH) à l'entrée de l'optocoupleur, environ 10mA traverseront la LED de l'optocoupleur. Ainsi, le transistor optocoupleur sera activé. Cela abaissera le collecteur à près de 0 V et sera considéré comme un niveau logique BAS par le microcontrôleur.

A noter que l'entrée vue par le micro contrôleur est inversée par rapport à l'entrée 12V.

Le code normal pour lire la broche d'entrée se présente comme suit:

booléen Input = digitalRead(inputpin);

Pour corriger le signal inversé, utilisez le code suivant:

boolean Input = !digitalRead(inputpin); // Noter la ! devant la lecture

Maintenant, l'entrée vue par le micro contrôleur correspondra à l'entrée sur l'entrée 12V.

Le circuit d'entrée final se compose de 4 entrées numériques. Chaque entrée est connectée aux bornes de la carte de circuit imprimé.

Étape 3: sorties numériques

Sorties numériques
Sorties numériques
Sorties numériques
Sorties numériques
Sorties numériques
Sorties numériques

Normalement, avec un circuit ne pilotant qu'un nombre minimum de relais, le meilleur moyen est d'utiliser un circuit de pilotage de transistor comme indiqué. C'est simple, peu coûteux et efficace.

Les résistances fournissent un pull-down à la terre et une limitation du courant de base du transistor. Le transistor est utilisé pour augmenter le courant disponible pour piloter un relais. Avec seulement 1 mA tiré de la broche du microcontrôleur, le transistor peut commuter une charge de 100 mA. Plus que suffisant pour la plupart des types de relais. La diode est une diode fly-back, protégeant le circuit des pointes de haute tension lors de la commutation de relais. L'avantage supplémentaire de l'utilisation de ce circuit est que la tension de fonctionnement du relais peut être différente de la tension du microcontrôleur. Ainsi, au lieu d'utiliser un relais 5V, on peut utiliser n'importe quelle tension continue jusqu'à 48V.

Présentation de l'ULN2803

Plus un projet nécessite de relais, plus le nombre de composants est élevé. Cela rendra la conception du PCB plus difficile et pourrait utiliser un espace précieux sur le PCB. Mais l'utilisation d'un réseau de transistors, comme l'ULN2803, aidera certainement à garder la taille du PCB petite. L'ULN2803 est idéalement adapté aux entrées 3,3 V et 5 V d'un microcontrôleur et peut piloter des relais jusqu'à 48 V CC. Cet ULN2803 dispose de 8 circuits à transistors individuels, chaque circuit étant équipé de tous les composants nécessaires pour commuter un relais.

Le circuit de sortie final se compose d'un ULN3803, pilotant 4 relais de sortie 12V CC. Chaque contact du relais est disponible sur les bornes de la carte PC.

Étape 4: Oscillateur de microcontrôleur

Oscillateur Micro Contrôleur
Oscillateur Micro Contrôleur
Oscillateur Micro Contrôleur
Oscillateur Micro Contrôleur
Oscillateur Micro Contrôleur
Oscillateur Micro Contrôleur

Circuit d'oscillateur

Le microcontrôleur a besoin d'un oscillateur pour fonctionner correctement. Pour conserver la conception Arduino Uno, le circuit utilisera l'oscillateur standard de 16 MHz. Deux options sont disponibles:

Cristal

Cette méthode utilise un cristal connecté à deux condensateurs de charge. C'est l'option la plus courante.

Résonateur

Un résonateur est essentiellement un cristal et deux condensateurs de charge dans un seul boîtier à 3 broches. Cela réduit la quantité de composants et augmente l'espace disponible sur la carte de circuit imprimé.

Pour garder le nombre de composants aussi bas que possible, j'ai choisi d'utiliser un résonateur 16MHz.

Étape 5: LED d'indication

LED d'indication
LED d'indication
LED d'indication
LED d'indication

Que serait un circuit sans LED ? Des dispositions ont été prises sur la carte PC pour des LED de 3 mm.

Des résistances 1K sont utilisées pour limiter le courant traversant la LED à moins de 5mA. Lors de l'utilisation de LED haute luminosité de 3 mm, la luminosité est excellente.

Pour une interprétation facile des LED d'état, deux couleurs sont utilisées. En combinant les deux LED avec des indications clignotantes, de nombreuses informations peuvent être obtenues à partir de seulement deux LED.

DEL rouge

La LED rouge est utilisée pour indiquer les conditions de défaut, les longs délais, toute commande incorrecte.

LED verte

La LED verte est utilisée pour indiquer des entrées et des commandes saines et/ou correctes.

Étape 6: Circuit de réinitialisation du microprocesseur

Circuit de réinitialisation du microprocesseur
Circuit de réinitialisation du microprocesseur

Pour des raisons de sécurité, certaines fonctions de l'appareil ne sont disponibles que dans les 10 premières minutes après la mise sous tension de l'appareil.

Avec un bouton de réinitialisation, l'alimentation de l'unité n'a pas besoin d'être coupée pour réinitialiser l'unité.

Comment ça fonctionne

La résistance 10K maintiendra la ligne RESET proche de 5V. Lorsque le bouton est enfoncé, la ligne RESET sera tirée à 0V, maintenant ainsi le microcontrôleur en réinitialisation. Lorsque le bouton est relâché, la ligne RESET revient à %v, en restant le microcontrôleur.

Étape 7: Module SIM800L

Module SIM800L
Module SIM800L
Module SIM800L
Module SIM800L
Module SIM800L
Module SIM800L

Le cœur de l'unité est le module GSM SIM800L. Ce module n'utilise que 3 broches d'E/S sur le microcontrôleur.

Le module s'interface avec le microcontrôleur via un port série standard.

  • Toutes les commandes à l'unité sont envoyées via le port série à l'aide de commandes AT standard.
  • Lors d'un appel entrant ou lors de la réception d'un SMS, les informations sont envoyées au microcontrôleur via le port série en utilisant le texte ASCII.

Pour économiser de l'espace, le module GSM est connecté à la carte PC via un en-tête à 7 broches. Cela facilite le retrait du module GSM. Cela permet également à l'utilisateur d'insérer/retirer facilement la carte SIM au bas du module.

Une carte SIM active est requise et la carte SIM doit pouvoir envoyer et recevoir des messages SMS.

Configuration du module GSM SIM800L

Lors de la mise sous tension de l'unité, la broche de réinitialisation du module GSM est tirée vers le bas pendant une seconde. Cela garantit que le module GSM ne démarre qu'une fois l'alimentation électrique stabilisée. Le module GSM prend quelques secondes pour redémarrer, alors attendez 5 secondes avant d'envoyer des commandes AT au module.

Pour s'assurer que le module GSM est configuré pour communiquer correctement avec le microcontrôleur, les commandes AT suivantes sont utilisées lors du démarrage:

À

utilisé pour déterminer si un module GSM est disponible

AT+CREG ?

Interroger cette commande jusqu'à ce que le module GSM soit enregistré sur le réseau de téléphonie mobile

AT+CMGF=1

Réglez le mode SMS sur ASCII

AT+CNMI=1, 2, 0, 0, 0

Si SMS disponible, envoyez les détails du SMS au port série du module GSM

AT+CMGD=1, 4

Supprimer tous les messages SMS stockés sur la carte SIM

AT+CPBS=\"SM

Définir le répertoire téléphonique du module GSM sur la carte SIM

AT+COPS=2, puis AT+CLTS=1, puis AT+COPS=0

Réglez l'heure du module GSM sur l'heure du réseau de téléphone portable

Attendre 5 secondes pour que l'heure soit réglée

AT+CUSD=1

Activer la fonction de messagerie USSD

Étape 8: le microcontrôleur

Le microcontrôleur
Le microcontrôleur
Le microcontrôleur
Le microcontrôleur
Le microcontrôleur
Le microcontrôleur

Le microcontrôleur est un AtMega328p standard, le même que celui utilisé sur l'Arduino Uno. Le code est donc comparable aux deux. Pour permettre une programmation embarquée facile, un en-tête de programmation à 6 broches est disponible sur la carte de circuit imprimé.

Les différentes sections de l'unité sont connectées au microprocesseur et comprennent les éléments suivants:

  • Quatre entrées numériques
  • Quatre sorties numériques
  • L'oscillateur
  • Deux LED d'indication
  • Circuit de réinitialisation
  • Module GSM SIM800L

Toutes les communications vers et depuis le module GSM se font à l'aide de la fonction SoftwareSerial(). Cette méthode a été utilisée pour libérer le port série principal de l'IDE Arduino pendant la phase de développement.

Avec seulement 2 Ko de SRAM et 1 Ko d'EEPROM, il n'y a pas assez de mémoire pour stocker plus de quelques utilisateurs pouvant être liés à l'unité. Pour libérer la SRAM, toutes les informations de l'utilisateur sont stockées sur la carte SIM du module GSM. Avec cette disposition, l'unité peut accueillir jusqu'à 250 utilisateurs différents.

Les données de configuration de l'unité sont stockées dans l'EEPROM, séparant ainsi les données utilisateur et les données système les unes des autres.

Il y a encore plusieurs broches d'E/S disponibles, cependant, l'option d'ajouter un écran LCD et/ou un clavier n'était pas possible en raison de la grande quantité de SRAM utilisée par les tampons de réception et de transmission de SoftWareSerial(), En raison de l'absence de tout type d'interface utilisateur sur l'unité, tous les paramètres et utilisateurs sont programmés à l'aide de messages SMS.

Étape 9: Optimisation de la mémoire SRAM

Optimisation de la mémoire SRAM
Optimisation de la mémoire SRAM

Assez tôt dans la phase de développement, l'IDE Arduino a signalé une faible mémoire SRAM lors de la compilation du code. Plusieurs méthodes ont été utilisées pour y remédier.

Limiter les données reçues sur le port série

Le module GSM signalera tous les messages au microcontrôleur via le port série. Lors de la réception de certains messages SMS, la longueur totale du message reçu peut dépasser 200 caractères. Cela peut rapidement consommer toute la SRAM disponible sur la puce AtMega et entraîner des problèmes de stabilité.

pour éviter cela, seuls les 200 premiers caractères de TOUT message reçu du module GSM seront utilisés. L'exemple ci-dessous montre comment cela se fait en comptant les caractères reçus dans la variable Counter.

// recherche de données à partir du port série du logiciel

//------------------------------------------------ RxString = ""; Compteur = 0; while(SSerial.available()){ delay(1); // court délai pour laisser le temps aux nouvelles données d'être placées dans le tampon // récupère le nouveau caractère RxChar = char(SSerial.read()); //ajoute les 200 premiers caractères à la chaîne if (Counter < 200) { RxString.concat(RxChar); Compteur = Compteur + 1; } }

Réduction du code Serial.print()

Bien que pratique pendant le développement, le moniteur série Arduino peut utiliser beaucoup de SRAM. Le code a été développé en utilisant le moins possible de code Serial.print(). Une section de code a été testée pour fonctionner, tout le code Serial.print() a été supprimé de cette partie du code.

Utilisation du code Serial.print(F((""))

De nombreuses informations normalement affichées sur le moniteur série Arduino ont plus de sens lorsque des descriptions sont ajoutées. Prenons l'exemple suivant:

Serial.println("En attente d'actions spécifiques");

La chaîne "En attente d'actions spécifiques" est fixe et ne peut pas changer.

Lors de la compilation du code, le compilateur inclura la chaîne "En attente d'actions spécifiques" dans la mémoire FLASH.

De plus, le compilateur voit que la chaîne est une constante, utilisée par l'instruction "Serial.print" ou "Serial.println". Lors du démarrage du micro, cette constante est également placée dans la mémoire SRAM.

En utilisant le préfixe "F" dans les fonctions Serial.print(), il indique au compilateur que cette chaîne n'est disponible qu'en mémoire FLASH. Pour cet exemple, la chaîne contient 28 caractères. C'est 28 octets qui peuvent être libérés en SRAM.

Serial.println(F("En attente d'actions spécifiques"));

Cette méthode s'applique également aux commandes SoftwareSerial.print(). Comme le module GSM fonctionne sur les commandes AT, le code contient de nombreuses commandes SoftwareSerial.print("xxxx"). L'utilisation du préfixe "F" a libéré près de 300 octets de SRAM.

Ne pas utiliser le port série matériel

Après le débogage du code, le port série matériel a été désactivé en supprimant TOUTES les commandes Serial.print(). Cela a libéré quelques octets supplémentaires de SRAM.

Sans aucune commande Serial.print() laissée dans le code, 128 octets supplémentaires de SRAM ont été rendus disponibles. Cela a été fait en supprimant le port série matériel du code. Cela a créé les tampons de transmission de 64 octets et de réception de 64 octets.

// Serial.begin(9600); // port série matériel désactivé

Utilisation de l'EEPROM pour les chaînes

Pour chaque entrée et sortie, trois chaînes devaient être enregistrées. Il s'agit du nom du canal, de la chaîne lorsque le canal est activé et de la chaîne lorsque le canal est désactivé.

Avec un total de 8 canaux d'E/S, ils seront

  • 8 chaînes contenant les noms des chaînes, chacune de 10 caractères
  • 8 chaînes contenant la description du canal, chacune de 10 caractères
  • 8 chaînes contenant la description Off du canal, chacune de 10 caractères

Cela annonce jusqu'à 240 octets de SRAM. Au lieu de stocker ces chaînes dans la SRAM, elles sont stockées dans l'EEPROM. Cela a libéré 240 octets supplémentaires de SRAM.

Déclaration de chaîne avec les longueurs correctes

Les variables sont normalement déclarées au début du code. Une erreur courante lors de la déclaration d'une variable chaîne est que nous ne déclarons pas la chaîne avec le nombre correct de caractères.

Chaîne GSM_Nr = "";

Chaîne GSM_Name = ""; Chaîne GSM_Msg = "";

Au démarrage, le microcontrôleur n'allouera pas de mémoire dans la SRAM pour ces variables. Cela peut plus tard provoquer une instabilité lorsque ces chaînes sont utilisées.

Pour éviter cela, déclarez les chaînes avec le nombre correct de caractères que la chaîne utilisera dans le logiciel.

Chaîne GSM_Nr = "1000000000";

Chaîne GSM_Name = "2000000000"; Chaîne GSM_Msg = "3000000000";

Remarquez comment je n'ai pas déclaré les chaînes avec les mêmes caractères. Si vous déclarez toutes ces chaînes avec, par exemple, "1234567890", le compilateur verra la même chaîne dans les trois variables et n'allouera suffisamment de mémoire dans la SRAM que pour l'une des chaînes.

Étape 10: Taille du tampon série logiciel

Taille du tampon série du logiciel
Taille du tampon série du logiciel

Dans le code suivant, vous remarquerez que jusqu'à 200 caractères peuvent être lus à partir du port série du logiciel.

// recherche de données à partir du port série du logiciel

//------------------------------------------------ RxString = ""; Compteur = 0; while(SSerial.available()){ delay(1); // court délai pour laisser le temps aux nouvelles données d'être placées dans le tampon // récupère le nouveau caractère RxChar = char(SSerial.read()); //ajoute les 200 premiers caractères à la chaîne if (Counter < 200) { RxString.concat(RxChar); Compteur = Compteur + 1; } }

Cela nécessite également une mémoire tampon d'au moins 200 octets pour le port série du logiciel. par défaut, le tampon du port série logiciel n'est que de 64 octets. Pour augmenter ce tampon, recherchez le fichier suivant:

SoftwareSerial.h

Ouvrez le fichier avec un éditeur de texte et modifiez la taille du tampon à 200.

/******************************************************************************

* Définitions ************************************************ ******************************/ #ifndef _SS_MAX_RX_BUFF #define _SS_MAX_RX_BUFF 200 // Taille du tampon RX #endif

Étape 11: fabrication de la carte de circuit imprimé

Faire la carte de circuit imprimé
Faire la carte de circuit imprimé

La carte PC a été conçue en utilisant la version gratuite de Cadsoft Eagle (je crois que le nom a changé).

  • La carte PC est une conception simple face.
  • Aucun composant de montage en surface n'est utilisé.
  • Tous les composants sont montés sur la carte PC, y compris le module SIM800L.
  • Aucun composant ou connexion externe n'est requis
  • Les cavaliers de fil sont cachés sous les composants pour un look plus propre.

J'utilise la méthode suivante pour faire des cartes PC:

  • L'image de la carte PC est imprimée sur Press-n-Peel à l'aide d'une imprimante laser.
  • Le Press-n-Peel est ensuite placé sur un morceau de carte de circuit imprimé propre et fixé avec du ruban adhésif.
  • L'image de la carte de circuit imprimé est ensuite transférée du Press-n-Peel vers la carte de circuit imprimé vierge en passant la carte à travers une plastifieuse. Pour moi, 10 passes fonctionnent le mieux.
  • Une fois la carte PC refroidie à température ambiante, le Press-n-Peel est lentement retiré de la carte.
  • La carte de circuit imprimé est ensuite gravée à l'aide de cristaux de persulfate d'ammonium dissous dans de l'eau chaude.
  • Après la gravure, le bleu Press-n-Peel et le toner noir sont retirés en nettoyant la carte de circuit imprimé gravée avec de l'acétone.
  • La planche est ensuite découpée sur mesure avec un Dremel
  • Les trous pour tous les composants traversants sont percés à l'aide d'un foret de 1 mm.
  • Les connecteurs à vis des bornes sont percés à l'aide d'un foret de 1,2 mm.

Étape 12: Assemblage de la carte PC

Assemblage du PC Board
Assemblage du PC Board
Assemblage du PC Board
Assemblage du PC Board
Assemblage du PC Board
Assemblage du PC Board
Assemblage du PC Board
Assemblage du PC Board

L'assemblage se fait en ajoutant d'abord les plus petits composants et en progressant jusqu'aux plus gros composants.

Tous les composants utilisés dans ce Instructable, à l'exception du module SIM800, provenaient de mon fournisseur local. Pense à eux d'avoir toujours du stock. S'il vous plaît jeter un oeil à leur websie sud-africain:

www.shop.rabtron.co.za/catalog/index.php

REMARQUE! Soudez d'abord les deux cavaliers situés sous le CI ATMEGA328p

L'ordre est le suivant:

  • Résistances et diode
  • Bouton de réinitialisation
  • Prises CI
  • Régulateur de tension
  • Broches d'en-tête
  • Petits condensateurs
  • LED
  • Porte-fusible
  • Borniers
  • Relais
  • Condensateurs électrolytiques

Avant d'insérer les circuits intégrés, connectez l'unité à 12 V et testez toutes les tensions pour qu'elles soient correctes.

Enfin, à l'aide d'un vernis transparent, couvrez le côté cuivre de la carte PC pour la protéger des éléments.

Lorsque la laque a séché, insérez les circuits intégrés, mais laissez le module GSM jusqu'à ce que l'AtMega ait été programmé.

Étape 13: Programmation de l'AtMega328p

Programmation de l'AtMega328p
Programmation de l'AtMega328p
Programmation de l'AtMega328p
Programmation de l'AtMega328p
Programmation de l'AtMega328p
Programmation de l'AtMega328p

# # Mise à niveau du micrologiciel vers la version 3.02 # #

SMS activé à envoyer au MASTER USER lorsque l'alimentation est rétablie sur l'appareil

J'utilise un Arduino Uno avec un bouclier de programmation pour programmer l'unité. Pour plus d'informations sur l'utilisation d'un Arduino Uno en tant que programmeur, reportez-vous à ce Instructable:

Arduino UNO en tant que programmeur AtMega328P

Le module GSM doit être retiré de la carte PC pour accéder à l'en-tête de programmation. Veillez à ne pas endommager le fil d'antenne lors du retrait du module GSM.

Connectez le câble de programmation entre le programmateur et l'unité à l'aide de l'en-tête de programmation sur la carte de circuit imprimé et téléchargez le croquis sur l'unité.

L'alimentation externe 12V n'est pas nécessaire pour programmer l'unité. La carte PC sera alimentée par l'Arduino via le câble de programmation.

Ouvrez le fichier joint dans l'IDE Arduino et programmez-le sur l'unité.

Après la programmation, retirez le câble de programmation et insérez le module GSM.

L'appareil est maintenant prêt à être utilisé.

Étape 14: Connexion de l'unité

Connexion de l'unité
Connexion de l'unité
Connexion de l'unité
Connexion de l'unité
Connexion de l'unité
Connexion de l'unité

Toutes les connexions à l'unité se font via les bornes à vis.

Alimentation de l'unité

Assurez-vous d'avoir inséré une carte SIM enregistrée dans le module GSM et que la carte SIM est capable d'envoyer et de recevoir des messages SMS.

Connectez une alimentation 12V CC à l'entrée 12V et à l'une des bornes 0V. Une fois sous tension, la LED rouge sur la carte de circuit imprimé s'allumera. En une minute environ, le module GSM devrait être connecté au réseau de téléphonie mobile. La LED rouge s'éteindra et une LED rouge sur le module GSM clignotera rapidement.

Une fois cette étape franchie, l'unité est prête à être configurée.

Connexions d'entrée

Les entrées numériques fonctionnent sur 12V. Pour activer une entrée, 12 V doivent être appliqués à l'entrée. Le retrait du 12V désactivera l'entrée.

Connexions de sortie

Chaque sortie est constituée d'un contact inverseur. Câblez chaque contact selon les besoins.

Étape 15: Configuration initiale

La configuration initiale
La configuration initiale

La configuration initiale de l'unité doit être effectuée pour s'assurer que tous les paramètres sont réglés sur les valeurs d'usine par défaut et que la carte SIM est configurée pour accepter les informations utilisateur dans le format correct.

Comme toutes les commandes sont basées sur des SMS, vous aurez besoin d'un autre téléphone pour effectuer la configuration.

Pour la configuration initiale, vous devez être à l'unité.

Définir le numéro de téléphone MASTER USER

Comme seul le MASTER USER peut configurer l'unité, cette étape doit être effectuée en premier.

  • L'unité doit être alimentée.
  • Appuyez et relâchez le bouton de réinitialisation et attendez que la LED rouge sur la carte de circuit imprimé s'éteigne.
  • La LED NET sur le module GSM clignotera rapidement.
  • L'unité est maintenant prête à accepter les commandes de configuration initiales. Cela doit être effectué dans les 10 minutes.
  • Envoyez un message SMS contenant MASTER, description au numéro de téléphone de l'unité.
  • Si elle est reçue, la LED verte sur la carte de circuit imprimé clignotera deux fois.
  • L'UTILISATEUR MAÎTRE est maintenant programmé.

Restaurer l'unité aux paramètres d'usine

Une fois que l'UTILISATEUR MAÎTRE a été programmé, les paramètres de l'unité doivent être réglés sur les paramètres d'usine par défaut.

  • Envoyez un message SMS avec uniquement CLEARALL au numéro de téléphone de l'unité.
  • En cas de réception, les LED verte et rouge sur la carte de circuit imprimé clignoteront alternativement une fois par seconde. L'unité a été restaurée avec les paramètres d'usine par défaut.
  • Tous les paramètres ont été restaurés aux valeurs d'usine par défaut.
  • Appuyez et relâchez le bouton Reset pour redémarrer l'unité.

Formatage de la carte SIM

La dernière étape consiste à effacer toutes les informations stockées sur la carte SIM et à les configurer pour une utilisation dans cet appareil.

  • Appuyez et relâchez le bouton de réinitialisation et attendez que la LED rouge sur la carte de circuit imprimé s'éteigne.
  • La LED NET sur le module GSM clignotera rapidement.
  • L'unité est maintenant prête à accepter les commandes de configuration initiales. Cela doit être effectué dans les 10 minutes.
  • Envoyez un SMS avec uniquement ERASESIM au numéro de téléphone de l'unité.
  • Si elle est reçue, la LED verte sur la carte de circuit imprimé clignotera trois fois.

L'unité est maintenant configurée et prête à l'emploi.

Étape 16: Commandes SMS

Commandes SMS
Commandes SMS

Il existe trois types de commandes différentes utilisées par l'unité. Toutes les commandes sont envoyées par SMS et sont toutes au format suivant:

COMMANDE,,,,,

  • Toutes les commandes, à l'exception des commandes NORMAL USER, sont sensibles à la casse.
  • Les paramètres ne sont pas sensibles à la casse.

Commandes de configuration initiale

MAÎTRE, nom

Le numéro de téléphone de l'expéditeur du SMS est utilisé comme numéro de téléphone MASTER USER. une description de l'unité peut être ajoutée ici.

TOUT EFFACER

Réinitialiser l'unité aux paramètres d'usine

CLEARIM

Effacer toutes les données de la carte SIM

RÉINITIALISER

Redémarrez l'unité

MASTER USER Commandes de configuration de l'unité

SORTIE, c, m, t REMARQUE ! ! ! PAS ENCORE IMPLÉMENTÉ

Définissez des canaux spécifiques pour avoir des sorties PULSED, TIMED ou LATCHING. t est la durée en minutes pour les sorties TIMED

IMPULSION, cccc

Réglez des canaux spécifiques sur les sorties PULSED. S'il n'est pas défini, les canaux seront définis comme sorties LATCHING.

PULSETIME, tRègle la durée de la sortie pulsée en secondes (0.. 10s)

ENTRÉE, cccc

Définir les canaux qui doivent se déclencher et envoyer un message SMS lorsque l'état passe de OFF à ON

ENTRÉE, cccc

Définir les canaux qui doivent se déclencher et envoyer un message SMS lorsque l'état passe de ON à OFF

INTIME, c, t

Définit le temps de retard d'entrée pour détecter les changements d'état en secondes

INTEXT, ch, nom, activé, désactivé

Définir le nom de chaque canal d'entrée, sur le texte et hors texte

OUTTEXT, ch, nom, activé, désactivé

Définir le nom de chaque canal de sortie, sur le texte et hors texte

Ajouter, emplacement, numéro, Calloutputs, SMSoutputs, entrées

Ajouter un utilisateur à la carte SIM à l'« emplacement » de la mémoire, avec des canaux de sortie et d'entrée attribués à l'utilisateur

Del, emplacement

Supprimer l'utilisateur de la mémoire de la carte SIM « emplacement »

Nom du canal

Sortira par impulsion avec le nom ChannelName

ChannelName, onText ou ChannelName, offText

Activera/désactivera la sortie avec le nom de ChannelName et onText/offText

Commandes utilisateur normales pour contrôler l'unité

????Demande la mise à jour de l'état des E/S. Le SMS d'état sera envoyé à l'expéditeur.

Nom du canal

Sortira par impulsion avec le nom ChannelName

Nom du canal, onText

Activera la sortie avec le nom de ChannelName et le texte d'état onText

ChannelName, offText Désactivera la sortie avec le nom de ChannelName et le texte d'état offText

Pour une description plus détaillée des commandes, veuillez vous référer au document PDF ci-joint.

Conseillé: