Как узнать MAC-адрес с помощью NodeMCU при подключении к Wi-Fi?
Я новичок в использовании NodeMCU и IOT. Я тестирую NodeMCU (ESP8266), чтобы иметь возможность подключиться к серверу pubnub. Взяли код с GitHub, но есть ошибка
'mac was not declared in this scope'
и еще какая-то ошибка.
Кто-нибудь может сказать, в чем проблема?
Этот код взят со страницы pubnub на github — https://github.com/pubnub/arduino
Код:-
#include <Ethernet.h>
#include <PubNub.h>
void setup() {
/* For debugging, set to speed of your choice */
Serial.begin(9600);
/* If you use some other HW, you need to do some other
initialization of it here... */
Ethernet.begin();
/* Start the Pubnub library by giving it a publish and subscribe
keys */
PubNub.begin(publisher key, subscriber key);
}
void loop() {
/* Maintain DHCP lease. For other HW, you may need to do
something else here, or maybe nothing at all. */
Ethernet.maintain();
/* Publish message. You could use `auto` here... */
PubNonSubClient *pclient = PubNub.publish(pubchannel, "\"message\"");
if (!pclient) return;
PublishCracker cheez;
cheez.read_and_parse(pclient);
/** You're mostly interested in `outcome()`, and,
if it's "failed", then `description()`.
*/
Serial.print("Outcome: "); Serial.print(cheez.outcome());
Serial.print(' '); Serial.println(cheez.to_str(cheez.outcome()));
Serial.print("description: "); Serial.println(cheez.description());
Serial.print("timestamp: "); Serial.println(cheez.timestamp());
Serial.print("state: "); Serial.print(cheez.state());
Serial.print(' '); Serial.println(cheez.to_str(cheez.state()));
pclient->stop();
/* Wait for news. */
PubSubClient *sclient = PubNub.subscribe(subchannel);
if (!sclient) return; // error
String msg;
SubscribeCracker ritz(sclient);
while (!ritz.finished()) {
ritz.get(msg);
if (msg.length() > 0) {
Serial.print("Received: "); Serial.println(msg);
}
}
sclient->stop();
delay(1000);
}
error :-
sketch_jan17a:28:47: error: 'pubchannel' was not declared in this scope
PubNonSubClient *pclient = PubNub.publish(pubchannel, "\"message\"");
^
sketch_jan17a:44:46: error: 'subchannel' was not declared in this scope
PubSubClient *sclient = PubNub.subscribe(subchannel);
^
Multiple libraries were found for "Ethernet.h"
Used: C:\Users\sultan\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.0-beta2\libraries\Ethernet
Not used: C:\Program Files (x86)\Arduino\libraries\Ethernet
exit status 1
'mac' was not declared in this scope
1 ответ
Лучший ответ:
Я не верю, что у вас есть модуль Wiznet Ethernet, подключенный к вашему NodeMcu. Библиотека Ethernet предназначена для чипов Wiznet для проводной локальной сети. Вы хотите использовать Wi-Fi NodeMcu. Для этого в ядре esp8266 имеется библиотека ESP8266WiFi. Он имеет тот же API, что и другие библиотеки WiFi, основанные на библиотеке Arduino WiFi. Таким образом, вы можете изменить примеры Wi-Fi библиотеки pubnub Arduino. Только измените #include <WiFi101.h>
на #include <ESP8266WiFi.h>
. (И удалите #include <SPI.h>
.)
- ESP8266 не подключается к Wi-Fi
- Каково использование зарезервированных контактов и контактов SDD2, SDD3 NodeMCU?
- Обнаружение ESP8266 в сети
- NodeMCU продолжает отключаться
- Соединение сетей Wi-Fi на nodemcu: как настроить esp8266 в качестве расширителя Wi-Fi, простейший случай
- Ошибка запуска FirebaseDemo в NodeMCU
- Как связать MPU9250 и NodeMcu?
- Как изменить тайм-аут загрузки ArduinoOTA?
да, никакой ошибки после этого нет. Но теперь пишет: «Ошибка компиляции для платы NodeMCU 1.0 (модуль ESP-12E)». У меня узел mcu 2, но я не могу найти его в настройках платы. что делать?, @Sultan Morbiwala
если это «Ошибка компиляции...», значит, произошла ошибка компиляции., @Juraj
не волнуйся, понял, @Sultan Morbiwala