Cómo enviamos SMS desde la cueva



Una vez que mi colega Peter sugirió participar en un proyecto interesante: la creación de un "teléfono cueva para espeleólogos", ya que está interesado en la espeleología. Los espeleólogos tienen ese problema: la comunicación inalámbrica subterránea no funciona en la práctica. La recepción de radio aceptable solo es posible en la línea de visión, pero vale la pena un par de vueltas y no hay conexión. Y necesita comunicarse a través de la cueva, cuya longitud puede ser de varios kilómetros. Por supuesto, la comunicación móvil no atrapa allí, lo que significa que no hay conexiones con el mundo exterior para grupos que trabajan de forma autónoma en la cueva durante varias semanas.

En agosto de 2018, Peter debía participar en una expedición a una cueva bastante compleja y peligrosa. Para esta expedición, decidimos desarrollar un nuevo dispositivo que resolvería el problema de conectar grupos de trabajo autónomos con el mundo exterior.

Descripción de la idea.


Los espeleólogos tienen "teléfonos de cueva" que funcionan a través de un cable de campo (generalmente esto es p-274), extendido a lo largo de toda la cueva, algo como esto:


(C) Pavel Rudko, TP17 Nedra, producción Krasnoyarsk.

La idea era conectar un teléfono subterráneo a un teléfono inteligente y comunicarse con el mundo exterior a través de una "estación base" celular en la superficie. Para poder enviar SMS a parientes, amigos y parientes desde debajo del suelo, solicite un pronóstico del tiempo en la superficie, para que en caso de duchas con anticipación salga a la superficie.

Peter y otros espeleólogos planearon descender al fondo del sistema Snezhnaya , que se encuentra en Abjasia y que una vez fue el segundo sistema de cuevas más profundo del mundo. Planearon pasar por la entrada inferior, la cueva del Banco. Desde el punto de vista de uno de los principales peligros de la cueva, las inundaciones, lanzarse al fondo de esta manera es mucho más seguro que todas las otras rutas conocidas, pero aún debe superar una sección muy peligrosa: las cascadas rugientes. Es completamente intransitable en la inundación de 250 metros a lo largo del río subterráneo. Antes de pasar por esta sección, queríamos saber el clima en la superficie.

Desde el campamento subterráneo autónomo, en el que se planeó vivir durante dos semanas, hasta la salida más cercana a la superficie, a 3.5 km del camino, con una diferencia de altura de 800 m. Una línea de comunicación subterránea ya estaba equipada en toda la ruta con otros grupos trabajando en la cueva; fue extendida por un campo cable P-274. Planeamos usar esta línea en nuestra idea.

Quedaba por construir un par de dispositivos: el control debería estar en el grupo en la cueva, el controlado, en la superficie en la zona de recepción confiable de la señal GSM. Y era necesario encontrar una forma de comunicación para ellos. El dispositivo administrado debe recibir comandos del administrador y poder recibir y enviar SMS. Una condición importante fue la autonomía completa del dispositivo en la superficie durante dos semanas, es decir, el término completo de la expedición, ya que nadie nos estaba esperando en la entrada de la cueva. No había nadie para recargar, reemplazar las baterías o reiniciar el dispositivo.

En el desarrollo participó:

  • Koveshnikov Peter - autor de la idea, iniciador, desarrollo de la parte de software.
  • Matveev Lyubomir - montaje, instalación, cableado de placas transceptoras.
  • Shelepin Sergey - diseño de transceptor.

El esquema general es el siguiente. Una estación base está instalada en la superficie, funciona con una batería cargada por una batería solar, debe funcionar durante al menos dos semanas, teniendo en cuenta la duración promedio de los viajes a las cuevas, y debe ser autónoma para que no requiera la atención de las personas. La persona a continuación puede, con la ayuda de una pinza de cocodrilo o una terminal atornillada, unirse en cualquier lugar de la línea (cable de campo estirado en las cuevas) y establecer la conexión del teléfono subterráneo con la estación terrestre. Está en modo de "suspensión", periódicamente "se despierta" y recibe señales de servicio. El modo de suspensión es necesario para ahorrar energía de la batería, ya que el sol no siempre existe para alimentar la batería.

Y ahora algunos detalles técnicos.

Implementación de la idea.


El complejo utilizado por nosotros en esta expedición fue el siguiente:

  1. Dos teléfonos inteligentes con Android que ejecutan un programa especialmente escrito.
  2. Dos transceptores de diseño propio, conectados a la línea subterránea y a los puertos de audio de los teléfonos.
  3. El campo de campo doble P-274 de unos 3600 m de largo, extendido a una profundidad de 800 m.
  4. Teléfono de superficie complejo de energía.
    1. Banco de energía para alimentar un teléfono "de superficie".
    2. Arduino , que reinicia el proceso de cargar el teléfono desde el banco de energía.
    3. Panel solar para cargar el banco de potencia.



Tomaron como base el circuito de un teléfono normal, solo que en lugar de una persona, el teléfono inteligente mismo recibe y transmite comandos. Para comunicarse entre sí, los dispositivos intercambian secuencias de señales de sonido: tonos DTMF (señal analógica multifrecuencia de doble tono con 16 tonos). El canal es half duplex. Para transferir los datos en sí, se utilizan 9 tonos de 16, y los 7 restantes son tonos de servicio, por ejemplo, indican el comienzo / final de un mensaje / secuencia, una señal de reinicio de emergencia, etc. La duración de los tonos DTMF, y por lo tanto la velocidad de transmisión, varía de 1 tono por segundo a 15 tonos por segundo. Excluyendo pausas técnicas, esto corresponde a 0.3-5.5 bytes por segundo. Los teléfonos inteligentes que usan la biblioteca dtmf-cpp convierten el texto en tonos y viceversa.




Los transceptores se conectan a los teléfonos a través de un conector de audio de 3,5 mm mediante un miniconector de 4 pines, como un auricular normal. Cualquier señal de audio que el teléfono quiera reproducir va al transceptor, y todo lo que sucede en la línea se amplifica y transmite al teléfono a través del canal del micrófono. Además de amplificar la señal de entrada, el transceptor aísla el teléfono de la línea para evitar daños debido a sobretensiones accidentales. Además, el transceptor controla la separación del medio de transmisión. Cuando el teléfono intenta reproducir algo, el transceptor conecta el canal de audio izquierdo del teléfono a la línea, el resto del tiempo el canal del micrófono está conectado a la línea, a la cual está conectada la tierra. Cuando es necesario transmitir, el software envía una señal aérea al canal derecho para que el transceptor cambie al modo de transmisión.

Puede escuchar cómo se comunican nuestros transceptores aquí: cloud.mail.ru/public/JAjQ/wuF4XMm4W

Se inicia un programa autoescrito en los teléfonos, escuchando el canal de comunicación en anticipación de ciertas señales o entrada del usuario a través de la interfaz. Algoritmo de transferencia de datos:

  1. El usuario en el teléfono de control selecciona el comando deseado en el menú.
  2. El programa genera una solicitud en forma de una secuencia de bytes.
  3. Una secuencia se divide en secuencias de no más de 16 bytes, se agrega una suma de verificación a cada una de ellas y luego las secuencias de bytes se codifican en una secuencia de tonos DTMF. Se agregan dos secuencias de servicio al conjunto de secuencias de tonos, que indican el comienzo y el final del grupo de secuencias.
  4. Cada secuencia está codificada en PCM 16bit 8000 / s mono y se reproduce por teléfono.
  5. Cada secuencia es leída por un teléfono controlado, decodificada, verificada por errores y, dependiendo del resultado, se envía una señal de recepción exitosa o no exitosa.
  6. Después de recibir una señal de confirmación, el teléfono administrado transmite la siguiente secuencia o repite la actual.
  7. Cuando todas las secuencias se reciben con éxito, el teléfono administrado recopila un flujo de bytes de las secuencias, lo decodifica en un comando y lo ejecuta.

La transferencia de datos desde un teléfono administrado a un administrador se realiza de acuerdo con el mismo algoritmo.

El video está disponible aquí: https://drive.google.com/file/d/1Y4O5R1Hce0S_djni-B1k5_B9Lw7uRlyp/view?usp=sharing


Ejemplo: un hombre en una cueva en su teléfono inteligente en el programa selecciona el comando "Enviar SMS", ingresa el número de teléfono al que desea enviar un mensaje y su texto. Todos estos datos están codificados por medio de señales DTMF, transmitidas en modo de tono por cable a la superficie, donde otro teléfono las decodifica y envía un SMS al número especificado a través de su tarjeta SIM. Con la retroalimentación, el mismo patrón es aproximadamente el mismo: el teléfono se despierta periódicamente, sale del modo avión, recibe los SMS acumulados del operador y los almacena en su sala de espera hasta que el comando de servicio "darme SMS" proviene de las cuevas. Todo lo que se acumula, el teléfono inteligente transmite por la línea.

Fuente de alimentación


Todo el complejo durante la expedición debe comer algo. No hay problemas para alimentar el teléfono subterráneo: tanto el teléfono como el transceptor tienen una batería incorporada, durante el uso, el consumo no es demasiado grande, el resto del tiempo están apagados. Con el poder de un teléfono controlado "de superficie", la situación es mucho más complicada: necesita permanecer en condiciones de trabajo durante al menos dos semanas.

Si el teléfono inteligente escucha continuamente la línea e incluso se conecta a la red GSM, durará varias horas y el panel solar no resolverá este problema, ya que proporciona menos energía de la que consume el teléfono inteligente y el banco de energía solo extenderá el tiempo de trabajo por un día dos. Tuve que hacer un modo de espera en el que no se toca la línea, y también activar el modo avión. Después de 5 minutos de inactividad, el programa se queda dormido y se despierta cada 10 minutos durante 15 segundos, esperando una señal especial de activación. El modo avión se apaga 6 veces al día durante 10 minutos para recibir SMS. El problema es que administrar el modo avión requiere para la aplicación derechos elevados que no se pueden obtener sin rootear el teléfono. Todas las demás funcionalidades de la aplicación, no relacionadas con el ahorro de energía, no requieren derechos elevados y funcionan en cualquier teléfono con Android 4.1 y superior.

Pruebas de campo y planes


En esta expedición, Peter y un equipo de espeleólogos probaron los dispositivos por primera vez en el campo. Por supuesto, hubo algunos problemas. La solicitud fue escrita muy rápidamente, en la rodilla, porque la expedición se estaba quedando sin tiempo.

Hubo dos grandes problemas de software, el problema con la fuente de alimentación del aparato de "superficie" y el sellado del complejo de "superficie", el problema con el conector. Los muchachos estaban listos para la mayoría de los problemas y usaban opciones de respaldo preparadas previamente, con algo para improvisar sobre la marcha. De una forma u otra, el sistema funcionó, pudimos realizar pruebas completas. El segundo grupo, que permaneció en el fondo de la cueva, para investigar el primer ascenso después de la partida de la parte principal de la expedición, informó sobre los resultados y también se enteró del clima actual y el pronóstico. Casi todos los problemas y defectos detectados se solucionaron fácilmente y los corregimos para la próxima expedición a Snezhnaya, que tuvo lugar en diciembre de 2018 - enero de 2019.

Durante las pruebas, descubrimos la tasa de transferencia de datos máxima estable. No difiere de la velocidad máxima estable obtenida en condiciones de laboratorio al conectar los dispositivos directamente entre sí. La señal transmitida a través de la línea de comunicación que se extendía a través de la cueva no se distorsionó de ninguna manera, no se notó ningún ruido extraño de volumen comparable. Solo ligeramente con la profundidad de descenso, el volumen de la señal cayó. Debido a problemas de software, también fue posible verificar la operación en condiciones de una señal intermitente, “tartamudeante” distorsionada, en la cual, a primera vista, no se puede lograr una transmisión exitosa. Sin embargo, fue posible seleccionar un modo operativo en el que, incluso en tales condiciones, se admite la comunicación entre los dos dispositivos, lo que sugiere la estabilidad potencialmente muy alta del protocolo de transmisión que creamos.

Originalmente se planeó usar un banco de energía para alimentar el teléfono superior. Resultó que el banco de energía que teníamos había cargado el teléfono al 100% y apagado. Para inicializar la carga nuevamente, tenía que quitar el cable del banco de energía e insertarlo nuevamente, de lo contrario no entendió que el teléfono se había sentado y era hora de emitir energía nuevamente. Faltaban un par de días antes de la expedición. No se me ocurrió nada mejor que engañar a Arduino.


Video: cloud.mail.ru/public/76ay/F5xinJZQi

Según el cronograma de Arduino, cada tres horas, usando un relé, rompió el canal + 5v del cable USB del banco de energía del banco de energía y lo volvió a encender después de 15 minutos. Al principio, la placa funcionaba con 4 baterías AA, y luego adaptaron el compartimiento de la batería con cuatro latas 18650. Esto resultó ser el eslabón más débil, porque fueron las baterías que alimentaron el Arduino las primeras en agotarse. Pero algunas veces ella trabajaba. El primer grupo de la expedición, que ascendió a la superficie, cambió las baterías y el sistema funcionó durante otra semana.

Continuamos nuestros experimentos: hay una versión funcional del teléfono donante, al que se suelda un gran bloque con 18650 a través de una abertura en la carcasa. ¡El teléfono está en modo de espera y las baterías se descargaron solo después de 26.5 días!





Por lo tanto, en el futuro es probable que abandonemos el panel solar, que también es un eslabón débil: puede espolvorearse con polvo o nieve, salpicado de tierra. Durante las tres semanas de la expedición con un voltaje de operación de 4.6 V de las baterías para el transceptor, el "superior" se descargó a 3.8 V y el "inferior" a 4.1 V.

La versión actual de nuestro transceptor no sabe cómo funcionar como un teléfono normal. Queremos finalizar el esquema para que pueda usar el transceptor sin un teléfono inteligente en el modo habitual de "teléfono de la cueva": presione - diga, suelte, escuche.

Ahora el software solo admite la recepción y transmisión de SMS, así como varios comandos de servicio. El protocolo de transferencia de datos no impone ninguna restricción, excepto el ancho de banda, por lo que es relativamente fácil programar la descarga de pronósticos meteorológicos de Internet o, por ejemplo, enviar mensajes a mensajeros instantáneos. Desafortunadamente, la velocidad de transferencia no es suficiente para acceder completamente a Internet y transferir imágenes. La velocidad máxima estable ahora es de aproximadamente 6 bytes por segundo. En un canal estable, se tarda aproximadamente 1 minuto en enviar o recibir un SMS en 160 caracteres cirílicos.

Para la próxima expedición, planeamos finalizar el software agregando las funciones que faltan y corrigiendo errores, así como reelaborar el sistema de energía del complejo "de superficie". Ya se implementó la función de hacer sonar la línea: una vez por minuto se da una señal de servicio para verificar la línea en busca de interrupciones. También agregamos funciones de servicio como la configuración de velocidad manual, reinicio forzado y otras pequeñas cosas. Quizás entonces hagamos que el teléfono se conecte y descubra el pronóstico del tiempo. Me gustaría conectar mi propia estación meteorológica a un teléfono de superficie, recopilado, posiblemente, basado en Arduino y enviar datos actualizados de sensores a lo largo de la línea.

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


All Articles