collapse

* Posts Recentes

O que é isto ? por SerraCabo
[12 de Abril de 2024, 14:20]


Amplificador - Rockboard HA 1 In-Ear por almamater
[11 de Abril de 2024, 20:46]


Emulador NES em ESP32 por dropes
[10 de Abril de 2024, 15:30]


Meu novo robô por josecarlos
[29 de Março de 2024, 18:30]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: Ardomotic 2.0 - Web Interface para Arduino  (Lida 11720 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline tarquinio

  • Mini Robot
  • *
  • Mensagens: 529
Ardomotic 2.0 - Web Interface para Arduino
« em: 14 de Abril de 2014, 06:40 »
Boas.

Abri este thread para divulgar a versão 2.0 do meu projecto. É uma web interface que permite criar projectos com o Arduino utilizando apenas o browser sem ser necessário programar. Todas as configurações são feitas no browser e com mensagens de ajuda incorporadas se necessário. É apenas necessário ter ligação à internet, não é necessário ter nenhum outro servidor a correr além do próprio Arduino.

Algumas das coisas que permite fazer são:
- Desenhar uma interface personalizada usando animações para representar os vários dispositivos ligados ao arduino.
- Ter feedback visual do sistema em tempo real, com vários utilizadores ligados ao mesmo tempo.
- Configurar utilizadores com diferentes niveis de acesso ao sistema.
- Ler dados de sensores, e programar o sistema para reagir aos valores lidos.
- Agendar acções para serem executadas baseadas no dia/hora.
- Criar pequenos programas dentro da própria interface para automatizar sequencias de acções mais complexas.
- Aprender sinais enviados por controlos remotos e reproduzi-los quando necessário.

O site do projecto é este:
http://ardomotic.com/

Tenho lá vídeos do projecto a funcionar com vários exemplos diferentes. Apesar de isto ter comecado como uma brincadeira de domótica, dá para usar para muita coisa diferente.

Já está tudo quase acabado mas ainda está em versão beta, não está tudo ainda a 100%. Mas já está bom o suficiente para deixar a malta que quiser experimentar brincar um bocado. Se tiverem dúvidas ou comentários são bem-vindos. :)

Offline ivitro

  • Mini Robot
  • *
  • Mensagens: 451
Re: Ardomotic 2.0 - Web Interface para Arduino
« Responder #1 em: 14 de Abril de 2014, 12:44 »
Tarquinio, está fixe a aplicação, já pensaste portar para android ou assim?

Fizeste a interface como?

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.753
Re: Ardomotic 2.0 - Web Interface para Arduino
« Responder #2 em: 14 de Abril de 2014, 12:53 »
Parabens, está bastante poderosa a ferramenta. O arduino é apenas usado como interface? isto é, no exemplo do semaforo, os waits etc são realizados no browser ou no Arduino?

Que ferramentas usaste?

Offline ivitro

  • Mini Robot
  • *
  • Mensagens: 451
Re: Ardomotic 2.0 - Web Interface para Arduino
« Responder #3 em: 14 de Abril de 2014, 13:12 »
Eu pensoque ele tem uma BD e depois vai actualizando os valores de escrita e leitura no arduino.

Para mim o "K" está na interface e na flexibilidade que ela dá.

Offline tarquinio

  • Mini Robot
  • *
  • Mensagens: 529
Re: Ardomotic 2.0 - Web Interface para Arduino
« Responder #4 em: 14 de Abril de 2014, 14:43 »
Tarquinio, está fixe a aplicação, já pensaste portar para android ou assim?
Fizeste a interface como?

Quando comecei a desenvolver o projecto cheguei a pensar fazer uma app para iphone (na altura tinha iphone mas já estava a pensar mudar para android). Mas como queria que aquilo funcionasse em todo o lado, inclusive no PC, optei por fazer em HTML5, assim funciona em todo o lado. Não está nos planos fazer uma versão app tão depressa, actualmente tenho um android e estou sempre a usar aquilo sem stress, já testei em iphone e tambem funciona.
Quanto à interface, são as coisas normais da web... HTML5, Javascript, css, Websockets that kind of stuff... N sei se estavas a perguntar alguma coisa mais específica :)

Parabens, está bastante poderosa a ferramenta. O arduino é apenas usado como interface? isto é, no exemplo do semaforo, os waits etc são realizados no browser ou no Arduino?
Que ferramentas usaste?
Não, é mais ao contrário... O browser é que é usado como interface para configurar o servidor, tudo o resto é decidido lá. Por exemplo tens o semáforo como está, podes configurar um botão (físico) para começar e outro para parar o semáforo, fechar o browser usar apenas os botões. Ou podes configurar o semáforo para começar a trabalhar às 3as, 5as e domingos das 9:00 às 11:00 da manhã e pimba... É tudo processado lá. Podes fazer coisas já bastante complexas misturando funcionalidades. Complicando o exemplo, podes ter os tais dois botoes fisicos, mas de modo a que só funcionem a certas horas, se estiver escuro (assumindo que tens ligado um sensor de luz).
Quanto às ferramentas, do lado do browser usei o que já referi acima ao ivitro, e do lado do arduino usei um webserver com websockets para tratar das comunicações e algumas outras libraries de arduino desenvolvidas por mim. Tentei fazer a coisa de modo a ter o mínimo possivel de coisas hard-coded e por tudo configurável na interface.

Eu penso que ele tem uma BD e depois vai actualizando os valores de escrita e leitura no arduino.
Para mim o "K" está na interface e na flexibilidade que ela dá.
Sim as coisas são todas configuradas no browser e depois a configuração é gravada no SD card do arduino. A interface é mesmo uma forte componente deste projecto, na altura que comecei a desenvolver já havia vários projectos do mesmo tipo mas a interface costumava ser uma lista de elementos que podias ligar e desligar e eventualmente agendar acções. O que eu queria ter era uma coisa em que se podesse configurar comportamentos mais complexos e alterar a interface fácilmente só com o rato, e em que cada pessoa pudesse adicionar as suas imagens e criar as suas animações. Como não havia... Tive de fazer um! :)

Online jm_araujo

  • Mini Robot
  • *
  • Mensagens: 2.948
  • NERD!
Re: Ardomotic 2.0 - Web Interface para Arduino
« Responder #5 em: 14 de Abril de 2014, 15:27 »
MUITOS PARABENS!!!
Mas que grande projeto!!!
Uma solução completa de controlo de domótica enfiada num arduino não para menos do que ficar de boca aberta.  :o

O link para o rar está em baixo, mas pelo site está mesmo uma grande ideia com uma implementação original.
Fiquei cheio de vontade de comprar o HW necessário para brincar um bocado.

Já pensaste meter o código no Github? Quando o projeto se tornar popular (acho que é inevitável, mais tarde ou mais cedo cai num hackaday ou do género), dá muito jeito para que outros possam contribuir ao projeto.
 




Offline tarquinio

  • Mini Robot
  • *
  • Mensagens: 529
Re: Ardomotic 2.0 - Web Interface para Arduino
« Responder #6 em: 14 de Abril de 2014, 15:55 »
Hehe obrigado pelo bold a vermelho! :)

O link já está bom. Obrigado pelo aviso, o ficheiro tava la mas tinha a 1a letra capitalizada, my bad.

Precisava mesmo era de ter mais tempo para fazer as coisas... Há várias coisas que gostaria de ter no gthub ou outro sítio do genero, mas infelizmente agora não ando com muito tempo.

Mesmo esquecendo o resto do projecto, acho que só o webserver que desenvolvi para o arduino que permite ter autenticação e múltiplos websockets abertos é um projecto bastante útil para fazer outras coisas, provávelmente colocarei esse no github antes do Ardomotic... Preciso é de tempo tempo tempo... :s

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Ardomotic 2.0 - Web Interface para Arduino
« Responder #7 em: 14 de Abril de 2014, 16:24 »
Parabéns pelo trabalho.  ;)
Não leves a mal, mas tens meia duzia de erros ortográficos no texto, m's trocados com n's, apanhei um numa leitura muito diagonal, deves ter mais uns escondidos.
Avr fanboy

Offline tarquinio

  • Mini Robot
  • *
  • Mensagens: 529
Re: Ardomotic 2.0 - Web Interface para Arduino
« Responder #8 em: 14 de Abril de 2014, 16:33 »
Hehe obrigado. É bem capaz, geralmente as partes de texto são escritas a altas horas da madrugada, o meu corrector ortográfico neuronal já não está a funcionar a 100%. Tenho de dar uma leitura no site todo com calma e 100% acordado. :)

Offline gadelhas

  • Mini Robot
  • *
  • Mensagens: 48
Re: Ardomotic 2.0 - Web Interface para Arduino
« Responder #9 em: 14 de Abril de 2014, 16:54 »
Os meus Parabéns. Muito bom!  ;)
Obrigado.

Abraço
gadelhas

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.753
Re: Ardomotic 2.0 - Web Interface para Arduino
« Responder #10 em: 14 de Abril de 2014, 17:49 »
Como é a estrutura do controlo no arduino? De forma a adicionares e removeres acções dinamicamente?

Tens que arranjar um amigo designer para dar um ar mais moderno :)

Offline tarquinio

  • Mini Robot
  • *
  • Mensagens: 529
Re: Ardomotic 2.0 - Web Interface para Arduino
« Responder #11 em: 14 de Abril de 2014, 18:30 »
Como é a estrutura do controlo no arduino? De forma a adicionares e removeres acções dinamicamente?
Explicando a coisa muito por alto... Aquilo tem uma lista eventos ordenada pelo tempo de execução. Sempre alguma coisa muda, seja atraves de um click na interface, dados lidos de um sensor ou da execução de um programa, é adicionado um evento e estou sempre a verificar se já é altura de executar o primeiro evento da lista. Podes por exemplo querer que uma luz se ligue 3 segundos depois de carregares num botão, nesse caso aquilo cria o evento de ligar a luz para o tempo now()+3 segundos. No caso dos programas, sempre que é executada uma linha do programa, ele cria um evento para ser executada a proxima linha no tempo now(), se a linha for um delay cria um evento para now()+ o valor do delay.

Não sei se isto responde ao que querias saber, o processo ao inicio era bastante mais simples quando a idéia era só clicar e acender ou desligar coisas, mas à medida que fui adicionando funcionalidades a coisa foi complicando.
Tens que arranjar um amigo designer para dar um ar mais moderno :)
Quanto à parte artistica pronto... Tenho feito o que posso sozinho, mas não é bem a minha área... :p Pode ser que eventualmente entre alguem mais artistico para o projecto. :) Não me tenho preocupado assim tanto com isso porque tenho focado mais em ter tudo o mais personalizável possivel, em vez de melhorar as partes que são mesmo estáticas. Mesmo assim  ainda tenho aí umas boas horas à frente com as coisas que gostaria de fazer. :)

Online jm_araujo

  • Mini Robot
  • *
  • Mensagens: 2.948
  • NERD!
Re: Ardomotic 2.0 - Web Interface para Arduino
« Responder #12 em: 14 de Abril de 2014, 20:30 »
Tens planos para disponibilizar o código do servidor?

Offline tarquinio

  • Mini Robot
  • *
  • Mensagens: 529
Re: Ardomotic 2.0 - Web Interface para Arduino
« Responder #13 em: 15 de Abril de 2014, 00:26 »
Tens planos para disponibilizar o código do servidor?

Sim ainda não fiz isso oficialmente porque tinha pessoas a pedirem-me para disponibolizar o código, e assim já ia obtendo algum feedback das pessoas que fossem utilizando. Mas acho que até vou colocar o codigo javascript original a ser utilizado no servidor (em vez da versão minificada) para a malta mais geek poder brincar com o debug nos browsers se quiserem.

Offline tarquinio

  • Mini Robot
  • *
  • Mensagens: 529
Re: Ardomotic 2.0 - Web Interface para Arduino
« Responder #14 em: 15 de Abril de 2014, 01:49 »
Alias uma coisa que nem chego a mencionar no site é que o servidor (ardomotic.com) não faz praticamente nada, é so usado mesmo para servir ficheiros estáticos. Uma coisa que faz alguma confusão aos utilizadores é pensarem que o site se liga aos arduinos, mas isso não acontece. Se virem a source da página que e aberta, é algo deste tipo:
Citar
<!DOCTYPE html>
<html>
<head>
   <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
   <meta name='title'content='Ardomotic Server'>
   <link rel='stylesheet' href='_ardomo.css' />
   <script src="/scripts/jquery-2.0.3.min.js"></script>
   <script src="/scripts/reconnecting-websocket.js"></script>
   <script src="/scripts/jquery.knob.1.2.0.js"></script>
   <script src="_ardomo.min.js"></script>
</head>
<!--<body onunload='closeWebSocket()' oncontextmenu='return false'>-->
<body onunload='closeWebSocket()'>
   <div id='full_page'></div>
   <script type='text/javascript'>
      $(document).ready( function()
      {
         enable_setup = true;
         SYSTEM_WEB_ADDRESS = "192.168.1.33";
         SYSTEM_NETWORK_PORT = 80;
         startupSystem();
      });      
   </script>
</body>
</html>

O que isto faz basicamente é criar uma pagina que vai ler os scripts do site, e depois liga-se ao endereco e porta que foram passadas por parametro, mas essa ligação é directa entre o browser e o servidor, nem sequer passa pela internet (assumindo que o browser e o servidor estão na mesma rede obviamente). Para a coisa correr e estar completamente independente do site nem é preciso um webserver, basta ter os scripts no disco nos sitios certos. É algo que eventualmente eu explicarei com mais detalhe no site, mas por agora quero é por o pessoal interessado a testar a coisa, acabar o que falta e corrigir eventuais bugs que vão aparecendo. :)