ESP-12-F no WIFI

Buenas tardes,

Escribo en el forum ya que estoy bastante desesperado y no se que hacer, llevo buscando solución pero no hay manera, os comento:

He fabricado una placa para controlar un portero automático ( leer timbre y abrir puerta ), para ello he utilizado un ESP12F, con un relé y un transistor junto a un optoacoplador con todas sus resistencias para que funcione correctamente.

He conectado el ESP12F a arduino y descargado el código sin problemas, las salidas funcionan y todo va bien menos una cosa importantíssima, No me conecta a la WIFI.

He probado con mil sketches, pero nada. he usado los ejemplos de wificlient, de scannetwork etc...
Y en el momento de buscar wifi no encuentra ninguna y se queda buscando......

He modificado los parámetros del arduino como higher bandwidth, he añadido WiFi.mode(WIFI_STA); wifi.hostname (), de todo lo que he encontrado.... pero nada.

No creo que sea un tema de cobertura ya que he puesto mi movil a 5 cm del ESP12 y tampoco detecta la wifi que he creado.

Por favor, podríais orientarme de qué me puede pasar? os copia el esquema de hardware que no se que haya algo mal....

Muchas gracias

No se porque pones el esquema hardware (que dices te funciona) cuando el problema que tienes es de Software y precisamente no pones el código que usas.

No lo he puesto porque son los que vienen con la libreria, pero ya os digo no encuentra ninguna red.

/*
 WiFiEsp example: ScanNetworks

 This example  prints the Wifi shield's MAC address, and
 scans for available Wifi networks using the Wifi shield.
 Every ten seconds, it scans again. It doesn't actually
 connect to any network, so no encryption scheme is specified.

 For more details see: http://yaab-arduino.blogspot.com/p/wifiesp.html
*/

#include "WiFiEsp.h"

// Emulate Serial1 on pins 6/7 if not present
#ifndef HAVE_HWSERIAL1
#include "SoftwareSerial.h"
SoftwareSerial Serial1(6, 7); // RX, TX
#endif

void setup() {
  // initialize serial for debugging
  Serial.begin(115200);
  // initialize serial for ESP module
  Serial1.begin(9600);
  // initialize ESP module
  WiFi.init(&Serial1);

  // check for the presence of the shield
  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("WiFi shield not present");
    // don't continue
    while (true);
  }

  // Print WiFi MAC address
  printMacAddress();
}

void loop()
{
  // scan for existing networks
  Serial.println();
  Serial.println("Scanning available networks...");
  listNetworks();
  delay(10000);
}


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 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();
}

No se si lo he entendido bien, pero intentas escanear con el esp la misma red que se supone que creas con el esp? además dices que el móvil no la detecta, claro, si no la creas no existe

Buenas,
No me he explicado bien.
He creado un acceso wifi ( hotspot) con el movil para tener un wifi cercano y verificar que tener una red wifi cerca del esp12 cuando esta buscando, no es culpa de mi wifi sino que hay algun otro problema que la cobertura wifi.
El tema es que no encuentra ninguna red, ni mia ni de los vecinos.

A ver.
Es muy simple. Usa un ejemplo básico de los existentes y debes poder conectarte a tu WIFI.
También existe otro ejemplo donde puedes escanear las wifis existentes. Esos funcionan?

Si selecciono ESP8266 Generico y luego elijo la librería ESP8266Wifi y por último el ejemplo WifiScan.ino que es este

/*
    This sketch demonstrates how to scan WiFi networks.
    The API is almost the same as with the WiFi Shield library,
    the most obvious difference being the different file you need to include:
*/
#include "ESP8266WiFi.h"

void setup() {
  Serial.begin(115200);

  // Set WiFi to station mode and disconnect from an AP if it was previously connected
  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  delay(100);

  Serial.println("Setup done");
}

void loop() {
  Serial.println("scan start");

  // WiFi.scanNetworks will return the number of networks found
  int n = WiFi.scanNetworks();
  Serial.println("scan done");
  if (n == 0) {
    Serial.println("no networks found");
  } else {
    Serial.print(n);
    Serial.println(" networks found");
    for (int i = 0; i < n; ++i) {
      // Print SSID and RSSI for each network found
      Serial.print(i + 1);
      Serial.print(": ");
      Serial.print(WiFi.SSID(i));
      Serial.print(" (");
      Serial.print(WiFi.RSSI(i));
      Serial.print(")");
      Serial.println((WiFi.encryptionType(i) == ENC_TYPE_NONE) ? " " : "*");
      delay(10);
    }
  }
  Serial.println("");

  // Wait a bit before scanning again
  delay(5000);
}

Tiene que funcionarte SI o SI y si no lo hace es porque tu ESP12 esta dañado.

Buenas a todos,

Primeramente os quería agradecer vuestros comentarios, finalmente ya he encontrado lo que pasaba...
y ayudar a otros por si tienen el mismo problema.

"sólo" con cambiar la frecuencia del crystal de 40mhz a 26mhz en arduino ide, me encuentra todas las redes y se conecta sin problemas al SSID... por lo que es un tema de parametrización del arduino IDE.

Gracias. ;D ;D ;D