Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jamal xtz

Cron Job inserir dado no BD

Recommended Posts

<script type="text/javascript">
//var url = 'http://177.177.165.14:50';
var url = 'http://casacomarduino.dlinkddns.com:1600';


$(document).ready(function(){
    $('.botaoEnvia').click(function(){
        var valor = $(this).attr('id');
        enviaDados(valor);
    });
    
    function enviaDados(dado){      
        $.ajax({
            url: url,
            data: { 'acao': dado},
            dataType: 'jsonp',
            crossDomain: true,
            jsonp: false,
            jsonpCallback: 'dados',
            success: function(data,status,xhr) {
                // posso ler dados e retoranar na pagina para avisar se a luz ta ligada ou desligada.
                console.log(data.LUZ1);
                console.log(data.LUZ2);
                $('#resultLUZ1').text(statusReturn(data.LUZ1)); 
                $('#resultLUZ2').text(statusReturn(data.LUZ2));
            }
          });
        return false;
    }

    function statusReturn (valor) {
        if(valor == 0) {
            return "Ligada";
        }
        else if(valor == 1) {
            return "Desligada";
        }
         else { return "Desconhecido";}
    }

    var i = 0;
    function fazerRequisicao(){
        $('#status').removeClass('label-success').addClass('label-warning');
        $('#status').text("Enviando Requisição...");
        $.ajax({
            url: url,
            data: { '': ''}, // usaremos em proximas versões
            dataType: 'jsonp', // IMPORTANTE
            crossDomain: true, // IMPORTANTE
            jsonp: false,
            jsonpCallback: 'dados', // IMPORTANTE
            success: function(data,status,xhr) {
                $('#status').removeClass('label-warning').addClass('label-success')
                $('#status').text("Requisição Recebida!");
                $('#sensor1').text(data.sensor1);
                $('#sensor2').text(data.sensor2);
                $('#resultLUZ1').text(statusReturn(data.LUZ1));
                $('#resultLUZ2').text(statusReturn(data.LUZ2));
                i++;
                setGrafico(i,data.sensor1,data.sensor2);
                console.log(data);
            }
          });
        return false;
    }

    // A cada 1000 milis (1 segundo), faça uma nova requisição.
    setInterval(fazerRequisicao, 3000);
    // Acredito que 3000 (3 segundos) ou mais seja o ideal para um serviço online.
    // Caso use local host, arrisco colocar ate 400 milis, você tera uma boa resposta. 
});

  
</script>
                 

Olá galera, preciso muito da ajuda de vcs, estou tentando criar uma tarefa que recebe dados da temperatura de um arduino e insere em um banco de dados, a parte de inserir no banco eu até consegui fazer, só nao consegui pegar as informaçoes do arduino, vou colocar o codigo, desde já, grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

O cron é em php sim, o problema é que eu nao estou conseguindo pegar esse valor do sensor1 e salvar no bd, no site eu consigo mostrar o valor, mas nao sei como salvar no bd usando um cron job

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com o cron vc consegue agendar uma tarefa, no caso basta vc criar o codigo q pega o valor do sensor q vc quer e salvar no bd, ai no cron vc configura quando a tarefas (rodar o script) vai ser executada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A minha dificuldade esta exatamente em pegar o valor do sensor, no caso o php teria que esperar o jason fazer uma requisição para pegar o valor do sensor

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pegar o valor de um sensor é uma coisa, utilizar o Cron é outra. Você precisa saber na documentação do Arduino como pegar essas informações com PHP e se ele da suporte ao mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu estou iniciando agora em php, o que eu preciso é que de meia em meia hora o servidor leia os dados do arduino e grave em um banco de dados, nao sei bem como ficaria esse código pra fazer essa função, vc teria algum exemplo pra me ajudar au algum termo mais especifico pra pesquisar no google, eu quero muito aprender isso

Compartilhar este post


Link para o post
Compartilhar em outros sites


 

#include <SPI.h>

#include <Ethernet.h>

#include <Thermistor.h>

 

byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};

 

IPAddress ip(192,168,1,200);

IPAddress gateway(192,168,1,1);

IPAddress subnet(255,255,255,0);

 

EthernetServer server(1600);

 

 

const int analogPin2 = A1;

Thermistor temp(0);

 

 

int LUZ1 = 8; //rele 1 - luz sala

int sensor = 7; //sensor de movimento

int LUZ2 = 3; //rele 2 - horta

int acionamento; //Variavel para guardar valor do sensor

 

 

void setup()

{

Serial.begin(9600);

Serial.println("Iniciando programa..");

Ethernet.begin(mac,ip,gateway,subnet);

Serial.println("Server ativo no IP: ");

Serial.print(Ethernet.localIP());

server.begin();

 

pinMode(LUZ1, OUTPUT);

pinMode(LUZ2, OUTPUT);

digitalWrite(LUZ1, HIGH);

digitalWrite(LUZ2, HIGH);

pinMode(sensor, INPUT);

 

 

}

void loop()

 

{

 

int temperature = temp.getTemp();

EthernetClient client = server.available();

if(client)

{

boolean continua = true;

String linha = "";

 

while(client.connected())

{

if(client.available()){

char c = client.read();

linha.concat(c);

 

if(c == '\n' && continua)

{

client.println("HTTP/1.1 200 OK");

// IMPORTANTE, ISSO FAZ O ARDUINO RECEBER REQUISIÇÃO AJAX DE OUTRO SERVIDOR E NÃO APENAS LOCAL.

client.println("Content-Type: text/javascript");

client.println("Access-Control-Allow-Origin: *");

client.println();

 

int iniciofrente = linha.indexOf("?");

 

if(iniciofrente>-1){ //verifica se o comando veio

iniciofrente = iniciofrente+6; //pega o caractere seguinte

int fimfrente = iniciofrente+3; //esse comando espero 3 caracteres

String acao = linha.substring(iniciofrente,fimfrente);//recupero o valor do comando

 

 

if ( acao == "001"){ digitalWrite(LUZ1, LOW); }

else if ( acao == "002"){ digitalWrite(LUZ1, HIGH);}

 

else if ( acao == "003"){ digitalWrite(LUZ2, LOW); }

else if ( acao == "004"){ digitalWrite(LUZ2, HIGH); }

else {}

 

 

client.print("dados({ sensor1 : ");

client.print(temperature);

client.print(", sensor2 : ");

client.print("56");

client.print(",");

client.print(" LUZ1 : ");

client.print(digitalRead(LUZ1));

client.print(",");

client.print(" LUZ2 : ");

client.print(digitalRead(LUZ2));

client.print("})");

 

}

break;

}

if(c == '\n') { continua = true; }

else if (c != '\r') { continua = false; }

}

}

delay(1);

client.stop();

}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Jamal o jeito mais simples de você fazer isso, é você criar uma tarefa no cron q rode de 30min em 30min, cria um script php com curl q faz o request nessa url q você está usando no ajax, e salvar o retorno no bd.

 

Só pesquisar sobre CURL q você faz "o mesmo q você ta fazendo com o ajax".

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Tudo bem pessoal?
       
      No código abaixo, estou fazendo uma consulta nas tabelas, banners e banners_referencia
      Meu objetivo é trazer resultados com valores iguais ao nome da cidade declarada na $cidade ou resultados com a referencia Total.
      O problema é que está trazendo todos os resultados. Tenho 10 linhas, 1 com o nome da cidade e duas com o valor Total, então o resultado teria que ser de apenas 3 linhas, mas mostra tudo.
       
      $banner = "SELECT A.*, B.* FROM banners A, banners_referencia B WHERE B.cod_referencia = A.cod_referencia AND A.cidade = '$cidade' OR B.referencia = 'Total' ORDER BY RAND()";
      $banner = mysqli_query($conexao, $banner) or die ("Banner não encontrado");
      while($busca= mysqli_fetch_array($banner)){
          print $busca['cidade'].'<br>';
      };
       
      Alguém consegue me ajudar?
    • Por Rafael_Ferreira
      Não consigo carregar a imagem do captcha do meu formulário. Foi testado com o xampp e easyphp. Também não carregou a imagem de outros captcha. 
       
       
    • Por luiz monteiro
      Olá, tudo bem?
       
      Estou melhorando meu conhecimento em php e mysql e, me deparei com o seguinte. A tabela da base de dados tem um campo do tipo varchar(8) o qual armazena números. Eu não posso alterar o tipo desse campo. O que preciso é fazer um select para retornar o números que contenham zeros a direita ou a esquerda.
      O que tentei até agora
       
      Ex1
      $busca = $conexao->prepare("select campo form tabela where (campo = :campo) ");
      $busca->bindParam('campo', $_REQUEST['campo_form']);
       
      Se a direita da string $_REQUEST['campo_form'] termina ou inicia com zero ou zeros, a busca retorna vazio.
      Inseri dados numéricos, da seguinte maneira para testar: 01234567;  12345670: 12345678: 12340000... entre outros nessa coluna. Todos os valores que não terminam ou não iniciam com zero ou zeros, o select funciona.
       
       
      Ex2
      $busca = $conexao->prepare("select campo form tabela where (campo = 0340000) ");
      Esse número está cadastrado, mas não retorna.
       
      Ex3
      $busca = $conexao->prepare("select campo form tabela where (campo = '02340001' ) ");
      Esse número está cadastrado, mas não retorna.
       
       
      Ex4
      $busca = $conexao->prepare("select campo form tabela where (campo like 2340000) ");
      Esse número está cadastrado, mas não retorna.
       
      Ex5
      $busca = $conexao->prepare("select campo form tabela where (campo like '12340000') ");
      Esse número está cadastrado, mas não retorna.
       
      Ex6
      $busca = $conexao->prepare("select campo form tabela where (campo like '"12340000"' ) ");
      Esse número está cadastrado, mas não retorna.
       
       
      Ex7
      $busca = $conexao->prepare("select campo form tabela where (campo like :campo) ");
      $busca->bindParam('campo', $_REQUEST['campo_form'])
      Não retorna dados.
       
      O  $_REQUEST['campo_form'] é envio via AJAX de um formulário. 
      Usei o gettype para verificar o post, e ele retorna string.
      Fiz uma busca com número 12345678 para verificar o que o select retorna, e também retrona como string.
       
      Esse tipo de varchar foi usado porque os números que serão gravados nesse campo,  terão zeros a direita ou na esquerda. Os tipos number do mysql não gravam zeros, então estou usando esse. O problema é a busca.
      Agradeço desde já.
       
       
    • Por daemon
      Boa tarde,
       
      Eu tenho uma rotina que faz uma leitura do arquivo .xml de vários sites.

      Eu consigo pegar o tópico e a descrição, e mostrar a imagem que esta na pagina do link.
      Para isso utilizo esta função:
      function getPreviewImage($url) { // Obter o conteúdo da página $html = file_get_contents($url); // Criar um novo objeto DOMDocument $doc = new DOMDocument(); @$doc->loadHTML($html); // Procurar pela tag meta og:image $tags = $doc->getElementsByTagName('meta'); foreach ($tags as $tag) { if ($tag->getAttribute('property') == 'og:image') { return $tag->getAttribute('content'); } } // Se não encontrar og:image, procurar pela primeira imagem na página $tags = $doc->getElementsByTagName('img'); if ($tags->length > 0) { return $tags->item(0)->getAttribute('src'); } // Se não encontrar nenhuma imagem, retornar null return null; } // Uso: $url = "https://example.com/article"; $imageUrl = getPreviewImage($url); if ($imageUrl) { echo "<img src='$imageUrl' alt='Preview'>"; } else { echo "Nenhuma imagem encontrada"; }  
      Mas estou com um problema, esta funcão funciona quando coloco em uma pagina de teste.php. Preciso mostrar em uma página inicial diversas fotos de todos os links. (No caso acima só funciona 1).
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.