Как установить «IPAddress ip» с помощью переменной?

Создан файл "variableInput.h" для редактирования переменных в одном месте; вместо поиска нескольких строк кода, чтобы найти строки, требующие редактирования.

// переменнаяInput.h
//
// Определяемые пользователем переменные; одно место для редактирования переменных

// Замените сведениями о вашей сети
#define host = "esp32"
#define ssid = "YOURSSID"
#define password = "YOURPASSWORD"

// Серверы времени NTP
#define udpAddress1 = "198.50.238.156"  //сервер времени NTP
#define udpAddress2 = "132.163.96.3"  //сервер времени NTP

//общедоступный IP-адрес через Интернет с переадресацией портов; знай риски!!!
// IP-адрес глобальной сети. Или используйте IP-адрес LAN -- такой же, как IP-адрес сервера; нет доступа в Интернет.
#define publicIP = "YOURPUBLICIP"
#define LISTEN_PORT  8030  //порт 80 прослушивания по умолчанию для запросов "GET".

//Для построения графиков требуется «БЕСПЛАТНАЯ» учетная запись «ThingSpeak.com»..
//Введите данные "ThingSpeak.com" здесь....
//iframes графических данных доступны на «ThingSpeak.com».
#define myChannelNumber = 123456 
#define myWriteAPIKey = "E12345"

//Учетные данные FTP
#define ftpUser = "FTPUSER"
#define ftpPassword = "FTPPASSWORD" 

// установка адресов
#define ip(10,0,0,200);
#define gateway(10,0,0,1);
#define subnet(255, 255, 255, 0);
#define dns(10,0,0,1);

//Ограниченный доступ к списку IP-адресов клиентов.
#define Restricted = "/ANYNAME" 

//Учетные данные OTA
//имя пользователя по умолчанию: USERNAME
// пароль по умолчанию: ПАРОЛЬ


// «установка адресов» — это та часть, которую я не понимаю.

Отдел связанного кода из функции "wifi_Start":

//установка адресов
IPAddress ip;
IPAddress gateway;
IPAddress subnet;
IPAddress dns;

Есть ли решение?

Уильям

, 👍0

Обсуждение

неясно, о чем вы спрашиваете... вы включили плохо отформатированный листинг кода, но неясно, как он относится к вашему вопросу... пожалуйста, объясните более подробно, что вы пытаетесь сделать... также, пожалуйста, отформатируйте листинг кодов, @jsotola

константы .h в моем проекте https://github.com/jandrassy/Regulator/blob/master/Regulator/consts.h, @Juraj

вы не должны использовать #define для констант. #define — это директивы для препроцессора., @Juraj


2 ответа


Лучший ответ:

0

Вы неправильно используете #define. Синтаксис: #define {имя} {значение}. Между именем и значением нет =, поэтому для строк вашего IP-адреса вы хотите #define myIp ip(192, 168, 1, 11)

,

Закончилось "#define ip {10,0,0,11}" в файле "variableInput.h" и "IPAddress ip;" в функции Wi-Fi-Старт. Цените помощь!, @WILLIAM


1

Вот как я это делаю (для Arduino, которая подключается к моему серверу Mosquitto) с помощью проводного Ethernet (WiFi работает так же):

#include <Ethernet.h>
#include <PubSubClient.h>
EthernetClient ethClient;
PubSubClient client(ethClient);

byte mac[]    = {
  0xde, 0xad, 0xbe, 0xef, 0xca, 0xfe
};
IPAddress ip(192, 168, 1, 75);
IPAddress server(192, 168, 1, 11);
void setup() {

  client.setServer(server, 1883);
  client.setCallback(callback);

  Ethernet.begin(mac, ip);

}
,

Я так понимаю это обычное использование; Мне нужна переменная для «192.168.1.11.»., @WILLIAM

Вы можете создать структуру IPAddress(0,0,0,0) и присвоить ей значение. Вам нужно будет взять десятичный адрес с точками vvv.xxx.yyy.zzz и умножить vvv*256^3+xxx*256^2+yyy*256^1+zzz*256^0, чтобы получить значение для присвоения., @Dougie