En esta primera entrada vamos a tratar el mas simple de los ejemplos, encender y apagar una Salida, sea para controlar un Led, para controlar un Rele o para utilizar Transistores para controlar tiras led de 12v. En este tutorial planteamos ejemplos para ESP8266, pero tal y como se ha explicado antes se puede aplicar tanto al ESP8266 como Arduino.
Pasamos directamente al ejemplo :)
/**************************************************************************
Souliss - Hello World for Expressif ESP8266
This is the basic example, create a software push-button on Android
using SoulissApp (get it from Play Store).
Load this code on ESP8266 board using the porting of the Arduino core
for this platform.
***************************************************************************/
// Let the IDE point to the Souliss framework
#include "SoulissFramework.h"
// Configure the framework
#include "bconf/MCU_ESP8266.h" // Load the code directly on the ESP8266
#include "conf/Gateway.h" // The main node is the Gateway, we have just one node
#include "conf/IPBroadcast.h"
// **** Define the WiFi name and password ****
#define WIFICONF_INSKETCH
#define WiFi_SSID "mywifi"
#define WiFi_Password "mypassword"
// Include framework code and libraries
#include <ESP8266WiFi.h>
#include <EEPROM.h>
/*** All configuration includes should be above this line ***/
#include "Souliss.h"
// This identify the number of the LED logic
#define MYLEDLOGIC 0
// **** Define here the right pin for your ESP module ****
#define OUTPUTPIN 5
void setup()
{
Initialize();
// Connect to the WiFi network and get an address from DHCP
GetIPAddress();
SetAsGateway(myvNet_dhcp); // Set this node as gateway for SoulissApp
Set_SimpleLight(MYLEDLOGIC); // Define a simple LED light logic
pinMode(OUTPUTPIN, OUTPUT); // Use pin as output
}
void loop()
{
// Here we start to play
EXECUTEFAST() {
UPDATEFAST();
FAST_50ms() { // We process the logic and relevant input and output every 50 milliseconds
Logic_SimpleLight(MYLEDLOGIC);
DigOut(OUTPUTPIN, Souliss_T1n_Coil,MYLEDLOGIC);
}
// Here we handle here the communication with Android
FAST_GatewayComms();
}
}
Como se puede ver en las partes de codigo resaltadas el codigo no son mas que 5 lineas.
- En primer lugar por comodidad se #define el SLOT para luego utilizarlo en el codigo, esto con un solo Slot no tiene mucho sentido, pero cuando empezamos a poner mas Slots es mas sencillo equivocarse y mas complicado "reorganizar" los Slots, por lo que es una practica recomendable.
- En segundo lugar en el setup() se configura el Slot como un SimpleLight (Salida con encendido y apagado) y indicamos que el PIN será utilizado como Salida.
- En tercer y ultimo lugar se ejecuta la logica (el codigo que determinará el funcionamiento de la salida) y el comando DigOut que se encarga unicamente de actuar sobre el PIN para reflejar el estado del Slot.
Para que el estado del PIN corresponda con el del Slot y no al reves hay que cambiar simplemente el comando DigOut por LowDigOut, con ello el Pin reaccionará de forma correcta.
En el caso del LowDigOut tambien es de uso recomendable el comando digitalWrite(OUTPUTPIN, HIGH); antes del PinMode del setup() para evitar encendidos en falso al conectar la alimentacion al nodo.
Para una comprension mas profunda de la estructura es recomendable leer esta Entrada:
Estructura del código Souliss
Comentarios, sugerencias o preguntas aqui abajo :P Salu2
Hola soy lucas hace tiempo que vengo usando souliss, te queria hacer una consulta. Se puede crear un slot sin definir a que pin esta? ejemplo pongo un pulsador en la aplicacion souliss cuando el arduino reciba el pulso ejecute una series de acciones. Desde ya muchas gracias
ResponderEliminarSi claro!, unicamente debes quitar la linea del DigOut :P
EliminarSalu2
hola, al cargar en el arduino me sale este error como lo soluciono, no lo veo por ningun lado.....
ResponderEliminarIn file included from C:\Users\Documents\arduino-1.8.2\libraries\ESP8266WiFi\src/ESP8266WiFi.h:33:0,
from C:\Users\Documents\Arduino\sketch_may08a\sketch_may08a.ino:26:
C:\Users\Documents\arduino-1.8.2\libraries\ESP8266WiFi\src/ESP8266WiFiType.h:26:19: fatal error: queue.h: No such file or directory
#include
^
compilation terminated.
exit status 1
Error compilando para la tarjeta Arduino/Genuino Uno.
Muchas gracias un saludo
Hola Miguel Angel, te esta dando error porque intentas compilar un sketch de ESP8266 en un Arduino, revisa esta entrada del blog y encontrarás el ejemplo para Arduino :P
Eliminarhttps://souliss-es.blogspot.com.es/2016/06/configuracion-basica-de-la-conexion.html
Un saludo
Jeje ya lo vi...... y efectivamente seguí un tutorial de como programar el esp y ya tengo en marcha souliss, si en marcha quiere decir encender y apagar un led..... :)
ResponderEliminarHola,
ResponderEliminarHe seguido el tutorial y me ha funcionado perfectamente, luego, agregue más salidas digitales definiendo las variables según me parecía:
* OUTPUTPIN1, OUTPUTPIN2, OUTPUTPINN
* MYLEDLOGIC1, MYLEDLOGIC2, MYLEDLOGICN
Con esto logro hacerlos funcionar individualmente sin problemas, pero cuando pongo varios en una escena no realiza todas las acciones programadas... cual puede ser el problema?