Visualização de dados da porta serial para um serviço da Web sem implantar o Apache

Gerenciar o seu arduino a partir de qualquer dispositivo através de um roteador wi-fi é um sonho tornado realidade para muitos iniciantes que se interessam por dispositivos do tipo arduino. Como iniciantes exemplares, também decidimos experimentá-lo.



Tendo pesquisado vários artigos habr, como “Redirecionando dados de uma porta COM para a Web” e “Controle simples do seu Arduino pela Web” , decidimos desenvolver nosso próprio servidor da Web para trocar dados com a porta de comunicação e enviá-los para o servidor da Web. Além disso, o servidor deve ser implantado em alguns cliques.

Para fazer isso, usando o artigo "Servidor multithread em C # em 15 minutos" , eles escreveram um servidor, cujo texto completo não darei, mas no final deixarei um link para o github onde todos podem testá-lo e, se quiserem, fazer alterações viáveis. Obviamente, muito tempo foi perdido e é muito simples escrever "o servidor foi escrito", a mão mal se levantou, mas, receio, a descrição será de pouco interesse para as pessoas envolvidas em microcontroladores. Vamos prestar atenção ao trabalho com microcontroladores: para trabalhar com o Arduino no nosso github, você encontrará uma biblioteca que permitirá criar código extremamente claro.

Portanto, usando o githaba ServArd.exe e a biblioteca do Arduino (ArdServ), continue.

Sugiro que você simplesmente envie o número 42 do Arduino para o servidor da webPorque esse é o sentido da vida , porque você pode gerar qualquer variável. Exiba o botão, ou seja, pisque um LED ou ligue algum aparelho em casa.

Também vale a pena tentar usar um módulo separado, que matava 50% das vezes, este é um editor de música para um elemento piezoelétrico.

Aqui está o código de esboço para o arduino:

#include "ArdServ.h"
  int outputPin = 2;                //   
  int MusicPin =6;
  float Param=42.00;
  ArdServ A;
void setup() 
{
      pinMode(outputPin, OUTPUT);
      Serial.begin(9600);
}
void loop() 
{
         if(A.ReadCmdFromSrv()==0)
         {
            A.textSend(" ",Param,0); 
            A.buttonSend(" ",outputPin); 
            A.melodySend(" ",0,MusicPin);
            A.endBlock();
         }
}

if (A.ReadCmdFromSrv () == 0) - se o comando for do servidor, atualize os dados.

A.textSend ("Seu parâmetro", Param, 0) - crie um nome de parâmetro de saída "Seu parâmetro", valor do parâmetro Param, no nosso caso é 42.0-1, não use / use o gráfico (em desenvolvimento).

A.buttonSend ("LED verde", outputPin) - crie um botão com o nome "LED verde", 3 - número da porta ativada pelo botão.

A.melodySend ("Reproduzir música", 0, MusicPin) - cria um campo de entrada para a música. Elemento piezoelétrico 0 (no futuro, tentaremos terminar a polifonia), pino MusicPin no qual penduramos o elemento piezoelétrico.

A.endBlock (); - Certifique-se de terminar o código com este bloco.

Portanto, entre o bloco de atualização de dados e o bloco final, pode haver qualquer código, com qualquer número de parâmetros. O próprio site escolhe e coloca na ordem correta todos os campos especificados no esboço.

Vídeo sobre a operação do esboço descrito:



Nosso github .

Source: https://habr.com/ru/post/pt385895/


All Articles