Arduino Mega + ESP01
- Войдите на сайт для отправки комментариев
Ср, 22/07/2020 - 17:14
Прикрепляю к плате модуль WiFi ESP-01/
модуль в сети виден, обнаруживается в "ESP8266 Config.exe", настраивается.
при попытке инициализации в проекте не инициализируется. какие могут быть проблемы:
причём, проект стандартный, сканирование сети WiFi. ранее работал. Теперь ни один проект не работает с WiFi. Модулей несколько, везде одинаково
#include "WiFiEsp.h"
// Emulate Serial1 on pins 6/7 if not present
#ifndef HAVE_HWSERIAL1
#include "SoftwareSerial.h"
SoftwareSerial Serial2(9, 8); // RX, TX
#endif
int val = 0;
void setup() {
Serial.begin(115200);
Serial.println("стартую ...");
// initialize serial for debugging
Serial2.begin(115200);
// initialize serial for ESP module
if (Serial2)
Serial.println("порт для WiFi открыт");
// initialize ESP module
Serial.println("сейчас ...");
WiFi.init(&Serial2);
Serial.println("готово ...");
// check for the presence of the shield
//if (WiFi.status() == WL_NO_SHIELD) {
// Serial.println("WiFi shield not present");
// on't continue
// while (true);
//}
// Print WiFi MAC address
printMacAddress();
}
void loop()
{
if (Serial.available() > 0)
{
//Serial.println("поехали ...");
char e = Serial.read();
val = e;
Serial.println(e);
if (e == 's')
{
Serial.println();
Serial.println("Scanning available networks...");
listNetworks();
}
else if (e == 'g')
{
Serial2.println("AT+GMR");
}
else if (e == 'p')
{
printWifiStatus();
}
else
Serial.println("нет комманды такой");
}
//if (Serial2.available() > 0)
{
}
}
void printMacAddress()
{
// get your MAC address
byte mac[6];
WiFi.macAddress(mac);
// print MAC address
char buf[20];
sprintf(buf, "%02X:%02X:%02X:%02X:%02X:%02X", mac[5], mac[4], mac[3], mac[2], mac[1], mac[0]);
Serial.print("MAC address: ");
Serial.println(buf);
}
void printWifiStatus() {
// print the SSID of the network you're attached to:
Serial.print("SSID: ");
Serial.println(WiFi.SSID());
// print your WiFi shield's IP address:
IPAddress ip = WiFi.localIP();
Serial.print("IP Address: ");
Serial.println(ip);
// print the received signal strength:
long rssi = WiFi.RSSI();
Serial.print("signal strength (RSSI):");
Serial.print(rssi);
Serial.println(" dBm");
}
void listNetworks()
{
// scan for nearby networks
int numSsid = WiFi.scanNetworks();
if (numSsid == -1) {
Serial.println("Couldn't get a wifi connection");
while (true);
}
// print the list of networks seen
Serial.print("Number of available networks:");
Serial.println(numSsid);
// print the network number and name for each network found
for (int thisNet = 0; thisNet < numSsid; thisNet++) {
Serial.print(thisNet);
Serial.print(") ");
Serial.print(WiFi.SSID(thisNet));
Serial.print("\tSignal: ");
Serial.print(WiFi.RSSI(thisNet));
Serial.print(" dBm");
Serial.print("\tEncryption: ");
printEncryptionType(WiFi.encryptionType(thisNet));
}
}
void printEncryptionType(int thisType) {
// read the encryption type and print out the name
switch (thisType) {
case ENC_TYPE_WEP:
Serial.print("WEP");
break;
case ENC_TYPE_WPA_PSK:
Serial.print("WPA_PSK");
break;
case ENC_TYPE_WPA2_PSK:
Serial.print("WPA2_PSK");
break;
case ENC_TYPE_WPA_WPA2_PSK:
Serial.print("WPA_WPA2_PSK");
break;
case ENC_TYPE_NONE:
Serial.print("None");
break;
}
Serial.println();
}
к каким пинам ЕСП подключаете?
8 и 9
8 и 9
потому и не работает. У меги есть хардварный Сериал2, поэтому софтовый в этом коде не запускается. А хардварный Сериал2 на меге - на пинах 16 и 17, если даташит не врет, а вовсе не 8 и 9
пардон, это я сказал по UNO
а на меге - Serial2 - TX2/RX2