Comment nous avons envoyé des SMS depuis la grotte



Une fois, mon collègue Peter a suggéré de participer à un projet intéressant - la création d'un «téléphone mobile pour les spéléologues», car il s'intéresse à la spéléologie. Les spéléologues ont un tel problème: la communication sans fil souterraine ne fonctionne pas dans la pratique. Une réception radio acceptable n'est possible qu'en ligne de mire, mais elle vaut quelques tours - et il n'y a pas de connexion. Et vous devez communiquer tout au long de la grotte, dont la longueur peut être de plusieurs kilomètres. Bien sûr, la communication mobile ne s'y accroche pas, ce qui signifie qu'il n'y a pas de connexion avec le monde extérieur pour les groupes travaillant de manière autonome dans la grotte pendant plusieurs semaines.

En août 2018, Peter devait participer à une expédition dans une grotte assez complexe et dangereuse. Pour cette expédition, nous avons décidé de développer un nouveau dispositif qui résoudrait le problème de la connexion des groupes de travail autonomes avec le monde extérieur.

Description de l'idée


Les spéléologues ont des "téléphones de grotte" fonctionnant à travers un câble de terrain (généralement p-274), étiré sur toute la longueur de la grotte, quelque chose comme ceci:


(C) Pavel Rudko, TP17 Nedra, production Krasnoyarsk.

L'idée était de connecter un téléphone souterrain à un smartphone et de communiquer avec le monde extérieur via une «station de base» cellulaire en surface. Afin de pouvoir envoyer des SMS à des parents, amis et proches du sous-sol, demandez une météo à la surface, de sorte qu'en cas d'averses à l'avance de remonter à la surface.

Peter et d'autres spéléologues prévoyaient de descendre au fond du système Snezhnaya , qui est situé en Abkhazie et était autrefois le deuxième système de grottes le plus profond du monde. Ils prévoyaient de passer par l'entrée inférieure, la grotte de la Banque. Du point de vue de l'un des principaux dangers de la grotte - les inondations - couler au fond de cette façon est beaucoup plus sûr que tous les autres itinéraires connus, mais vous devez toujours surmonter une section très dangereuse - les cascades rugissantes. Il est totalement infranchissable dans l'inondation de 250 mètres le long de la rivière souterraine. Avant de parcourir cette section, nous voulions connaître la météo en surface.

Depuis un camp souterrain autonome, dans lequel il était prévu de vivre pendant deux semaines, jusqu'à la sortie la plus proche de la surface à 3,5 km du sentier, avec une différence de hauteur de 800 m. Une ligne de communication souterraine était déjà équipée sur tout le parcours avec d'autres groupes travaillant dans la grotte - elle a été prolongée par un champ câble P-274. Nous avions prévu d'utiliser cette ligne dans notre idée.

Il restait à construire une paire d'appareils: le contrôle devrait être au groupe dans la grotte, le contrôlé - à la surface dans la zone de réception fiable du signal GSM. Et il fallait trouver un moyen de communication pour eux. Le périphérique géré doit recevoir des commandes du gestionnaire et pouvoir recevoir et envoyer des SMS. Une condition importante était l'autonomie complète de l'appareil en surface pendant deux semaines, c'est-à-dire pendant toute la durée de l'expédition, car personne ne nous attendait à l'entrée de la grotte. Il n'y avait personne pour recharger, remplacer les piles ou redémarrer l'appareil.

Dans le développement a participé:

  • Koveshnikov Peter - auteur de l'idĂ©e, initiateur, dĂ©veloppement de la partie logicielle.
  • Matveev Lyubomir - assemblage, installation, câblage des cartes Ă©metteur-rĂ©cepteur.
  • Shelepin Sergey - conception d'Ă©metteur-rĂ©cepteur.

Le schéma général est le suivant. Une station de base est installée en surface, elle est alimentée par une batterie chargée par une batterie solaire, elle devrait fonctionner pendant au moins deux semaines, en tenant compte de la durée moyenne des trajets dans les grottes, et devrait être autonome pour ne pas nécessiter l'attention des gens. La personne ci-dessous peut, à l'aide d'une pince crocodile ou d'une borne à vis, se connecter n'importe où sur la ligne (un fil de terrain tendu dans les grottes) et établir une connexion entre le téléphone souterrain et la station au sol. Elle est en mode "sommeil", "se réveille" périodiquement et reçoit des signaux de service. Le mode veille est nécessaire pour économiser l'énergie de la batterie, car le soleil n'existe pas toujours pour alimenter la batterie.

Et maintenant quelques détails techniques.

Mise en œuvre de l'idée


Le complexe que nous avons utilisé lors de cette expédition était le suivant:

  1. Deux smartphones Android exécutant un programme spécialement écrit.
  2. Deux émetteurs-récepteurs de leur propre conception, connectés à la ligne souterraine et aux ports audio des téléphones.
  3. Le campagnol Ă  deux champs P-274 mesure environ 3600 m de long, jusqu'Ă  une profondeur de 800 m.
  4. Complexe de puissance de téléphone de surface.
    1. Banque d'alimentation pour alimenter un téléphone «de surface».
    2. Arduino , qui redémarre le processus de charge du téléphone à partir de la banque d'alimentation.
    3. Panneau solaire pour charger la banque d'alimentation.



Ils ont pris le circuit d'un téléphone ordinaire comme base, mais au lieu d'une personne, le smartphone lui-même reçoit et transmet des commandes. Pour communiquer entre eux, les appareils échangent des séquences de signaux sonores - tonalités DTMF (signal analogique multifréquence à deux tonalités avec 16 tonalités). Le canal est semi-duplex. Pour transférer les données elles-mêmes, 9 tonalités sur 16 sont utilisées et les 7 restantes sont des tonalités de service, par exemple, indiquent le début / la fin d'un message / séquence, un signal de redémarrage d'urgence, etc. La durée des tonalités DTMF, et donc la vitesse de transmission, varie de 1 tonalité par seconde à 15 tonalités par seconde. Hors pauses techniques, cela correspond à 0,3-5,5 octets par seconde. Les smartphones utilisant la bibliothèque dtmf-cpp convertissent le texte en tonalités et vice versa.




Les émetteurs-récepteurs sont connectés aux téléphones via une prise audio 3,5 mm à l'aide d'une mini-prise à 4 broches, comme un casque standard. Tout signal audio que le téléphone souhaite lire est envoyé à l'émetteur-récepteur, et tout ce qui se passe dans la ligne est amplifié et transmis au téléphone via le canal du microphone. En plus d'amplifier le signal d'entrée, l'émetteur-récepteur isole le téléphone de la ligne afin d'éviter les dommages dus aux surtensions accidentelles. De plus, l'émetteur-récepteur contrôle la séparation du support de transmission. Lorsque le téléphone essaie de lire quelque chose, l'émetteur-récepteur connecte le canal audio gauche du téléphone à la ligne, le reste du temps, le canal du microphone est connecté à la ligne à laquelle la masse est connectée. Lorsqu'il est nécessaire de transmettre, le logiciel envoie un signal de surdébit au canal droit afin que l'émetteur-récepteur passe en mode de transmission.

Vous pouvez écouter comment nos émetteurs-récepteurs communiquent ici: cloud.mail.ru/public/JAjQ/wuF4XMm4W

Un programme auto-écrit est lancé sur les téléphones, écoutant le canal de communication en prévision de certains signaux ou de l'entrée de l'utilisateur via l'interface. Algorithme de transfert de données:

  1. L'utilisateur du téléphone de commande sélectionne la commande souhaitée dans le menu.
  2. Le programme génère une requête sous la forme d'un flux d'octets.
  3. Un flux est divisé en séquences ne dépassant pas 16 octets, une somme de contrôle est ajoutée à chacun d'eux, puis les séquences d'octets sont codées dans une séquence de tonalités DTMF. Deux séquences de service sont ajoutées à l'ensemble des séquences de tonalités, indiquant le début et la fin du groupe de séquences.
  4. Chaque séquence est encodée en PCM 16bit 8000 / s mono et jouée par le téléphone.
  5. Chaque séquence est lue par un téléphone contrôlé, décodée, vérifiée pour les erreurs et, selon le résultat, un signal de réception réussie ou non est envoyé.
  6. Après avoir reçu un signal de confirmation, le téléphone géré transmet la séquence suivante ou répète la séquence actuelle.
  7. Lorsque toutes les séquences sont reçues avec succès, le téléphone géré collecte un flux d'octets à partir des séquences, le décode en une commande et l'exécute.

Le transfert de données d'un téléphone géré vers un gestionnaire est effectué selon le même algorithme.

La vidéo est disponible ici: https://drive.google.com/file/d/1Y4O5R1Hce0S_djni-B1k5_B9Lw7uRlyp/view?usp=sharing


Exemple: un homme dans une grotte sur son smartphone dans le programme sélectionne la commande "Envoyer SMS", saisit le numéro de téléphone auquel vous souhaitez envoyer un message, et son texte. Toutes ces données sont encodées au moyen de signaux DTMF, transmis en mode tonalité par fil à la surface, où un autre téléphone les décode et envoie un SMS au numéro spécifié via sa carte SIM. Avec le feedback, le même schéma est à peu près le même: le téléphone se réveille périodiquement, quitte le mode avion, reçoit les SMS accumulés de l'opérateur et les stocke dans sa salle d'attente jusqu'à ce que la commande de service «donnez-moi des SMS» vienne des grottes. Tout ce qui est accumulé, le smartphone transmet sur toute la ligne.

Alimentation


L'ensemble du complexe pendant l'expédition doit manger quelque chose. Il n'y a aucun problème à alimenter le téléphone souterrain - le téléphone et l'émetteur-récepteur ont une batterie intégrée, pendant l'utilisation, la consommation n'est pas trop importante, le reste du temps, ils sont éteints. Avec la puissance d'un téléphone contrôlé «en surface», la situation est beaucoup plus compliquée: il doit rester en condition de travail pendant au moins deux semaines.

Si le smartphone écoute continuellement la ligne, et même connecté au réseau GSM, cela durera plusieurs heures, et le panneau solaire ne résoudra pas ce problème, car il donne moins d'énergie que le smartphone consomme, et la banque d'alimentation ne prolongera le temps de travail que pour une journée deux. J'ai dû faire un mode veille dans lequel la ligne n'est pas tapée, et aussi activer le mode avion. Après 5 minutes d'inactivité, le programme s'endort et se réveille toutes les 10 minutes pendant 15 secondes, en attendant un signal de réveil spécial. Le mode avion est désactivé 6 fois par jour pendant 10 minutes pour recevoir des SMS. Le problème est que la gestion du mode avion nécessite pour l'application des droits élevés qui ne peuvent être obtenus sans enraciner le téléphone. Toutes les autres fonctionnalités de l'application, non liées à l'économie d'énergie, ne nécessitent pas de droits élevés et fonctionnent sur n'importe quel téléphone avec Android 4.1 et supérieur.

Essais et plans sur le terrain


Dans cette expédition, Peter et une équipe de spéléologues ont testé les appareils pour la première fois sur le terrain. Bien sûr, il y avait des problèmes. La demande a été rédigée très rapidement, à genoux, car l'expédition manquait de temps.

Il y a eu deux gros problèmes logiciels, le problème de l'alimentation électrique de l'appareil "surface" et l'étanchéité du complexe "surface", le problème du connecteur. Les gars étaient prêts pour la plupart des problèmes et ont utilisé des options de sauvegarde pré-préparées, avec quelque chose à improviser en déplacement. D'une manière ou d'une autre, le système fonctionnait, nous avons pu effectuer des tests à part entière. Le deuxième groupe, restant au fond de la grotte, pour enquêter sur la première ascension après le départ de la partie principale de l'expédition, a rendu compte des résultats et a également appris la météo et les prévisions actuelles. Presque tous les problèmes et lacunes détectés ont été facilement résolus et nous les avons corrigés pour la prochaine expédition à Snezhnaya, qui a eu lieu en décembre 2018 - janvier 2019.

Au cours des tests, nous avons découvert le taux de transfert de données stable maximum. Elle ne diffère pas de la vitesse stable maximale obtenue dans des conditions de laboratoire lors de la connexion directe des appareils entre eux. Le signal transmis par la ligne de communication étirée à travers la grotte n'a été déformé en aucune manière, aucun bruit étranger de volume comparable n'a été remarqué. Ce n'est que légèrement avec la profondeur de descente que le volume du signal a chuté. En raison de problèmes logiciels, il a également été possible de vérifier le fonctionnement dans des conditions de signal intermittent déformé et «bégaiement», dans lesquelles, à première vue, une transmission réussie ne peut pas être obtenue. Néanmoins, il a été possible de sélectionner un mode de fonctionnement dans lequel, même dans de telles conditions, la communication entre les deux appareils est prise en charge - ce qui suggère la stabilité potentiellement très élevée du protocole de transmission que nous avons créé.

Il était initialement prévu d'utiliser une banque d'alimentation pour alimenter le téléphone haut de gamme. Il s'est avéré que la banque d'alimentation que nous avions avait chargé le téléphone à 100% et s'éteignit. Pour réinitialiser la charge, vous avez dû retirer le fil de la banque d'alimentation et le réinsérer, sinon il ne comprenait pas que le téléphone était assis et il était temps de dégager de l'énergie. Il restait quelques jours avant l'expédition. Je n'ai rien trouvé de mieux que de tromper Arduino.


Vidéo: cloud.mail.ru/public/76ay/F5xinJZQi

Selon le calendrier Arduino, toutes les trois heures, à l'aide d'un relais, il a cassé le canal + 5v du câble USB de la banque d'alimentation de la banque d'alimentation et l'a rallumé après 15 minutes. Au début, la carte était alimentée par 4 piles AA, puis ils ont adapté le compartiment à piles avec quatre boîtes 18650. Cela s'est avéré être le maillon le plus faible, car ce sont les batteries qui alimentaient l'Arduino qui ont été les premières à se vider. Mais parfois, elle travaillait. Le premier groupe de l'expédition, qui est remonté à la surface, a changé les piles et le système a fonctionné pendant une autre semaine.

Nous continuons nos expériences: il existe une version fonctionnelle du téléphone donneur, à laquelle un gros bloc avec 18650 est soudé à travers une ouverture dans le boîtier.Le téléphone est en mode veille et les batteries n'ont été déchargées qu'après 26,5 jours!





Par conséquent, à l'avenir, nous risquons d'abandonner le panneau solaire, qui est également un maillon faible: il peut être saupoudré de poussière ou de neige, éclaboussé de saleté. Pendant les trois semaines de l'expédition avec une tension de fonctionnement de 4,6 V des batteries de l'émetteur-récepteur, le "supérieur" a été déchargé à 3,8 V et le "inférieur" à 4,1 V.

La version actuelle de notre émetteur-récepteur ne sait pas comment fonctionner comme un téléphone ordinaire. Nous voulons finaliser le schéma afin que vous puissiez utiliser l'émetteur-récepteur sans smartphone dans le mode habituel de «téléphone de grotte»: appuyez - dites, relâchez, écoutez.

Désormais, le logiciel ne prend en charge que la réception et la transmission de SMS, ainsi que plusieurs commandes de service. Le protocole de transfert de données n'impose aucune restriction, à l'exception de la bande passante, il est donc relativement facile de programmer pour télécharger des prévisions météorologiques depuis Internet ou, par exemple, envoyer des messages à des messagers instantanés. Malheureusement, la vitesse de transfert n'est pas suffisante pour accéder pleinement à Internet et transférer des photos. La vitesse stable maximale est maintenant d'environ 6 octets par seconde. Sur un canal stable, il faut environ 1 minute pour envoyer ou recevoir un SMS en 160 caractères cyrilliques.

Pour la prochaine expédition, nous prévoyons de finaliser le logiciel en y ajoutant les fonctions manquantes et en corrigeant les erreurs, ainsi qu'en retravaillant le système d'alimentation du complexe «surface». Déjà mis en œuvre la fonction de sonnerie de la ligne - une fois par minute, un signal de service est donné pour vérifier la ligne pour les ruptures. Nous avons également ajouté des fonctions de service telles que le réglage manuel de la vitesse, le redémarrage forcé et d'autres petites choses. Peut-être que nous mettrons alors le téléphone en ligne et connaîtrons les prévisions météorologiques. J'aimerais connecter ma propre station météo à un téléphone de surface, collecté, éventuellement, basé sur Arduino et envoyer des données à jour à partir de capteurs sur la ligne.

Source: https://habr.com/ru/post/fr438272/


All Articles