Projeto Autoclave via web (Arduino+Ethernet Shield+Sensor de pressão e temperatura)

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.

eth_websrv_SD_Ajax_in_out.rar

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.

Exibições: 1064

Responder esta

Respostas a este tópico

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

Conseguiu terminar? Tenho uma autoclave parada e preciso de uma placa controladora pra ela. Se tiver interesse em vender me avise

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço