Olá Pessoal,
estou precisando de uma ajuda de vcs...
Estou desenvolvendo um projeto que permite iniciar um processo de autoclavagem via web.
Para isso estou usando um sensor de temperatura ds18b20 (Datasheet), sensor de pressão MPX5700(Datasheet), Ethernet Shield W5100, Arduino Uno R3 e Módulo Relé 8 Canais 5V 10A para Arduino.
Segue projeto e Index acima.
Minha duvida são as seguintes: 1ª - como fazer para adicionar um relatório ao final do processo de autoclavagem (em txt) com desenvolvimento do processo minuto por minuto (representados por segundos), dizendo o processo, a pressão e a temperatura.
2ª - Como adicionar esse relatório ao index, e ir escrevendo as frases conforme o andamento do processo.
PS: Projeto em andamento, não está concluído.
Tags:
eu faria isso com o auxílio de um banco de dados (por exemplo mysql).
projetaria para registrar no mysql todos os dados do seu processo (pressão, temperatura, etc) juntamente com a data/hora
dessa forma, haveria possibilidade de fazer consultas ao banco de dados para que seu index te apresente os dados na forma de tabela, gráfico, mensagem, enfim da forma como sua criatividade permitir
Pensei em utilizar o recurso de gravação em txt no cartão SD do Arduino, mas nunca fiz algo parecido... Alguém já trabalhou com isso? poderia exemplificar???
mas se vc gravar os dados no SD, vc vai perder muito desempenho pra ficar gerando o index.
Por acaso, o index a que vc se refere é a página inicial que algum usuário acessa numa determinada página web?
Dependendo das quantidades de informações que vc quiser dar tratamento, essa sua página index deverá ser hospedada num servidor, pois o arduino não dará conta do recado. Por exemplo, gerar gráficos, calcular estatísticas, entre outras coisas consumirão os limitados recursos do arduino e talvez vc não consiga fazer algo medianamente complexo
postei o index abaixo, relativamente simples, ele gera uma comparação das 3 opções escolhidas pelo cliente e inicia o ciclo a partir dela... Esse index está armazenado no cartão SD e o Arduino apenas o habilita... muito leve
SEGUE ABAIXO O INDEX:
<!DOCTYPE html>
<html>
<head>
<title> Configuração de Ciclo de Autoclavagem </title>
<script>
strLED1 = "";
strLED2 = "";
strLED3 = "";
strLED4 = "";
strLED5 = "";
strLED6 = "";
strIniciar = "";
function GetArduinoIO()
{
nocache = "&nocache=" + Math.random() * 1000000;
var request = new XMLHttpRequest();
request.onreadystatechange = function()
{
if (this.readyState == 4) {
if (this.status == 200) {
if (this.responseXML != null) {
var count;
var num_an = this.responseXML.getElementsByTagName('analog').length;
for (count = 0; count < num_an; count++) {
document.getElementsByClassName("analog")[count].innerHTML =
this.responseXML.getElementsByTagName('analog')[count].childNodes[0].nodeValue;
}
// LED 1
if (this.responseXML.getElementsByTagName('LED')[0].childNodes[0].nodeValue === "checked") {
document.LED_form.LED1.checked = true;
document.LED_form.LED2.checked = false;
}
else {
document.LED_form.LED1.checked = false;
}
// LED 2
if (this.responseXML.getElementsByTagName('LED')[1].childNodes[0].nodeValue === "checked") {
document.LED_form.LED2.checked = true;
document.LED_form.LED1.checked = false;
}
else {
document.LED_form.LED2.checked = false;
}
// LED 3
if (this.responseXML.getElementsByTagName('LED')[2].childNodes[0].nodeValue === "checked") {
document.LED_form.LED3.checked = true;
document.LED_form.LED4.checked = false;
}
else {
document.LED_form.LED3.checked = false;
}
// LED 4
if (this.responseXML.getElementsByTagName('LED')[3].childNodes[0].nodeValue === "checked") {
document.LED_form.LED4.checked = true;
document.LED_form.LED3.checked = false;
}
else {
document.LED_form.LED4.checked = false;
}
// LED 5
if (this.responseXML.getElementsByTagName('LED')[4].childNodes[0].nodeValue === "checked") {
document.LED_form.LED5.checked = true;
document.LED_form.LED6.checked = false;
}
else {
document.LED_form.LED5.checked = false;
}
// LED 6
if (this.responseXML.getElementsByTagName('LED')[5].childNodes[0].nodeValue === "checked") {
document.LED_form.LED6.checked = true;
document.LED_form.LED5.checked = false;
}
else {
document.LED_form.LED6.checked = false;
}
}
}
}
}
// send HTTP GET request with LEDs to switch on/off if any
request.open("GET", "ajax_inputs" + strLED1 + strLED2 + strLED3 + strLED4 + strLED5 + strLED6 + strIniciar + nocache, true);
request.send(null);
setTimeout('GetArduinoIO()', 1000);
strLED1 = "";
strLED2 = "";
strLED3 = "";
strLED4 = "";
strLED5 = "";
strLED6 = "";
strIniciar = "";
}
// LEDs checkbox checked/unchecked
function GetCheck()
{
if (LED_form.LED1.checked) {
strLED1 = "&LED1=1";
strLED2 = "&LED2=0";
LED_form.LED2.checked = false;
}
else {
strLED1 = "&LED1=0";
}
if (LED_form.LED2.checked) {
strLED2 = "&LED2=1";
strLED1 = "&LED1=0";
LED_form.LED1.checked = false;
}
else {
strLED2 = "&LED2=0";
}
if (LED_form.LED3.checked) {
strLED3 = "&LED3=1";
strLED4 = "&LED4=0";
LED_form.LED4.checked = false;
}
else {
strLED3 = "&LED3=0";
}
if (LED_form.LED4.checked) {
strLED4 = "&LED4=1";
strLED3 = "&LED3=0";
LED_form.LED3.checked = false;
}
else {
strLED4 = "&LED4=0";
}
if (LED_form.LED5.checked) {
strLED5 = "&LED5=1";
strLED6 = "&LED6=0";
LED_form.LED6.checked = false;
}
else {
strLED5 = "&LED5=0";
}
if (LED_form.LED6.checked) {
strLED6 = "&LED6=1";
strLED5 = "&LED5=0";
LED_form.LED5.checked = false;
}
else {
strLED6 = "&LED6=0";
}
}
//Desabilitar checkbox
function GetDesabilitar()
{
if (document.getElementById('Iniciar').disabled == true)
{
LED_form.LED1.disabled = false;
LED_form.LED2.disabled = false;
LED_form.LED3.disabled = false;
LED_form.LED4.disabled = false;
LED_form.LED5.disabled = false;
LED_form.LED6.disabled = false;
}
else if
((document.getElementById('Iniciar').disabled == false) && (LED_form.LED2.checked) &&
(LED_form.LED3.checked)&&(LED_form.LED5.checked)){
strLED2 = "&LED2=1";
strLED3 = "&LED3=1";
strLED5 = "&LED5=1";
strIniciar = "&Iniciar=1";
LED_form.LED1.disabled = true;
LED_form.LED2.disabled = true;
LED_form.LED3.disabled = true;
LED_form.LED4.disabled = true;
LED_form.LED5.disabled = true;
LED_form.LED6.disabled = true;
document.getElementById('Txt1').style.display = '';
}
}
</script>
<style>
.IO_box {
float: left;
margin: 0 20px 20px 0;
border: 1px solid blue;
padding: 0 5px 0 5px;
width: 120px;
}
h1 {
font-size: 120%;
color: blue;
margin: 0 0 10px 0;
}
h2 {
font-size: 85%;
color: #5734E6;
margin: 5px 0 5px 0;
}
p, form, button {
font-size: 80%;
color: #252525;
}
.small_text {
font-size: 70%;
color: #737373;
}
</style>
</head>
<body onload="GetArduinoIO()">
<h1> Configuração de Ciclo de Autoclavagem </h1>
<div class="IO_box">
<h2>Sensores</h2>
<p>Temperatura: <span class="analog">... </span>ºC</p>
<p>Pressão: <span class="analog">... </span>KPa</p>
</div>
<div class="IO_box">
<h2>Pulsos de pre-vacuo</h2>
<form id="check_LEDs" name="LED_form">
<input type="checkbox" name="LED1" value="0" onclick="GetCheck()" />SIM<br /><br />
<input type="checkbox" name="LED2" value="0" onclick="GetCheck()" />NAO<br /><br />
</div>
<div class="IO_box">
<h2> Temperatura: </h2>
<input type="checkbox" name="LED3" value="0" onclick="GetCheck()" />121 ºC<br /><br />
<input type="checkbox" name="LED4" value="0" onclick="GetCheck()" />134 ºC<br /><br />
</div>
<div class="IO_box">
<h2> Secagem: </h2>
<input type="checkbox" name="LED5" value="0" onclick="GetCheck()" />Manual<br /><br />
<input type="checkbox" name="LED6" value="0" onclick="GetCheck()" />Automática<br /><br />
</form>
</div>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<input type="button" id="Iniciar" name="Iniciar" value="Iniciar Ciclo" onclick="GetDesabilitar()"/><br /><br />
<br>
<span id="Txt1" style="display:none">Iniciando ciclo de autoclavagem</span>
<br>
</body>
</html>
Eu faria com CSV Comp Framework
http://adltecnologia.blogspot.com.br
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por