Comunicação Tcip com Hardwares

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
Nascimento
Usuário Nível 4
Usuário Nível 4
Mensagens: 763
Registrado em: 19 Jul 2008 12:11
Localização: OLINDA-PE

Comunicação Tcip com Hardwares

Mensagem por Nascimento »

não sei se os amigos ja fizeram algo parecido, há algumas placas no mercado , modulos arduinos que são comunicação tc-ip
algum amigo tem um pequeno exemplo do uso de comunicação tc-ip para hardware?

por exemplo um modulo w5500 ele é rede e não conversão de serial para rede..
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Comunicação Tcip com Hardwares

Mensagem por JoséQuintas »

Nascimento escreveu:não sei se os amigos ja fizeram algo parecido, há algumas placas no mercado , modulos arduinos que são comunicação tc-ip
algum amigo tem um pequeno exemplo do uso de comunicação tc-ip para hardware?
Na prática isso não existe.
Tá olhando de forma errada.
O que existe são programas que atendem comunicação TCP/IP, e a comunicação segue esse padrão.
O servidor MySQL aceita conexões TCP/IP protocolo MySQL, geralmente usando um cliente MySQL
O servidor SQLServer aceita conexões TCP/IP protocolo SQLServer, geralmente usando um cliente SQLServer.
Um webservice aceita conexões TCP/IP no protocolo webservice, geralmente usando uma classe pra webservice.
O hbnetio do harbour aceita conexão TCP/IP no protocolo hbnetio/harbour, compilando hbnetio no EXE.

TCP/IP é apenas um meio de comunicação, não é a comunicação propriamente dita.

E o hardware em questão tem conexão TCP/IP que vai aceitar protocolo ???
E nesse protocolo vai precisar qual cliente/classe ???
E vai precisar quais parâmetros ???
deve ter no manual

As possibilidades são infinitas.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Nascimento
Usuário Nível 4
Usuário Nível 4
Mensagens: 763
Registrado em: 19 Jul 2008 12:11
Localização: OLINDA-PE

Comunicação Tcip com Hardwares

Mensagem por Nascimento »

eu sei amigo quintas, ele recebe e envia requisições via http , com ip/porta/comando
no hardware tem funções que esperam envio de comandos estilo http
acho que é mais ou menos isso , e não achei manual, é chinesa "aliexpress" , lá so tem um comentário basico de funcionamento
veja que ela usa 485 que ja sei usar, mais no quadro atual preciso usar tcp-ip

https://pt.aliexpress.com/item/10050042 ... pt=glo2bra
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Comunicação Tcip com Hardwares

Mensagem por JoséQuintas »

Porta do controlador de rede ip: 192.168.1.4

Número da porta: 30000 digite http://192.168.1.4/30000 na barra de endereços do navegador, você pode controlar o interruptor correspondente, pressione e segure "reset" até que a luz se apague. Em seguida, ele irá restaurar o ip padrão de fábrica e número de porta
Provavelmente, depois que ligar no roteador e digitar isso, tem acesso a manual e tudo mais.
No caso de configuração errada, o reset volta a esse default.
É que pode até alterar essa porta/endereço.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Comunicação Tcip com Hardwares

Mensagem por JoséQuintas »

Basicamente igual fazemos no roteador, que digitamos o endereço e vém as coisas pra mexer.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Comunicação Tcip com Hardwares

Mensagem por JoséQuintas »

remoto.png
Da China também.
Mas WI-FI.
Controle remoto universal pra tudo que é aparelho, podendo controlar pelo celular ou Alexa.
É só esse trocinho, e só liga na fonte de alimentação, o resto é por wi-fi.

Parecido com esse, só muda que é wi-fi, e não por cabo.
Mas o programa do fabricante faz o resto.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Nascimento
Usuário Nível 4
Usuário Nível 4
Mensagens: 763
Registrado em: 19 Jul 2008 12:11
Localização: OLINDA-PE

Comunicação Tcip com Hardwares

Mensagem por Nascimento »

N amigo esse hardware fica esperando os comandos
Ip/porta/comando
Para ligar e desligar os relés
Sei que são comandos via HTTP, mais deixa quieto vou pesquisar mais , vlw
Pq vi que vc n entendeu , n quero 1 alexa quero enviar comandos pelo harbour
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Comunicação Tcip com Hardwares

Mensagem por Itamar M. Lins Jr. »

Olá!
Sei que são comandos via HTTP, mais deixa quieto vou pesquisar mais , vlw
Não está misturando as coisas ?
HTTP Só PELO APACHE ou IIS ou NGINX etc... HTTP é protocolo de HIPERTEXTO. Tudo na internete precisa do TCP/IP. Que é quem LEVA e TRAZ os PACOTES...

Para receber comandos HTTP é <html> bla,bla,bla</html>
O resto que pode está no HTTP é jogado para o programa que irá realizar as outras operações.(PHP/Mod_harbour/Java,Python...)

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
carlaoonline
Usuário Nível 3
Usuário Nível 3
Mensagens: 190
Registrado em: 24 Ago 2014 22:38
Localização: Porto Alegre-RS

Comunicação Tcip com Hardwares

Mensagem por carlaoonline »

Bom dia!

Essa placa nada mais é do que um Arduino (ou similar) que vem integrado um modulo 8 relés e um módulo Ethernet que propicia que ele se transforme em um Servidor Web (gera uma site que pode ser acessado pela internet)


Para que ela funcione, obrigatoriamente o modem da sua operadora de internet tem que aceitar a liberação de portas IPV4 nas configurações NAT (ou DMZ).


Recomendo usar o Esp32 (similar Arduino) é uma das mais rápidas e já vem com módulo WiFi integrado, aceita tb o módulo Ethernet (pra usar cabo de rede se quiser)


É feito a programação em "C" em um editor de texto (o do próprio Arduino) e gravado nessa placa, essa programação possui as configurações onde você deverá colocar o número da porta escolhida (a mesma que tem que liberar no modem) bem como as configurações de endereço IP, máscara de Sub Rede e Geteway padrão.

E exatamente como o Quintas falou:
Nessa programação também deverá ser criada a página que o usuário verá ao digitar no navegador o endereço seguido da porta escolhida:
JoséQuintas escreveu:Número da porta: 30000 digite http://192.168.1.4/30000 na barra de endereços do navegador


A programação é muito simples (é em C), só pra ter uma ideia (caso não tenha ainda) a parte da programação que cria o site "SE FOSSE EM HARBOUR" seria mais ou menos assim:

Código: Selecionar todos

...
? "<!DOCTYPE html>"
? "<html>"
? "<head>"
? "	<title>Luz da Sala</title>"
? "</head>"
? "<body>"
? "	<h1>Meu Site Simples</h1>"
? "	<button>Liga a lâmpada</button>"
? "	<button>Desliga a Lâmpada</button>"
? "</body>"
? "</html>"
...


Segue abaixo um exemplo de código para Esp32 que cria um Web Server usando a porta 3000 e apresentando ao usuário quatro botões para Ligar/Desligar luz da Sala ou do Quarto.

Nesse exemplo, o Relé da sala deverá estar ligado no pino 2 da placa e o da cozinha no pino 4

Quando o usuário clicar no botão "Ligar luz da sala" o módulo energizará o pino 2 que ligará o relé correspondente


Código: Selecionar todos

#include <WiFi.h>

const char* ssid = "nomedarede"; //coloque o nome da sua rede WiFi
const char* password = "senhadarede"; //coloque a senha da sua rede WiFi

WiFiServer server(3000); //cria um servidor web na porta 3000
IPAddress ip(192, 168, 1, 50); //define o endereço IP do ESP32

void setup() {
  Serial.begin(115200);
  pinMode(2, OUTPUT); //define o pino 2 como saída para o relé da luz da sala
  pinMode(4, OUTPUT); //define o pino 4 como saída para o relé da luz da cozinha

  WiFi.config(ip); //configura o endereço IP do ESP32
  WiFi.begin(ssid, password); //conecta-se à rede WiFi

  while (WiFi.status() != WL_CONNECTED) { //espera a conexão ser estabelecida
    delay(1000);
    Serial.println("Conectando-se à rede WiFi...");
  }

  Serial.println("Conexão WiFi estabelecida");
  server.begin(); //inicia o servidor web
  Serial.println("Servidor web iniciado");
}

void loop() {
  WiFiClient client = server.available(); //verifica se há conexões de clientes

  if (client) { //se houver uma conexão
    Serial.println("Novo cliente conectado");
    String request = client.readStringUntil('\r'); //lê a requisição do cliente
    Serial.println(request); //imprime a requisição no monitor serial

    if (request.indexOf("/ligarsala") != -1) { //se o botão "Ligar luz da sala" for pressionado
      digitalWrite(2, HIGH); //liga o relé da luz da sala
    } else if (request.indexOf("/desligarsala") != -1) { //se o botão "Desligar luz da sala" for pressionado
      digitalWrite(2, LOW); //desliga o relé da luz da sala
    } else if (request.indexOf("/ligarcozinha") != -1) { //se o botão "Ligar luz da cozinha" for pressionado
      digitalWrite(4, HIGH); //liga o relé da luz da cozinha
    } else if (request.indexOf("/desligarcozinha") != -1) { //se o botão "Desligar luz da cozinha" for pressionado
      digitalWrite(4, LOW); //desliga o relé da luz da cozinha
    }

    //envia a página HTML ao cliente
    client.println("HTTP/1.1 200 OK");
    client.println("Content-Type: text/html");
    client.println();
    client.println("<!DOCTYPE html>");
    client.println("<html>");
    client.println("<head>");
    client.println("<title>Controle de Luzes</title>");
    client.println("</head>");
    client.println("<body>");
    client.println("<h1>Controle de Luzes</h1>");
    client.println("<button onclick=\"location.href='/ligarsala'\">Ligar luz da sala</button>");
    client.println("<button onclick=\"location.href='/desligarsala'\">Desligar luz da sala</button>");
    client.println("<button onclick=\"location.href='/ligarcozinha'\">Ligar luz da cozinha</button>");
    client.println("<button onclick=\"location.href='/desligarcozinha'\">Desligar luz da cozinha</button>");
    client.println("</body>");
    client.println("</html>");
    delay(10);
    client.stop(); //encerra a conexão com o cliente
    Serial.println("Cliente desconectado");
  }
}

Avatar do usuário
Nascimento
Usuário Nível 4
Usuário Nível 4
Mensagens: 763
Registrado em: 19 Jul 2008 12:11
Localização: OLINDA-PE

Comunicação Tcip com Hardwares

Mensagem por Nascimento »

É eu vivo misturando as coisas. Aff tempos atrás
Foi com modbus. Em fim como eu falei
Vou pesquisar mais , ate em outras linguagens
Ao menos da uma ideia de como fazer
No harbour
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Comunicação Tcip com Hardwares

Mensagem por JoséQuintas »

Nascimento escreveu: Em fim como eu falei
Vou pesquisar mais , ate em outras linguagens
Ao menos da uma ideia de como fazer
No harbour
Não entendeu nada.
Liga esse troço no roteador, e acessa pelo roteador.
Provavelmente vai encontrar todo manual.

Não se trata de procurar manual, e sim de já ligar e acessá-lo, pra ver as instruções.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Nascimento
Usuário Nível 4
Usuário Nível 4
Mensagens: 763
Registrado em: 19 Jul 2008 12:11
Localização: OLINDA-PE

Comunicação Tcip com Hardwares

Mensagem por Nascimento »

ta bom mestre quintas é eu que não entendi, estou dizendo desde ontem que não tem manual as infos que tem esta na pagina

a comunicação é via ip, ip/porta/comando
e eu que não entendi nada?, sei que abre o soquete no harbour, só preciso entender como , mais deixa queto.....

se puder até apagar esse post agradeço pq não tem info importante nem uma só encheção de linguiça
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui
Avatar do usuário
Nascimento
Usuário Nível 4
Usuário Nível 4
Mensagens: 763
Registrado em: 19 Jul 2008 12:11
Localização: OLINDA-PE

Comunicação Tcip com Hardwares

Mensagem por Nascimento »

Segue abaixo um exemplo de código para Esp32 que cria um Web Server usando a porta 3000 e apresentando ao usuário quatro botões para Ligar/Desligar luz da Sala ou do Quarto.
exato amigo ai é na ide arduino, porém eu ja tenho a placa , o que eu precisaria era de fazer o HARBOUR se comunicar com ela, mais aqui ta dificil até de explicar , como disse deixa queto...
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Comunicação Tcip com Hardwares

Mensagem por Itamar M. Lins Jr. »

Olá!
o que eu precisaria era de fazer o HARBOUR se comunicar com ela
Veja bem, eu já entendi ai o processo.
A placa é um CPU, com um servidor WEB.
Para se comunicar tem que usar a IDE. Gravar os arquivo em ".C", ".H"... Só assim. Não é usando SOCKET com o Harbour.
Mas essa placa tem uma porta //192.168.0.1:3000/ que vc consegue acesso via CELULAR/COMPUTADOR NORMAL.
SE nessa porta TEM a PAGINA WEB com as POSSÍVEIS CONFIGURAÇÕES da PLACA eu não sei. Como se fosse a PAGINA WEB ai do ROTEADOR, para mexer nas senhas e outras configurações.

Isso é um MINI COMPUTADOR. Tem desses com saída de vídeo e teclado. Os tais Shields que compra e vai encaixando nela.


O Harbour é o de menos nesse processo.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Comunicação Tcip com Hardwares

Mensagem por JoséQuintas »

Itamar M. Lins Jr. escreveu:Veja bem, eu já entendi ai o processo.
A placa é um CPU, com um servidor WEB.
Para se comunicar tem que usar a IDE. Gravar os arquivo em ".C", ".H"... Só assim. Não é usando SOCKET com o Harbour.
Mas essa placa tem uma porta //192.168.0.1:3000/ que vc consegue acesso via CELULAR/COMPUTADOR NORMAL.
SE nessa porta TEM a PAGINA WEB com as POSSÍVEIS CONFIGURAÇÕES da PLACA eu não sei. Como se fosse a PAGINA WEB ai do ROTEADOR, para mexer nas senhas e outras configurações.
Acho que exagerou sobre IDE.
Contém um servidor web, e vai ser tudo via protocolo web.
hbtip deve ser o suficiente.
Só imagino que deva ter alguma senha, ou algo especial, senão qualquer invasor teria acesso.

Igual meu controle remoto universal, ou chave liga/desliga
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder