Este tópico contém resposta, possui 2 vozes e foi atualizado pela última vez por  Diogo Zimmermann 3 semanas .

Visualizando 2 posts - 1 até 2 (de 2 do total)
  • Autor
    Posts
  • #170424

    leonardo.mendes
    Participante

    Olá, sou novo aqui no fórum e estou procurando ajuda para o meu problema.
    Bom, meu código foi retirado do site Arduino e cia:

    Tutorial: como acessar a internet com o Arduino GSM Shield SIM900

    Porém este código a seguir, ele aguarda uma mensagem SMS chegar, para assim enviar essa mensagem para o banco de dados do servidor.
    O meu objetivo é, ao invés dele aguardar chegar a mensagem SMS, eu mesmo digitar a mensagem que eu quero no próprio código, para assim ele enviar para o servidor, algo acredito eu que seja mais simples.

    Por exemplo, nessa parte:

    numdata=inet.httpPOST(“200.135.52.40”, 80, “/add.php”, temp_string,msg, 55);

    Não seria possível trocar o “temp_string,msg, 55” por uma simples mensagem que eu quisesse?

    A seguir está o meu código, e qualquer ajuda ficaria muito grato.

    //Programa: Arduino GSM Shield SIM900 – Acesso internet
    //Autor: Arduino e Cia

    //#include “SIM900.h”
    #include <SoftwareSerial.h>
    #include “inetGSM.h”

    InetGSM inet;

    boolean started = false;
    char smsbuffer[160];
    char n[20];

    byte valor;

    void setup()
    {
    Serial.begin(9600);
    powerUpOrDown();
    Serial.println(F(“Testando GSM Shield SIM900”));
    if (gsm.begin(2400))
    {
    Serial.println(F(“\nstatus=READY”));
    started = true;
    }
    }

    void loop()
    {
    if (started) {
    //Aguarda novo SMS e envia para o servidor web
    if (gsm.readSMS(smsbuffer, 160, n, 20)) {
    String str(smsbuffer);
    envia_GSM(smsbuffer);
    delay(10000);
    }
    delay(1000);
    }
    }

    void powerUpOrDown()
    {
    //Liga o GSM Shield
    Serial.print(F(“Liga GSM…”));
    pinMode(6, OUTPUT);
    digitalWrite(6, HIGH);
    }

    void envia_GSM(String texto)
    {
    char temp_string[55];
    char msg[10];
    int numdata;
    if (inet.attachGPRS(“claro.com.br”, “claro”, “claro”))
    Serial.println(F(“status=Conectado…”));
    else Serial.println(F(“status=Nao conectado !!”));
    delay(100);
    String valor = “MSG_Texto1=” + texto;
    valor.toCharArray(temp_string, 55);

    numdata=inet.httpPOST(“200.135.52.40”, 80, “/add.php”, temp_string,msg, 55);

    if (numdata)
    {
    Serial.println(“Data sent to server succesfully!”);
    }
    else
    {
    Serial.println(“Failed to send data to the server”);
    }

    delay(5000);
    }

    0
    #170984

    Olá, Leonardo,

     

    Você não poderia modificar essa função dessa forma pelo seguinte motivo:

    A implementação dela na biblioteca é a seguinte:

    InetGSM::httpPOST(const char* server, int port, const char* path, const char* parameters, char* result, int resultlength)

     

    Ou seja, você precisa necessariamente atribuir valores “char, int, char, char, char, int”. Se você alterar aquilo que você propôs, não vai funcionar por estar faltando atributos para o método em questão.

     

    Abraços!

    Diogo – Equipe FilipeFlop

    1+
Visualizando 2 posts - 1 até 2 (de 2 do total)

Você deve fazer login para responder a este tópico.