Arduino Souliss e ESP8266

ESP8266: Primo test come gateway.


Con pochi euro ho acquistato sul sito di www.dx.com, due pezzi di ESP8266 da programmare con il framework di Souliss , nello specifico il modello scelto è il ESP-01.














Il collegamento effettuato per la programmazione è il seguente:




Da tener ben presente che il chip funziona a 3,3V e non a 5V come per Arduino, il pin di GPIO0 durante la programmazione viene collegato a GND, successivamente, nel mio test, viene collegato a un led con opportuna resistenza, per verificarne il funzionamento. Nel mio programmatore, un CP2102, il filo verde con nome RES in realtà è il 3,3V che serve ad alimentare il ESP8266, il Jumper nel caso della foto di seguito è nella posizione di accensione del LED, spostandolo tutto a destra viene messo GPIO0 a GND e quindi nello stato di programmazione.




In questa prova il ESP8266 viene programmato come gateway, essendo l'unico nodo sulla rete di test, e dopo averne accertato il funzionamento modificherò opportunamente il software  per lavorare come peer sulla mia rete souliss.

Software Arduino Souliss e ESP8266


Il software caricato è il seguente:


/**************************************************************************
Souliss - ESP8266 test come gateway

Questo è l'esempio per il controllo un LED tramite un pulsante o l'applicazione
Android SoulissApp (scaricabile da Play Store).

Eseguire questo codice su ESP8266 come WiFi SoC.

***************************************************************************/

// Configurare il framework
#include "bconf/MCU_ESP8266.h"
#include "conf/Gateway.h"
#include "conf/IPBroadcast.h"

// **** Definisco il nome e la password della rete WiFi a cui mi connetto ****
#define WIFICONF_INSKETCH
#define WiFi_SSID "xxxxxxx" //scrivi tra virgolette il nome della tua rete
#define WiFi_Password "xxxxxxxx" //scrivi tra virgolette la password della tua rete

// Includere codice del framework e librerie
#include <ESP8266WiFi.h>
#include <EEPROM.h>
#include "Souliss.h"

// Questo identifica il numero della logica LED
#define MYLEDLOGIC 0

// Definire la configurazione di rete
// in base alle impostazioni del router
uint8_t ip_address[4] = {192, 168, 2, 10};
uint8_t subnet_mask[4] = {255, 255, 255, 0};
uint8_t ip_gateway[4] = {192, 168, 2, 1};
#define Gateway_address 10
#define myvNet_address ip_address[3]
#define myvNet_subnet 0xFF00
#define myvNet_supern Gateway_address

// **** Define here the right pin for your ESP module ****
#define OUTPUTPIN 0

void setup()
{
Initialize();

// Impostare i parametri di rete
Souliss_SetIPAddress(ip_address, subnet_mask, ip_gateway);
SetAsGateway(myvNet_address);

// Definire una semplice logica di luce a LED
Set_SimpleLight(MYLEDLOGIC);

pinMode(OUTPUTPIN, OUTPUT); // Pin alimentazione LED
}

void loop()
{
// Qui iniziamo il ciclo
EXECUTEFAST() {
UPDATEFAST();

// Elaboriamo la logica e relativo ingresso
// e uscita ogni 50 millisecondi
FAST_50ms() {
// Set del LED come da comando
Logic_SimpleLight(MYLEDLOGIC);
DigOut(OUTPUTPIN, Souliss_T1n_Coil, MYLEDLOGIC);
}

// Qui si gestisce la comunicazione
FAST_GatewayComms();

}
}



Di seguito la figura illustra il messaggio finale della compilazione ed in basso a destra i parametri settati relativi alla tipologia di chip usato.


Compilazione ESP8266

Le figure di seguito illustrano il funzionamento relativo al tipico T11 con uscita sul GPIO0, quella di sinistra in stato di ON e a destra lo stato di OFF



ESP8266 ON
 ESP8266 OFF


Di seguito un breve video del funzionamento.



Commenti