Table des matières:
- Étape 1: Alimentation
- Étape 2: Entrées numériques
- Étape 3: sorties numériques
- Étape 4: Oscillateur de microcontrôleur
- Étape 5: LED d'indication
- Étape 6: Circuit de réinitialisation du microprocesseur
- Étape 7: Module SIM800L
- Étape 8: le microcontrôleur
- Étape 9: Optimisation de la mémoire SRAM
- Étape 10: Taille du tampon série logiciel
- Étape 11: fabrication de la carte de circuit imprimé
- Étape 12: Assemblage de la carte PC
- Étape 13: Programmation de l'AtMega328p
- Étape 14: Connexion de l'unité
- Étape 15: Configuration initiale
- Étape 16: Commandes SMS
Vidéo: Unité de télécommande GSM/SMS basée sur Arduino : 16 étapes (avec images)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
! ! ! 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
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
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
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
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
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
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
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 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
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
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é
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
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
# # 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é
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 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
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é:
Télécommande basée sur le navigateur Arduino (linux): 9 étapes (avec images)
Télécommande basée sur un navigateur Arduino (linux) : nous avons des enfants. Je les adore mais ils cachent toujours la télécommande du satellite et de la télévision lorsqu'ils mettent les chaînes pour enfants. Après que cela se soit produit au quotidien pendant plusieurs années, et après que ma femme chérie m'ait permis d'avoir un
Horloge cube multifonction basée sur la position : 5 étapes (avec images)
Horloge cube multifonction basée sur la position : Il s'agit d'une horloge basée sur Arduino dotée d'un écran OLED qui fonctionne comme une horloge avec la date, comme une minuterie de sieste et comme une veilleuse. Les différentes "fonctions" sont contrôlés par un accéléromètre et sont sélectionnés en faisant tourner l'horloge cubique
ARUPI - une unité d'enregistrement automatisée à faible coût/unité d'enregistrement autonome (ARU) pour les écologistes du paysage sonore : 8 étapes (avec photos)
ARUPI - une unité d'enregistrement automatisé à faible coût/unité d'enregistrement autonome (ARU) pour les écologistes du paysage sonore : cette instructable a été écrite par Anthony Turner. Le projet a été développé avec beaucoup d'aide du Shed de la School of Computing, University of Kent (M. Daniel Knox a été d'une grande aide !). Il vous montrera comment construire un Automated Audio Recording U
Gesture Hawk : Robot contrôlé par gestes manuels utilisant une interface basée sur le traitement d'images : 13 étapes (avec images)
Gesture Hawk : Robot contrôlé par les gestes de la main utilisant une interface basée sur le traitement d'images : Gesture Hawk a été présenté dans TechEvince 4.0 comme une simple interface homme-machine basée sur le traitement d'images. Son utilité réside dans le fait qu'aucun capteur supplémentaire ou portable, à l'exception d'un gant, n'est requis pour contrôler la voiture robotique qui fonctionne sur différents
Télécommande basée sur Arduino pour Eskate ou Hydrofoil : 5 étapes (avec photos)
Télécommande basée sur Arduino pour Eskate ou Hydrofoil : cette instructable vous montrera comment construire une télécommande physique à utiliser avec un eskate ou un hydroptère électrique, y compris tout le code et le matériel dont vous avez besoin. Il y a beaucoup de soudure, mais c'est aussi amusant à faire. Que peut faire la télécommande ? Co