Estou construindo um sistema de monitoramento para uma bomba de irrigação e a tubulação conectada. Até agora eu completei a rede de sensores. Tudo se conecta a uma placa micro-controladora (na verdade, 4 placas Teensy 3.0 ) e a placa é programada para produzir uma seqüência de dados formatados (as leituras) em intervalos predeterminados.
O que eu quero fazer é conectar a placa via USB-serial a uma RaspberryPI (ou alguma outra SBC) e ter o computador envia as leituras que recebe da placa do sensor para um servidor remoto para registro.
As opções que eu considerei são:
1 - Syslog ... Pareceu-me no início como uma possibilidade, porque parece oferecer praticamente tudo que eu preciso. A complexidade me assusta embora.
2 - REST ... Peça ao RaspberryPI POST os dados, linha por linha, pela rede para o CouchDB no servidor.
3 - HTTP ... Mantenha uma conexão HTTP aberta com node.js e "escreva" as linhas de dados. Obviamente, ele precisará ser recebido por um segundo script node.js para armazenar no banco de dados.
Agora, para os requisitos:
~ Precisa ser leve e relativamente rápido. Haverá muitos dados (intervalos de 1s) e o RaspberryPI não é uma potência.
~ Eu gostaria muito da opção por uma string compactada. O uplink é via 3G e eu espero ir com um plano mensal "pequeno".
~ A criptografia será boa, mas não obrigatória. A paranóia é strong com os rednecks ...
~ Eu realmente preciso que isso seja como K.I.S.S. quanto possível.
Para encurtar a história, eu penso nisso como um tipo de conexão serial over-the-net, onde um computador alimenta linha após linha para outro computador.
Então, qual das opções que eu tenho aqui é preferível? Ou melhor ainda, alguém tem uma ideia melhor?
Estou sinceramente aberto a editar e até repostar a pergunta se alguém tiver um bom ponto para fazer.
EDITAR:
Todos os comentários e respostas até agora foram apreciados e considerados.
O syslog é realmente ótimo, mas eu realmente preciso evitar a complexidade e a sobrecarga. Além disso, após alguns testes, o RaspberryPI parece ficar paralisado logo após iniciar o rsyslog.
Até agora, foi decidido que o SGBD será o CouchDB.
A opção óbvia seria usar curl ou um servidor vest.jial node.js para fazer as chamadas REST para o servidor de banco de dados imediatamente assim que os dados chegassem. Isto, apesar de simples e eficaz, é por uma série de razões não preferíveis. A segurança também é uma preocupação; Eu não gosto da idéia de um PC em miniatura em um campo fazendo chamadas diretas para o SGBD.
O motivo pelo qual estou iniciando uma recompensa é que espero que alguém possa sugerir uma idéia nas seguintes linhas: "Algum tipo de conexão persistente entre o PC miniatura em miniatura e o DBMS. Os dados serão formatados por algum tipo de protocolo e encaminhados através desta conexão, a fim de ser recebido no extremo oposto. Esta conexão deve ser o mais leve possível, com a menor quantidade possível de overhead ".