Como enviamos SMS da caverna



Certa vez, meu colega Peter sugeriu participar de um projeto interessante - a criação de um "telefone de caverna para espeleólogos", pois ele está interessado em espeleologia. Os espeleólogos têm um problema: a comunicação sem fio subterrânea não funciona na prática. A recepção de rádio aceitável é possível apenas na linha de visão, mas vale algumas voltas - e não há conexão. E você precisa se comunicar em toda a caverna, cuja extensão pode ser de vários quilômetros. Obviamente, a comunicação móvel não fica lá, o que significa que não há conexões com o mundo exterior para grupos que trabalham autonomamente na caverna por várias semanas.

Em agosto de 2018, Peter participaria de uma expedição a uma caverna bastante complexa e perigosa. Para esta expedição, decidimos desenvolver um novo dispositivo que resolveria o problema de conectar grupos de trabalho autônomos ao mundo exterior.

Descrição da ideia


Os espeleologistas têm "telefones da caverna" trabalhando através de um cabo de campo (geralmente este é o p-274), estendido por toda a extensão da caverna, algo como:


(C) Pavel Rudko, TP17 Nedra, produção Krasnoyarsk.

A idéia era conectar um telefone subterrâneo a um smartphone e se comunicar com o mundo exterior através de uma "estação base" celular na superfície. Para poder enviar SMS a parentes, amigos e parentes de baixo do solo, solicite uma previsão do tempo na superfície, de modo que, no caso de chuveiros com antecedência, suba à superfície.

Peter e outros espiões planejavam descer até o fundo do sistema Snezhnaya , localizado na Abkhazia e que já foi o segundo sistema de cavernas mais profundo do mundo. Eles planejavam atravessar a entrada mais baixa, a caverna do Banco. Do ponto de vista de um dos principais perigos da caverna - inundações - vazar para o fundo dessa maneira, é muito mais seguro do que todas as outras rotas conhecidas, mas você ainda precisa superar uma seção muito perigosa - as cascatas que ruge. É completamente intransitável na inundação de 250 metros ao longo do rio subterrâneo. Antes de passar por esta seção, queríamos saber o tempo na superfície.

Do acampamento subterrâneo autônomo, no qual foi planejado viver por duas semanas, até a saída mais próxima à superfície, a 3,5 km do caminho, com uma diferença de altura de 800 m. Uma linha de comunicação subterrânea já estava equipada em toda a rota com outros grupos que trabalhavam na caverna - foi estendida por um campo cabo P-274. Planejamos usar essa linha em nossa ideia.

Faltava construir um par de dispositivos: o controle deveria estar no grupo da caverna, o controlado - na superfície, na zona de recepção confiável do sinal GSM. E era necessário criar um meio de comunicação para eles. O dispositivo gerenciado deve receber comandos do gerente e poder receber e enviar SMS. Uma condição importante foi a completa autonomia do dispositivo na superfície por duas semanas, ou seja, todo o período da expedição, já que ninguém nos esperava na entrada da caverna. Não havia ninguém para recarregar, substituir as baterias ou reiniciar o dispositivo.

No desenvolvimento participaram:

  • Koveshnikov Peter - autor da ideia, iniciador, desenvolvimento da parte do software.
  • Matveev Lyubomir - montagem, instalação, fiação de placas transceptoras.
  • Shelepin Sergey - projeto de transceptor.

O esquema geral é o seguinte. Uma estação base é instalada na superfície, é alimentada por uma bateria carregada por uma bateria solar, deve funcionar por pelo menos duas semanas, levando em consideração a duração média das viagens pelas cavernas e deve ser autônoma para que não exija a atenção das pessoas. A pessoa abaixo pode, com a ajuda de um clipe de crocodilo ou um terminal de rosca, unir-se a qualquer lugar da linha (fio de campo esticado nas cavernas) e estabelecer a conexão do telefone subterrâneo com a estação terrestre. Ela está no modo "dormir", periodicamente "acorda" e recebe sinais de serviço. O modo de suspensão é necessário para economizar energia da bateria, porque o sol nem sempre existe para alimentar a bateria.

E agora alguns detalhes técnicos.

Implementação da ideia


O complexo usado por nós nesta expedição foi o seguinte:

  1. Dois smartphones Android executando um programa especialmente escrito.
  2. Dois transceptores de design próprio, conectados à linha subterrânea e às portas de áudio dos telefones.
  3. A ratazana P-274 de campo duplo com cerca de 3600 m de comprimento, se estendeu a uma profundidade de 800 m.
  4. Complexo de energia do telefone de superfície.
    1. Banco de potência para alimentar um telefone "de superfície".
    2. Arduino , que reinicia o processo de carregar o telefone no banco de potência.
    3. Painel solar para carregar banco de potência.



Eles tomaram o circuito de um telefone comum como base; somente em vez de uma pessoa, o próprio smartphone recebe e transmite comandos. Para se comunicar, os dispositivos trocam sequências de sinais sonoros - tons DTMF (sinal analógico de múltiplas frequências de dois tons com 16 tons). O canal é half-duplex. Para transferir os dados em si, são utilizados 9 tons de 16 e os 7 restantes são tons de serviço, por exemplo, indicam o início / fim de uma mensagem / sequência, um sinal de reinicialização de emergência, etc. A duração dos tons DTMF e, portanto, a velocidade de transmissão varia de 1 tom por segundo a 15 tons por segundo. Excluindo pausas técnicas, isso corresponde a 0,3-5,5 bytes por segundo. Os smartphones que usam a biblioteca dtmf-cpp convertem texto em tons e vice-versa.




Os transceptores são conectados aos telefones por meio de uma tomada de áudio de 3,5 mm, usando uma minitomada de 4 pinos, como um fone de ouvido comum. Qualquer sinal de áudio que o telefone queira reproduzir vai para o transceptor e tudo o que acontece na linha é amplificado e transmitido ao telefone pelo canal do microfone. Além de amplificar o sinal de entrada, o transceptor isola o telefone da linha para evitar danos devido a sobretensões acidentais. Além disso, o transceptor controla a separação do meio de transmissão. Quando o telefone tenta reproduzir alguma coisa, o transceptor conecta o canal de áudio esquerdo do telefone à linha, pelo resto do tempo em que o canal do microfone está conectado à linha à qual o terra está conectado. Quando é necessário transmitir, o software envia um sinal de sobrecarga para o canal direito, para que o transceptor mude para o modo de transmissão.

Você pode ouvir como nossos transceptores se comunicam aqui: cloud.mail.ru/public/JAjQ/wuF4XMm4W

Um programa auto-escrito é iniciado nos telefones, ouvindo o canal de comunicação em antecipação a certos sinais ou entrada do usuário através da interface. Algoritmo de transferência de dados:

  1. O usuário no telefone de controle seleciona o comando desejado no menu.
  2. O programa gera uma solicitação na forma de um fluxo de bytes.
  3. Um fluxo é dividido em sequências de no máximo 16 bytes, uma soma de verificação é adicionada a cada um deles e, em seguida, as sequências de bytes são codificadas em uma sequência de tons DTMF. Duas sequências de serviço são adicionadas ao conjunto de sequências de tons, indicando o início e o fim do grupo de sequências.
  4. Cada sequência é codificada em PCM 16bit 8000 / s mono e reproduzida pelo telefone.
  5. Cada sequência é lida por um telefone controlado, decodificado, verificado quanto a erros e, dependendo do resultado, um sinal de recepção bem-sucedida ou malsucedida é enviado.
  6. Após receber um sinal de confirmação, o telefone gerenciado transmite a seguinte sequência ou repete a atual.
  7. Quando todas as seqüências são recebidas com êxito, o telefone gerenciado coleta um fluxo de bytes das seqüências, decodifica-o em um comando e executa-o.

A transferência de dados de um telefone gerenciado para um gerente é realizada de acordo com o mesmo algoritmo.

O vídeo está disponível aqui: https://drive.google.com/file/d/1Y4O5R1Hce0S_djni-B1k5_B9Lw7uRlyp/view?usp=sharing


Exemplo: um homem em uma caverna em seu smartphone no programa seleciona o comando "Enviar SMS", insere o número de telefone para o qual deseja enviar uma mensagem e seu texto. Todos esses dados são codificados por meio de sinais DTMF, transmitidos no modo de tom por fio para a superfície, onde outro telefone os decodifica e envia um SMS para o número especificado por meio do cartão SIM. Com o feedback, o mesmo padrão é aproximadamente o mesmo: o telefone acorda periodicamente, sai do modo avião, recebe o SMS acumulado do operador e os armazena em sua sala de espera até que o comando de serviço "me dê SMS" venha das cavernas. Tudo o que é acumulado, o smartphone transmite pela linha.

Fonte de alimentação


Todo o complexo durante a expedição deve comer alguma coisa. Não há problemas em ligar o telefone subterrâneo - tanto o telefone quanto o transceptor têm uma bateria embutida; durante o uso, o consumo não é muito grande; o restante do tempo é desligado. Com o poder de um telefone controlado “de superfície”, a situação é muito mais complicada: ele precisa permanecer em condições de trabalho por pelo menos duas semanas.

Se o smartphone ouvir continuamente a linha e até conectar-se à rede GSM, ele durará várias horas e o painel solar não resolverá esse problema, pois fornece menos energia do que o smartphone consome, e o banco de potência apenas prolongará o tempo de trabalho por um dia dois Tive que fazer um modo de espera no qual a linha não fosse tocada e também ativar o modo avião. Após 5 minutos de inatividade, o programa adormece e acorda a cada 10 minutos por 15 segundos, aguardando um sinal de ativação especial. O modo avião é desativado 6 vezes por dia durante 10 minutos para receber SMS. O problema é que o gerenciamento do modo avião exige, para o aplicativo, direitos elevados que não podem ser obtidos sem o enraizamento do telefone. Todas as outras funcionalidades do aplicativo, não relacionadas à economia de energia, não exigem direitos elevados e funcionam em qualquer telefone com Android 4.1 e superior.

Testes e planos de campo


Nesta expedição, Peter e uma equipe de espeleólogos testaram os dispositivos pela primeira vez em campo. Claro, houve alguns problemas. O pedido foi escrito muito rapidamente, no joelho, porque a expedição estava ficando sem tempo.

Havia dois grandes problemas de software, o problema com a fonte de alimentação do aparato "superfície" e a vedação do complexo "superfície", o problema com o conector. Os caras estavam prontos para a maioria dos problemas e usavam opções de backup pré-preparadas, com algo para improvisar em movimento. De uma forma ou de outra, o sistema funcionou, fomos capazes de realizar testes completos. O segundo grupo, permanecendo no fundo da caverna, para investigar a primeira subida após a partida da parte principal da expedição, relatou os resultados e também aprendeu o clima e a previsão atual. Quase todos os problemas e deficiências detectados foram facilmente corrigidos e os corrigimos para a próxima expedição a Snezhnaya, que ocorreu de dezembro de 2018 a janeiro de 2019.

Durante os testes, descobrimos a taxa máxima estável de transferência de dados. Não difere da velocidade estável máxima obtida em condições de laboratório ao conectar os dispositivos diretamente entre si. O sinal transmitido através da linha de comunicação esticada através da caverna não foi distorcido de forma alguma, nenhum ruído estranho de volume comparável foi observado. Apenas um pouco com a profundidade da descida o volume do sinal caiu. Devido a problemas de software, também foi possível verificar a operação sob condições de um sinal intermitente distorcido, “gaguejante”, no qual, à primeira vista, não é possível obter uma transmissão bem-sucedida. No entanto, foi possível selecionar um modo operacional no qual, mesmo sob tais condições, a comunicação entre os dois dispositivos é suportada - isso sugere a estabilidade potencialmente muito alta do protocolo de transmissão que criamos.

Foi originalmente planejado o uso de um banco de potência para alimentar o telefone superior. Aconteceu que o banco de potência que havíamos cobrado 100% do telefone e desligado. Para inicializar o carregamento novamente, era necessário remover o fio do banco de potência e inseri-lo novamente, caso contrário, ele não entendeu que o telefone havia parado e que estava na hora de liberar energia novamente. Faltaram alguns dias para a expedição. Não criei nada melhor do que enganar o Arduino.


Vídeo: cloud.mail.ru/public/76ay/F5xinJZQi

De acordo com o cronograma do Arduino, a cada três horas, usando um relé, ele interrompeu o canal + 5v do cabo USB do banco de potência do banco de potência e ligou novamente após 15 minutos. No início, a placa era alimentada por 4 pilhas AA e, em seguida, eles adaptaram o compartimento das pilhas com quatro latas 18650. Esse acabou sendo o elo mais fraco, porque foram as baterias que alimentaram o Arduino que foram as primeiras a drenar. Mas algumas vezes ela trabalhava. O primeiro grupo da expedição, que subiu à superfície, trocou as baterias e o sistema funcionou por mais uma semana.

Continuamos nossos experimentos: existe uma versão funcional do telefone doador, na qual um grande bloco com 18650 é soldado através de uma abertura no compartimento.O telefone está no modo de espera e as baterias estão esgotadas após 26,5 dias!





Portanto, no futuro, provavelmente abandonaremos o painel solar, que também é um elo fraco: ele pode ser polvilhado com poeira ou neve, respingado de sujeira. Durante as três semanas da expedição com tensão de operação de 4,6 V das baterias do transceptor, o "superior" foi descarregado para 3,8 V e o "inferior" para 4,1 V.

A versão atual do nosso transceptor não sabe como funcionar como um telefone comum. Queremos finalizar o esquema para que você possa usar o transceptor sem um smartphone no modo "telefone de caverna" usual: pressione - diga, solte, ouça.

Agora, o software suporta apenas recepção e transmissão de SMS, além de vários comandos de serviço. O protocolo de transferência de dados não impõe nenhuma restrição, exceto a largura de banda; portanto, é relativamente fácil programar o download de previsões meteorológicas da Internet ou, por exemplo, enviar mensagens para mensageiros instantâneos. Infelizmente, a velocidade de transferência não é suficiente para acessar totalmente a Internet e transferir fotos. A velocidade máxima estável agora é de cerca de 6 bytes por segundo. Em um canal estável, leva cerca de 1 minuto para enviar ou receber um SMS em 160 caracteres cirílicos.

Para a próxima expedição, planejamos finalizar o software adicionando as funções ausentes e corrigindo erros, além de refazer o sistema de energia do complexo "superfície". Já foi implementada a função de tocar na linha - uma vez a cada minuto é emitido um sinal de serviço para verificar se há interrupções na linha. Também adicionamos funções de serviço, como configuração manual de velocidade, reinicialização forçada e outras pequenas coisas. Talvez possamos colocar o telefone on-line e descobrir a previsão do tempo. Gostaria de conectar minha própria estação meteorológica a um telefone de superfície, coletado, possivelmente, com base no Arduino e enviar dados atualizados dos sensores na linha.

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


All Articles