POST e GET, enviar dados para webserver com arduino e sim900

Boa tarde pessoal, estou tendo problemas em enviar valores para um webserver.
O webserver já está funcionando e tenho dois codes para arduino, um para GET e outro para POST, que aparentemente funcionam. Eu disse aparentemente porque as respostas que eu tenho na serial são todas ok, inclusive recebo até o retorno da página quando estou usando o code GET. Mas os dados não aparecem no servidor. Em nenhum dos dois casos. O servidor está funcionando pois quando se digita determinada url no navegador e aperta enter, ele grava no webserver os dados digitados.
Então mais uma vez venho até vocês pedir o favor, se alguém tiver conhecimento no sim900 ou similar para me ajudar a fazer isso funcionar eu ficaria muito grato. Segue abaixo os codes e mais algumas informações:

Endereço do webserver: tcc-gsm.epizy.com/poste/poste.php

Code para GET==>https://pastebin.com/952A4e9m
Este code usei somente comandos AT, nenhuma bibioteca específica para isso. Abaixo um print com o code rodando e a tela do monitor, com as saidas mostrando que está ok

Code para POST==>https://pastebin.com/w5uAq64s
Faço uso da biblioteca "inet.GSM" que parece ser muito simples. Abaixo um print to code rodando com a depuração via serial mostrando que esta tudo ok

Exibições: 1557

Responder esta

Respostas a este tópico

Com o intuito de dar um UP na sua duvida, uma vez que infelizmente não tenho conhecimento nessa área, gostaria de te parabenizar pela iniciativa de arregaçar as mangas e fazer, sem o uso e dependência absoluta de coisas prontas. Apesar de que alguns termos em ingles mostram que parte veio de algum exemplo.

Diria que tenho medo do delay(); do seu codigo. 

Os comando AT em geral são finalizados com um "OK". Não sei se todos, não sei se esses. Não vejo um "OK" no final de todos os seus comandos do segundo print, como no primeiro print. E se um delay curto estiver abortando o comando anterior ?

A saída otima seria criar uma função que aguarda a resposta.

Seria algo como um loop que retorna ok ou erro, sendo ok caso venha uma lista de textos ("OK", ">", "SEND OK", etc) e erro para outra lista de erros ("ERROR") ou demora (timeout).

Assim se a operadora demorar um pouco menos ou um pouco mais vc passa para o px passo mais rápido.

Outra coisa que não sei se está ok no seu codigo é o trecho: "/poste/sinais.php". Dependendo do sistema operacional do seu servidor a barra é pra direita ou para a esquerda. Se for a outra barra vc ainda precisa fazer o tal "\\" para evitar substituições de caracteres.

Olá, obrigado pela resposta e pelos parabéns. Realmente peguei muita referência na internet mas mesmo assim está muito trabalhoso pois esses mesmo código funciona para outras pessoas.

"A saída otima seria criar uma função que aguarda a resposta."... a função toSerial() faz exatamente isso. O programa fica preso a rotina até terminar de receber a resposta, somente depois vem o delay. O segundo programa usa uma biblioteca para fazer o envio, bem simples e muita gente obteve sucesso com ela.

"Outra coisa que não sei se está ok no seu codigo é o trecho: "/poste/sinais.php"."... realmente essa parece ser a forma correta de se escrever, se eu inverter as aspas recebo código 600 o que significa que a url não foi alcançada. também se eu digitar esse endereço no navegador o anco recebe as informações, por isso creio estar correto.

Muito obrigado pela troca de ideia. tenha um bom fds.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço