Meu problema é seguinte:
Meu projeto é a elaboração de um detector de raios, os sensores ja estão prontos e fuincionando, cada vez que ocorre um raio o sensor gera um pulso de 5V em uma porta digital.
Gostaria de criar um arquivo .txt ou um banco de dados para gravar o instante exato de cada detecção.
Data, Hora, Minuto, Segundo, se possível até milésimos pois o evento é rápido.
Paralelamente a isto estou desenvolvendo em HTML uma pagina pra me disponibilizar um contador de raios.
Essa parte do contador ja esta OK. Somente nao sei por onde começar pra fazer esse banco de dados com essas informaçoes.
Bom dia.
A pagina esta em uma rede local mesmo. Usei o webserver do arduino.
Gostaria de salvar os dados do instante da detecção (data.hora.min e seg) no Pc. Para que outros usuarios da rede pudessem visualizar.
Mas ainda nao sei como disponibilizar isso a cada momento que um pino digital mudar the low para high. E como ir salvando isso em um txt ou em um banco de dados.
Primeiro acho que tens de clarificar as fronteiras de cada um dos sistemas...
O Arduino pode usar um cartão SD para guardar ficheiros. Da mesma forma será possível através do módulo Ethernet mandar esses ficheiros para um computador.
O arduino pode mandar esses dados por porta série sempre que acontecer essa mudança, mas não pode mandar isso por ethernet uma vez que necessita de ter o computador ligado a ele para isso acontecer.
Se tiveres um servidor externo, podes sim comunicar com o servidor e ele é que coloca os dados na base de dados do servidor e/ou num ficheiro .txt.
A "fronteira" do meu projeto, a priori é uma rede LAN, sem conexão a internet.
E como eu faço por "porta serial mesmo" para salvar em um .txt com o instante (data, hora, min, seg) de cada ocorrencia de raio?
Sendo que cada ocorrencia é caracterizada por uma mudança de estado de um pino dital de low para High.
Qual programa vc indica pra eu fazer esse programa? o Processing? Phyton?
E vc conhece algum comando para pegar a (data, hora, min e seg) do computador?
Ola. Estou programanda no Python. ja dei alguns avanços, como por exemplo ja consegui gerar arquivos com data, hora,min e seg.
Mas ainda nao consegui gerar esses arquivos sincronizados com a porta digital do arduino.
Amanha posto os codigos.
int ledpin = 13;
int inpin = 2;
int val = 0;
void setup()
{
Serial.begin(9600);
pinMode(inpin,INPUT);
pinMode(ledpin,OUTPUT);
}
void loop()
{
val = digitalRead(inpin);
if(val == HIGH)
{
digitalWrite(ledpin, HIGH);
Serial.println(1);
}
else
{
digitalWrite(ledpin, LOW);
}
}
A cada momento que o pino digital 2 for acionado ira piscar O Led na porta 13 e enviar 1 na porta serial.
O codigo em Python é o seguinte
#Banco de dados de Raios em Belém
from datetime import datetime
import serial
porta = "COM9"
velocidade = 9600
conexao = serial.Serial(porta, velocidade);
c = 0
arquivo = open("raios.txt", "a+")
while TRUE:
raio = conexao.read();
if raio == 1:
c = c + 1;
data_hora = datetime.today()
dia = str(data_hora.day)
mes = str(data_hora.month)
ano = str(data_hora.year)
hora = str(data_hora.hour)
minuto = str(data_hora.minute)
segundo = str(data_hora.second)
microseg = str(data_hora.microsecond)
a = str(c)
#Escreve os dados de HORA, DATA e NR no arquivo
arquivo.write("DATA: ")
arquivo.write(dia)
arquivo.write(" / ")
arquivo.write(mes)
arquivo.write(" / ")
arquivo.write(ano)
arquivo.write(" ")
arquivo.write("HORA: ")
arquivo.write(hora)
arquivo.write(":")
arquivo.write(minuto)
arquivo.write(":")
arquivo.write(segundo)
arquivo.write(":")
arquivo.write(microseg)
arquivo.write(" ")
arquivo.write(a)
arquivo.write("\n-------------------------------\n")
arquivo.close()
conexao.close()
Bem, tenho a variavel c que será meu contador.
A ideia é que a cada momento que for recebido pela serial o 1 o programa ira ler a data e hora atual, incrementar o contador e gravar no .txt.
Ola o problema é que o arquivo .txt ta ficando em branco. ja testei so o arduino e esta funcionando tudo ok.
Creio que o problema seja com o programa no Python