Код: Выделить всё
#include <ESP8266WiFi.h>
const char *ssid = "Ihone";
const char *password = "12345678";
WiFiEventHandler stationConnectedHandler; // событие - соединение
WiFiEventHandler stationDisconnectedHandler; // событие - разъединение
void setup() {
Serial.begin(115200);
WiFi.persistent(false); // бережем флеш-память, не перезаписываем данные подключения, если они не изменились с прошлой загрузки
WiFi.mode(WIFI_AP); // Режим точки доступа
WiFi.softAP(ssid, password);
stationConnectedHandler = WiFi.onSoftAPModeStationConnected(&onStationConnected); // при соединении переходим к функции
stationDisconnectedHandler = WiFi.onSoftAPModeStationDisconnected(&onStationDisconnected); // при разъединении переходим к функции
//Serial.println( WiFi.localIP());
//Serial.println( WiFi.softAPIP());
//WiFi.printDiag(Serial);
}
void loop() {
}
void onStationConnected(const WiFiEventSoftAPModeStationConnected& evt) { // при коннекте - включаем реле
//Serial.print("CONNECTED: ");
//Serial.println(macToString(evt.mac)); // МАС-адрес в порт
}
void onStationDisconnected(const WiFiEventSoftAPModeStationDisconnected& evt) { // при дисконнекте - выключаем реле
//Serial.print("DISCONNECTED: ");
//Serial.println(macToString(evt.mac)); // МАС-адрес в порт
}
String macToString(const unsigned char* mac) { // Получаем МАС-адрес клиента в виде строки (может пригодиться при идентификации)
char buf[20];
snprintf(buf, sizeof(buf), "%02x:%02x:%02x:%02x:%02x:%02x",
mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
return String(buf);
}
Код: Выделить всё
#include <ESP8266WiFi.h>
char ESP8266ControllerWifiAP_SSID[40] = "";
char ESP8266ControllerWifiAP_password[40] = "";
void setup() {
WiFi.persistent(false); // бережем флеш-память, не перезаписываем данные подключения, если они не изменились с прошлой загрузки
WiFi.softAP(ESP8266ControllerWifiAP_SSID, ESP8266ControllerWifiAP_password);
}
void loop() {
}
String macToString(const unsigned char* mac) { // Получаем МАС-адрес клиента в виде строки (может пригодиться при идентификации)
char buf[20];
snprintf(buf, sizeof(buf), "%02x:%02x:%02x:%02x:%02x:%02x",
mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
return String(buf);
}
Секция DECLARE
**********
Секция SETUP
*********
Секция LOOP
*********
Создал выход блока куда будет выводится строка с МАС
*********
Подключил библиотеку
Код: Выделить всё
[scroll]#include <ESP8266WiFi.h>
#include <ESP8266WiFi.h>
extern "C" {
#include "user_interface.h";
}
String M_195429077_1;
char ESP8266ControllerWifiAP_SSID_195429077_1[40] = "";
char ESP8266ControllerWifiAP_password_195429077_1[40] = "";
bool ESP8266ControllerWifiClient_status = 1;
char ESP8266ControllerWifiAP_SSID[40] = "Domofon";
char ESP8266ControllerWifiAP_password[40] = "12345678";
bool ESP8266ControllerWifiAP_IsNeedReconect = 0;
bool ESP8266ControllerWifiAP_workStatus = 1;
IPAddress ESP8266ControllerWifiAP_ip(172, 1, 1, 1);
IPAddress ESP8266ControllerWifiAP_dns (172, 1, 1, 1);
IPAddress ESP8266ControllerWifiAP_gateway (172, 1, 1, 1);
IPAddress ESP8266ControllerWifiAP_subnet (255, 255, 255, 0);
uint8_t ESP8266ControllerWifiAP_mac[6] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0};
bool _gtv1 = 0;
bool _gtv3 = 0;
bool _trgrt1 = 0;
bool _trgrt1I = 0;
String _stou1;
bool _tim1I = 0;
bool _tim1O = 0;
unsigned long _tim1P = 0UL;
void setup()
{
WiFi.mode(WIFI_AP);
_esp8266WifiModuleApReconnect();
Serial.begin(115200);
pinMode(2, OUTPUT);
WiFi.persistent(false); // бережем флеш-память, не перезаписываем данные подключения, если они не изменились с прошлой загрузки
WiFi.softAP(ESP8266ControllerWifiAP_SSID_195429077_1, ESP8266ControllerWifiAP_password_195429077_1);
}
void loop()
{if(ESP8266ControllerWifiAP_IsNeedReconect) {_esp8266WifiModuleApReconnect(); ESP8266ControllerWifiAP_IsNeedReconect = 0; }
//Плата:1
String macToString(const unsigned char* mac) // Получаем МАС-адрес клиента в виде строки (может пригодиться при идентификации)
char buf[20];
snprintf(buf, sizeof(buf), "%02x:%02x:%02x:%02x:%02x:%02x",
mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
return String(buf);
if (0){if(!(( M_195429077_1)==(_stou1))){Serial.print(M_195429077_1);}} _stou1 = M_195429077_1;
if (_gtv1) { if (_trgrt1I) { _trgrt1 = 0;} else {_trgrt1 = 1; _trgrt1I = 1;} } else {_trgrt1 = 0; _trgrt1I = 0;};
if(_trgrt1) {_tim1O = 1; _tim1I = 1;} else { if(_tim1I) {_tim1I = 0; _tim1P = millis();} else { if (_tim1O) {if ( _isTimer(_tim1P, 1010)) _tim1O = 0;}}}
_gtv3 = _tim1O;
digitalWrite(2, _tim1O);
}
bool _isTimer(unsigned long startTime, unsigned long period )
{
unsigned long currentTime;
currentTime = millis();
if (currentTime>= startTime) {return (currentTime>=(startTime + period));} else {return (currentTime >=(4294967295-startTime+period));}
}
int hexStrToInt(String instring)
{
byte len = instring.length();
if (len == 0) return 0;
int result = 0;
for (byte i = 0; i < 8; i++) // только первые 8 цыфар влезуть в uint32
{
char ch = instring[i];
if (ch == 0) break;
result <<= 4;
if (isdigit(ch))
result = result | (ch - '0');
else result = result | (ch - 'A' + 10);
}
return result;
}
void _esp8266WifiModuleApReconnect()
{
if ( _checkMacAddres(ESP8266ControllerWifiAP_mac)) {
wifi_set_macaddr(1, const_cast<uint8*>(ESP8266ControllerWifiAP_mac));
}
WiFi.softAPConfig(ESP8266ControllerWifiAP_ip, ESP8266ControllerWifiAP_gateway, ESP8266ControllerWifiAP_subnet);
WiFi.softAP(ESP8266ControllerWifiAP_SSID, ESP8266ControllerWifiAP_password);
if ( ! (_checkMacAddres(ESP8266ControllerWifiAP_mac))) {
WiFi.softAPmacAddress(ESP8266ControllerWifiAP_mac);
}
}
IPAddress _ipAddressFromUnsignetLong(unsigned long value)
{
IPAddress result;
byte *x = (byte *)&value;
for (byte i = 0; i < 4; i++) {
result[i] = x[i];
}
return result;
}
bool checkIPAdressString(String value)
{
IPAddress temp;
return temp.fromString(value);
}
IPAddress _ipAddressFromString(String value)
{
IPAddress temp;
temp.fromString(value);
return temp;
}
unsigned long _unsignetLongFromIPAdress(IPAddress value)
{
byte buufer[4] = {0, 0, 0, 0};
for (byte i = 0; i < 4; i++) {
buufer[i] = value[i];
}
unsigned long *y = (unsigned long *)&buufer;
return y[0];
}
bool _checkMacAddres(byte array[])
{
bool result = 0;
for (byte i = 0; i < 6; i++)
{
if (array[i] == 255) {
return 0;
}
if (array[i] > 0 ) {
result = 1;
}
}
return result;
}
void _parseMacAddressString(String value, byte array[])
{
int index;
byte buffer[6] = {255, 255, 255, 255, 255, 255};
byte raz = 0;
String tempString;
while ((value.length() > 0) && (raz <= 6)) {
index = value.indexOf(":");
if (index == -1) {
tempString = value;
value = "";
} else {
tempString = value.substring(0, index);
value = value.substring(index + 1);
}
buffer[raz] = byte(hexStrToInt(tempString));
raz++;
}
if ( _checkMacAddres(buffer))
{
for (byte i = 0; i < 6; i++)
{
array[i] = buffer[i];
}
}
}
bool _compareMacAddreses(byte array1[], byte array2[])
{
for (byte i = 0; i < 6; i++)
{
if (array1[i] != array2[i]) {
return 0;
}
}
return 1;
}
bool _compareMacAddresWithString(byte array[], String value)
{
byte buffer[6] = {255, 255, 255, 255, 255, 255};
_parseMacAddressString(value, buffer);
return _compareMacAddreses(array, buffer);
}
bool _checkMacAddresString(String value)
{
byte buffer[6] = {255, 255, 255, 255, 255, 255};
_parseMacAddressString(value, buffer);
return _checkMacAddres( buffer);
}
String _macAddresToString(byte array[])
{
String result = "";
String temp ="";
for (byte i = 0; i < 6; i++)
{
temp=String(array[i],HEX);
if (temp.length() < 2) {temp = String("0") + temp; }
result = result + temp;
if (i < 5) {
result = result + String(":");
}
}
result.toUpperCase();
return result;
}[/scroll]
pr2:51: error: expected initializer before 'char'
char buf[20];
^
pr2:52: error: 'buf' was not declared in this scope
snprintf(buf, sizeof(buf), "%02x:%02x:%02x:%02x:%02x:%02x",
^
pr2:53: error: 'mac' was not declared in this scope
mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
^
pr2:54: error: return-statement with a value, in function returning 'void' [-fpermissive]
return String(buf);
^