otimizado firmware e configuracoes de rede

This commit is contained in:
Diego Freitas 2024-12-03 13:19:16 -03:00
parent 1669cb3b5f
commit 9fa0e5832e
17 changed files with 82 additions and 37 deletions

Binary file not shown.

View File

@ -57,11 +57,11 @@ namespace AgroBase.Forms
// Aqui substituímos "Ethernet" pelo nome correto da interface que o PC está usando
if (chbIpFixo.Checked)
{
EthernetService.DefinirIpFixo(_Interface, ipNovo, subnetMask, gateway);
EthernetService.DefinirIpFixo(_Interface, ipNovo, subnetMask, gateway, true);
}
else
{
EthernetService.DefinirIpDinamico(_Interface);
EthernetService.DefinirIpDinamico(_Interface, true);
}
}

View File

@ -3,6 +3,7 @@ using AgroBase.Models;
using AgroBase.Services;
using System;
using System.Diagnostics;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
@ -27,6 +28,9 @@ namespace AgroBase.Forms
public frmInstancial()
{
InitializeComponent();
EthernetService.ConfigurarIP(true, false);
//FilaService.IniciarRotinas();
//BLD300RService.IniciarRotinas();
//MKS057DService.IniciarRotinas();
@ -90,6 +94,8 @@ namespace AgroBase.Forms
{
Fechando = true;
EthernetService.ConfigurarIP(false, false);
AsyncTaskTimerModel.PararTimers();
foreach (var Disp in Variaveis.DispositivosConectados)

View File

@ -48,8 +48,9 @@ namespace AgroBase.Models
public static OperacaoModel OperacaoEmAndamento { get; set; } = new OperacaoModel(ModoOperacao.Manual);
public static MqttService MqttService { get; set; } = new MqttService("localhost", 1883);
public static LoRaService ConexaoLoRa = new LoRaService();
public static string FaixaIPwifi { get; set; } = "192.168.99";
public static string FaixaIPwifi { get; set; } = "192.168.100";
public static string FaixaIPethernet { get; set; } = "192.168.105";
public static string IP_Host { get; set; } = FaixaIPwifi + ".105";
public static bool IsAgroMonitor
{
get

View File

@ -1,4 +1,5 @@
using System;
using AgroBase.Models;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
@ -392,18 +393,33 @@ public class EthernetService
return "Nenhuma interface de rede ativa encontrada";
}
public static void DefinirIpDinamico(string interfaceName)
public static void DefinirIpDinamico(string interfaceName, bool response)
{
// Define o IP para DHCP
string comandoIp = $"interface ip set address \"{interfaceName}\" dhcp";
// Define o DNS para DHCP
string comandoDns = $"interface ip set dns \"{interfaceName}\" dhcp";
try
{
// Define o IP para DHCP
string comandoIp = $"interface ip set address \"{interfaceName}\" dhcp";
// Define o DNS para DHCP
string comandoDns = $"interface ip set dns \"{interfaceName}\" dhcp";
ExecutarComandoNetsh(comandoIp);
ExecutarComandoNetsh(comandoDns);
ExecutarComandoNetsh(comandoIp);
ExecutarComandoNetsh(comandoDns);
if (response)
{
MessageBox.Show("IP dinamico definido com sucesso!", "Configuração de IP", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
catch (Exception ex)
{
if (response)
{
MessageBox.Show($"Erro ao definir IP dinamico: {ex.Message}", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
public static void DefinirIpFixo(string nomeInterface, string ipAddress, string subnetMask, string gateway)
public static void DefinirIpFixo(string nomeInterface, string ipAddress, string subnetMask, string gateway, bool response)
{
try
{
@ -415,11 +431,17 @@ public class EthernetService
string comandoDns = $"interface ip set dns name=\"{nomeInterface}\" source=static addr=8.8.4.4 register=primary";
ExecutarComandoNetsh(comandoDns);
MessageBox.Show("IP fixo definido com sucesso!", "Configuração de IP", MessageBoxButtons.OK, MessageBoxIcon.Information);
if (response)
{
MessageBox.Show("IP fixo definido com sucesso!", "Configuração de IP", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
catch (Exception ex)
{
MessageBox.Show($"Erro ao definir IP fixo: {ex.Message}", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
if (response)
{
MessageBox.Show($"Erro ao definir IP fixo: {ex.Message}", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
@ -468,7 +490,29 @@ public class EthernetService
}
}
public static void ConfigurarIP(bool fixo, bool response)
{
var interfaces = ObterNomesInterfaces();
string _Interface = interfaces.FirstOrDefault(x => x.ToLower().Contains("wi-fi") && x.ToLower().Contains("ativa"));
if (!string.IsNullOrEmpty(_Interface))
{
_Interface = _Interface.Split('(')[0].Trim();
string gateway = ObterIpGateway(_Interface);
string ipAtual = ObterIpAtual(_Interface);
string ip = Variaveis.IP_Host;
string submask = ObterSubnetMaskAtual(_Interface);
if (fixo)
{
DefinirIpFixo(_Interface, ip, submask, gateway, response);
}
else
{
DefinirIpDinamico(_Interface, response);
}
}
}
}

View File

@ -1 +1 @@
{"tmrRegistrador":{"State":2,"IsRunning":false,"IsStopped":true,"IsCreated":false,"Interval":2000,"StackTrace":"AtuadorModel.IniciarRegistrador","Id":"tmrRegistrador_Atu","TimeTick":"00:00:00.0009998"},"Modulo_ID":"Atu","IP":"192.168.99.113","RequisitarDados":true,"Conectado":false,"QuantidadeBicos":4,"DensidadeHerbicida":1.05,"AtuacaoNivelAlto":true,"BicosPulverizadores":[{"ID":"B01","Posicao":1,"Componente":422,"AtuacaoNivelAlto":false,"ComandoAtuar":false,"Comandar":true,"Testando":false,"Funcoes":[21],"LeituraStatusBico":false,"MediaNivelFluxo":0.0,"Leitura":null,"Inicializado":false,"Atuacoes":0,"InicioAtuacao":"0001-01-01T00:00:00","TempoAtuado":0.0},{"ID":"B02","Posicao":2,"Componente":422,"AtuacaoNivelAlto":false,"ComandoAtuar":false,"Comandar":true,"Testando":false,"Funcoes":[21],"LeituraStatusBico":false,"MediaNivelFluxo":0.0,"Leitura":null,"Inicializado":false,"Atuacoes":0,"InicioAtuacao":"0001-01-01T00:00:00","TempoAtuado":0.0},{"ID":"B03","Posicao":3,"Componente":422,"AtuacaoNivelAlto":false,"ComandoAtuar":false,"Comandar":true,"Testando":false,"Funcoes":[21],"LeituraStatusBico":false,"MediaNivelFluxo":0.0,"Leitura":null,"Inicializado":false,"Atuacoes":0,"InicioAtuacao":"0001-01-01T00:00:00","TempoAtuado":0.0},{"ID":"B04","Posicao":4,"Componente":422,"AtuacaoNivelAlto":false,"ComandoAtuar":false,"Comandar":true,"Testando":false,"Funcoes":[21],"LeituraStatusBico":false,"MediaNivelFluxo":0.0,"Leitura":null,"Inicializado":false,"Atuacoes":0,"InicioAtuacao":"0001-01-01T00:00:00","TempoAtuado":0.0}],"BombasPressurizadoras":[{"ID":"BOMBA","ComandoAtuar":false,"Componente":325,"LeituraEstado":false,"Comandar":true,"Testando":false,"Funcoes":[14,35,36,37,5],"Potencia":0.0,"Leitura":null,"Inicializado":false}],"Sensores":[{"LogGrafico":[],"ID":"FLXLN","Prioridade":23,"Descricao":"Fluxo na linha principal","Componente":198,"Aferir":true,"DelayAmostragem":300,"Leitura":null,"Inicializado":false,"Testando":false,"Funcoes":[25],"Parametros":[],"UnidadeMedida":"mL/s","LimiteMaximo":0.0,"LimiteMinimo":0.0},{"LogGrafico":[],"ID":"MASRS","Prioridade":3,"Descricao":"Massa do reservatório de herbicida","Componente":532,"Aferir":true,"DelayAmostragem":1000,"Leitura":null,"Inicializado":false,"Testando":false,"Funcoes":[22,23],"Parametros":[],"UnidadeMedida":"Kg","LimiteMaximo":50.0,"LimiteMinimo":5.0},{"LogGrafico":[],"ID":"PRSLN","Prioridade":3,"Descricao":"Pressão na linha principal","Componente":333,"Aferir":true,"DelayAmostragem":1000,"Leitura":null,"Inicializado":false,"Testando":false,"Funcoes":[24],"Parametros":[["Vmin","000.00"],["Vmax","004.50"],["Pmax","174.04"]],"UnidadeMedida":"psi","LimiteMaximo":120.0,"LimiteMinimo":60.0}],"BombaPressurizadora":{"ID":"BOMBA","ComandoAtuar":false,"Componente":325,"LeituraEstado":false,"Comandar":true,"Testando":false,"Funcoes":[14,35,36,37,5],"Potencia":0.0,"Leitura":null,"Inicializado":false},"ScriptDeteccaoErvas":"weed_detector-1_0.py","DadosLeitura":{"Conectado":false,"Mod_ID":null,"Momento":"0001-01-01T00:00:00","BicosPulverizadores":[],"BombasPressurizadoras":[],"SensoresFluxo":[],"SensoresMassa":[],"SensoresPressao":[]},"_MassaRef":0.8,"_MassaLeituraRef":40876.37,"_MassaLeituraExtra":1895800.0,"MassaReservatorio":0.0,"VolumeReservatorio":0.0,"PercentualReservatorio":0.0,"VolumeVazaoAferido":0.0,"_FluxoMlRef":102.0,"_FluxoPulsoRef":80.0,"VazaoFluxoMLpS":0.0,"VolumeVazaoML":0.0,"InicioAtuacao":"0001-01-01T00:00:00","TempoAtuado":0.0,"_PressaoVmin":0.0,"_PressaoVmax":4.5,"_PressaoMax":174.045,"PressaoLinha":0.0,"PressaoLinhaCalc":0.0}
{"tmrRegistrador":{"State":2,"IsRunning":false,"IsStopped":true,"IsCreated":false,"Interval":1000,"StackTrace":"AtuadorModel.IniciarRegistrador","Id":"tmrRegistrador_Atu","TimeTick":"00:00:00"},"Modulo_ID":"Atu","IP":"192.168.100.13","RequisitarDados":true,"Conectado":false,"QuantidadeBicos":4,"DensidadeHerbicida":1.05,"AtuacaoNivelAlto":true,"BicosPulverizadores":[{"ID":"B01","Posicao":1,"Componente":422,"AtuacaoNivelAlto":false,"ComandoAtuar":false,"Comandar":true,"Testando":false,"Funcoes":[21],"LeituraStatusBico":false,"MediaNivelFluxo":0.0,"Leitura":null,"Inicializado":false,"Atuacoes":0,"InicioAtuacao":"0001-01-01T00:00:00","TempoAtuado":0.0},{"ID":"B02","Posicao":2,"Componente":422,"AtuacaoNivelAlto":false,"ComandoAtuar":false,"Comandar":true,"Testando":false,"Funcoes":[21],"LeituraStatusBico":false,"MediaNivelFluxo":0.0,"Leitura":null,"Inicializado":false,"Atuacoes":0,"InicioAtuacao":"0001-01-01T00:00:00","TempoAtuado":0.0},{"ID":"B03","Posicao":3,"Componente":422,"AtuacaoNivelAlto":false,"ComandoAtuar":false,"Comandar":true,"Testando":false,"Funcoes":[21],"LeituraStatusBico":false,"MediaNivelFluxo":0.0,"Leitura":null,"Inicializado":false,"Atuacoes":0,"InicioAtuacao":"0001-01-01T00:00:00","TempoAtuado":0.0},{"ID":"B04","Posicao":4,"Componente":422,"AtuacaoNivelAlto":false,"ComandoAtuar":false,"Comandar":true,"Testando":false,"Funcoes":[21],"LeituraStatusBico":false,"MediaNivelFluxo":0.0,"Leitura":null,"Inicializado":false,"Atuacoes":0,"InicioAtuacao":"0001-01-01T00:00:00","TempoAtuado":0.0}],"BombasPressurizadoras":[{"ID":"BOMBA","ComandoAtuar":false,"Componente":325,"LeituraEstado":false,"Comandar":true,"Testando":false,"Funcoes":[14,35,36,37,5],"Potencia":0.0,"Leitura":null,"Inicializado":false}],"Sensores":[{"LogGrafico":[],"ID":"FLXLN","Prioridade":23,"Descricao":"Fluxo na linha principal","Componente":198,"Aferir":true,"DelayAmostragem":300,"Leitura":null,"Inicializado":false,"Testando":false,"Funcoes":[25],"Parametros":[],"UnidadeMedida":"mL/s","LimiteMaximo":0.0,"LimiteMinimo":0.0},{"LogGrafico":[],"ID":"MASRS","Prioridade":3,"Descricao":"Massa do reservatório de herbicida","Componente":532,"Aferir":true,"DelayAmostragem":1000,"Leitura":null,"Inicializado":false,"Testando":false,"Funcoes":[22,23],"Parametros":[],"UnidadeMedida":"Kg","LimiteMaximo":50.0,"LimiteMinimo":5.0},{"LogGrafico":[],"ID":"PRSLN","Prioridade":3,"Descricao":"Pressão na linha principal","Componente":333,"Aferir":true,"DelayAmostragem":1000,"Leitura":null,"Inicializado":false,"Testando":false,"Funcoes":[24],"Parametros":[["Vmin","000.00"],["Vmax","004.50"],["Pmax","174.04"]],"UnidadeMedida":"psi","LimiteMaximo":120.0,"LimiteMinimo":60.0}],"BombaPressurizadora":{"ID":"BOMBA","ComandoAtuar":false,"Componente":325,"LeituraEstado":false,"Comandar":true,"Testando":false,"Funcoes":[14,35,36,37,5],"Potencia":0.0,"Leitura":null,"Inicializado":false},"ScriptDeteccaoErvas":"weed_detector-1_0.py","DadosLeitura":{"Conectado":false,"Mod_ID":null,"Momento":"0001-01-01T00:00:00","BicosPulverizadores":[],"BombasPressurizadoras":[],"SensoresFluxo":[],"SensoresMassa":[],"SensoresPressao":[]},"_MassaRef":0.8,"_MassaLeituraRef":40876.37,"_MassaLeituraExtra":1895800.0,"MassaReservatorio":0.0,"VolumeReservatorio":0.0,"PercentualReservatorio":0.0,"VolumeVazaoAferido":0.0,"_FluxoMlRef":102.0,"_FluxoPulsoRef":80.0,"VazaoFluxoMLpS":0.0,"VolumeVazaoML":0.0,"InicioAtuacao":"0001-01-01T00:00:00","TempoAtuado":0.0,"_PressaoVmin":0.0,"_PressaoVmax":4.5,"_PressaoMax":174.045,"PressaoLinha":0.0,"PressaoLinhaCalc":0.0}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -18,8 +18,8 @@
// Configurações do IP estático
IPAddress local_IP(192, 168, 99, 113); // IP fixo para o ESP
IPAddress gateway(192, 168, 99, 1); // Gateway padrão
IPAddress local_IP(192, 168, String(WIFI_FAIXA).toInt(), 13); // IP fixo para o ESP
IPAddress gateway(192, 168, String(WIFI_FAIXA).toInt(), 1); // Gateway padrão
IPAddress subnet(255, 255, 255, 0); // Máscara de sub-rede
IPAddress primaryDNS(8, 8, 8, 8); // Servidor DNS primário (opcional)
@ -66,20 +66,14 @@ void setup() {
InicializarConexaoWifi(local_IP, gateway, subnet, primaryDNS);
if (!WifiIsConnected) {
String newSSID = "WIFI-AGROBOTICS";
String newPassword = "agro4321";
saveWiFiCredentials(newSSID.c_str(), newPassword.c_str());
connectToWiFi();
if (WifiIsConnected) {
PrintTela("Conectado com sucesso");
ESP.restart();
}
else {
PrintTela("Erro ao se conectar ao wifi");
while(true);
ESP.restart();
}
}

View File

@ -5,12 +5,14 @@
#ifndef MqttService_h
#define MqttService_h
#define WIFI_FAIXA "100"
const String TopicoRecepcao = "disp/tx/";
const String TopicoTransmissao = "disp/rx/";
class MqttService {
private:
const char* server = "192.168.99.105";
const char* server = "192.168." WIFI_FAIXA ".105";
int port = 1883;
const char* user = "zendion";
const char* password = "Z210203!";

View File

@ -6,6 +6,8 @@
#ifndef WifiService
#define WifiService
String WIFI_SSID = "Agrobot";
String WIFI_PASSWORD = "4321agro";
bool WifiIsConnected = false;
@ -45,6 +47,8 @@ void InicializarConexaoWifi(IPAddress ip, IPAddress gateway, IPAddress subnet, I
char ssid[MAX_SSID_LEN];
char password[MAX_PASS_LEN];
//saveWiFiCredentials(WIFI_SSID.c_str(), WIFI_PASSWORD.c_str());
loadWiFiCredentials(ssid, password);
PrintTela(ssid);

View File

@ -18,8 +18,8 @@
// Configurações do IP estático
IPAddress local_IP(192, 168, 99, 112); // IP fixo para o ESP
IPAddress gateway(192, 168, 99, 1); // Gateway padrão
IPAddress local_IP(192, 168, String(WIFI_FAIXA).toInt(), 12); // IP fixo para o ESP
IPAddress gateway(192, 168, String(WIFI_FAIXA).toInt(), 1); // Gateway padrão
IPAddress subnet(255, 255, 255, 0); // Máscara de sub-rede
IPAddress primaryDNS(8, 8, 8, 8); // Servidor DNS primário (opcional)
@ -70,20 +70,14 @@ void setup() {
InicializarConexaoWifi(local_IP, gateway, subnet, primaryDNS);
if (!WifiIsConnected) {
String newSSID = "WIFI-AGROBOTICS";
String newPassword = "agro4321";
saveWiFiCredentials(newSSID.c_str(), newPassword.c_str());
connectToWiFi();
if (WifiIsConnected) {
PrintTela("Conectado com sucesso");
ESP.restart();
}
else {
PrintTela("Erro ao se conectar ao wifi");
while(true);
ESP.restart();
}
}