Créez un pager bidirectionnel classique avec Arduino – Dispositif de radiomessagerie rétro DIY
Composants et fournitures
| Composant | Quantité |
|---|---|
| Carte SIM Hologram Global IoT | 1 |
| Arduino UNO | 1 |
| Shield GSM Arduino V2 | 1 |
| Kit shield LCD Adafruit 16x2 (I2C, 2 broches seulement) | 1 |
| Boîtier de projet Hammond 4,7 x 2,6 x 1,4 bleu translucide | 1 |
Applications et services en ligne
- Routeur de données Hologram
À propos du projet
Introduction
Pour revivre la gloire des années 90/2000, j'ai voulu créer mon propre pager bidirectionnel, comme celui de Jay-Z ! Mais cette idée s'est révélée plus utile que prévu : elle peut servir de communicateur pour enfants (remplaçant un téléphone portable), de bouton SOS pour travailleurs isolés ou sportifs, ou simplement d'afficheur de messages dans la maison. Ces dernières semaines, l'appareil reste allumé dans mon salon pour échanger des messages amusants avec ma femme.
Résumé : ce projet envoie et reçoit des SMS via un Arduino avec modem cellulaire, dans un boîtier compact avec écran LCD et boutons de contrôle.
Note : le code permet aussi de faire fonctionner le système via l'interface série, donc vous pouvez l'utiliser même sans shield LCD.
Choix du matériel
J'avais un shield GSM Arduino et une carte SIM Hologram ; les combiner avec un Arduino UNO était logique. Le shield LCD Adafruit avec boutons intégrés utilise le bus I2C (broches A4/A5), libérant de nombreuses broches pour d'éventuelles extensions.
Le LCD a un rétroéclairage bleu, d'où le choix d'un boîtier bleu translucide. L'empilement des trois cartes (UNO, shield GSM, shield LCD) donne des connexions propres et sans conflit de broches :
- Shield LCD : A4 (SDA), A5 (SCL), +5V, GND (uniquement le GND près de Vin)
- Shield GSM : broches 2 et 3 (SoftwareSerial), broche 7 (reset alimentation), +5V, GND
Tout le reste reste libre pour de futures extensions. D'autres dispositifs I2C peuvent être ajoutés sur le bus.
Pendant le développement, l'alimentation USB du portable suffisait pour l'envoi/réception SMS, mais l'utilisation de données GPRS pourrait nécessiter plus de courant.
Communication cellulaire
Hologram fournit un service de données cellulaires compatible avec tout appareil acceptant une carte SIM. Après activation, j'ai pu attribuer un numéro de téléphone dans l'indicatif de mon choix. Le service est peu coûteux (0,40 $/mois, suspendable à tout moment). Réception SMS gratuite, envoi à 0,19 $/SMS. À l'avenir, on pourrait réduire les coûts en utilisant une connexion de données vers le cloud Hologram pour router les messages vers un service SMS gratuit.
Pour une raison inconnue, le shield GSM ne lançait pas correctement les fonctions GSMScanner et GSMModem.getIMEI() prévues pour le diagnostic initial, bien que les fonctions SMS et GPRS fonctionnent parfaitement.
Code et interface
Le code s'appuie sur les exemples Adafruit (LCD) et Arduino (GSM), plus une interface utilisateur maison. N'ayant jamais programmé d'interface sans clavier, je l'ai voulue simple : une liste de messages préenregistrés, défilables avec les touches haut/bas.
Fonctionnement :
- Mise sous tension → démarrage → indication « réseau connecté »
- Bouton gauche : écran d'accueil
- Bouton droit : acquitter un message entrant (permet le suivant) / éteindre le rétroéclairage si pas de message
- Haut/Bas : faire défiler les messages préprogrammés (4 par défaut)
- Select : envoyer le message sélectionné
Les messages entrants s'affichent automatiquement, quel que soit le menu actif, et rallument le rétroéclairage si besoin.
Prochaines étapes possibles : menu de choix du destinataire, réponse automatique au dernier expéditeur, extinction automatique de l'écran pour économiser l'énergie, notifications sonores/vibratoires, etc.
Construction finale
Les ouvertures du boîtier ont été percées (foret) et découpées (Dremel avec guide). Un gabarit aurait donné des coupes plus nettes. Les seuls fils sont ceux de l'alimentation (pile 9V + interrupteur) ; sans pile, l'alimentation se fait via USB ou secteur.
La pile 9V et son connecteur se logent à côté de l'Arduino, sous le shield GSM (de taille comparable à un Mega). J'ai soudé des fils sur des connecteurs mâles pour faciliter le branchement.
Le shield GSM possède des broches longues et flexibles ; je les ai légèrement pliées pour qu'elles évitent les connecteurs femelles de l'Arduino, laissant ces connexions libres pour mon connecteur d'alimentation. Le shield LCD a des broches courtes et rigides sans connecteurs femelles côté avant, donc plier les broches est la seule méthode pour ajouter des connexions externes dans cette configuration.
J'ai rogné les pattes de soudure du port USB et de quelques autres composants sous l'Arduino pour qu'il repose à plat sur du ruban mousse double-face. Les cartes s'empilent, laissant l'écran et les boutons juste affleurants au-dessus du boîtier – parfait !
Conclusion
Je continuerai à faire évoluer ce système et le testerai même avec mon neveu de 4 ans. Il fonctionne bien comme messager, mais j'aime encore plus l'utiliser comme petit panneau d'affichage dans la maison. L'esthétique y contribue.
Améliorations futures : second menu pour choisir le destinataire, extinction auto de l'écran, alertes lumineuses/sonores/vibrantes, affichage de notifications IFTTT (colis livré, tweets, etc.). Qu'allez-vous construire ? Comment amélioreriez-vous le système ?
Amusez bien !
- Mike
En savoir plus sur mon blog (y compris plus de détails sur ce projet).
(Projet réalisé dans le cadre du programme Hacker-In-Residence de Hologram. Contact : Sheena, coordinatrice contenu, sheena@hologram.io)
Code source
Le code complet (Arduino) est disponible dans la section « Code » du projet original. Il inclut la gestion du shield GSM, du shield LCD I2C, l'interface à boutons, la lecture/écriture SMS, et une interface série alternative.
Schéma
L'assemblage est plus simple que ne le laisse croire le schéma : la plupart des connexions se font par simple empilement des deux shields sur l'Arduino. Tout le reste est optionnel (alimentation par batterie).
Processus de fabrication
- Capteur CO2 K30 : Surveillance en temps réel de la qualité de l'air intérieur
- Faciliter la communication sourd-aveugle avec 1Sheeld et Arduino
- Construire une Tirelire Intelligente : Contrôler un Accepteur de Pièces avec Arduino Nano
- Contrôler une LED par Bluetooth avec Arduino et MIT App Inventor
- Intégrer un capteur d'empreintes capacitif DFRobot (ID809) avec Arduino ou ESP8266
- Station météo interactive Nextion HMI avec Arduino Mega et capteurs
- Bras robotique 6 DoF piloté par Nunchuk Wii – Kit Arduino Mega
- Mesure précise du rayonnement solaire avec Arduino UNO et shield Ethernet
- Système radar compact Arduino avec capteur ultrasonique HC-SR04 et écran 1,8"