Paso 4: código
Código:
Enchufe el cable de micro usb a su microprocesador y portátil (el cable no destruyas - la cabeza masculina que había soldado sirve para alimentar solamente). Programé todo en arduino. Tenga en cuenta que también puedes programar en lua y algunas alternativas de javascript. Personalmente me gusta arduino mejor y parece ser más fácil. Abajo y adjunto usted encontrará el código que usé con comentarios. Si usted tiene preguntas, por favor escriba en los comentarios.
0) si usted es nuevo a arduino, no se intimidó. Simplemente descarga la última versión de arduino.cc e instalar. Seguir los siguientes pasos. Basta de lógica básica para entender el código y sin cerebro para subir mi código.
Utilicé dos bibliotecas:
1) Blynk biblioteca, encontrar última versión en http://www.blynk.cc/getting-started/
2) Biblioteca elapsedMillis, https://github.com/pfeerick/elapsedMillis
También tenga en cuenta que necesitará instalar la placa. Si usaste el wemos d1 mini como yo lo hice, vaya a http://www.wemos.cc/tutorial/get_started_in_arduino.html. Seleccione su versión de la tarjeta y seguir los pasos de instalaciones. Te recomiendo instalación automática a través del administrador del tablero de arduino (es super fácil y rápido). Olvide seleccionar la placa posteriormente al cargar.
Sin la última versión de las bibliotecas y el ajuste correcto de la Junta, el código no funcionará.
Importante: el token de autorización en el código es el que encuentra en su teléfono o tablet en la aplicación de blynk y por correo electrónico a ti mismo en el paso anterior. Éste es esencial. También no olvide cambiar la contraseña wifi y ssid.
Nota: El esquema de los terminales de la mini de wemos es diferente a la de la ESP8266 estándar. Tener en cuenta cuando se trabaja con wemos y blynk. Ver imagen adjunta. Verde oscuro es el esquema de los terminales en Blynk, en arduino que sólo utiliza el número de pin marcado en la placa precedida por "D". Ejemplo: "digitalWrite (D1, LOW);"
El código:
escrito por Ruben Marc Speybrouck
Echale mi instructables para cosas más grandes:
#define BLYNK_PRINT Serial / / comentario este fuera para deshabilitar impresiones y ahorrar espacio #include #include
Terminal(V1) de WidgetTerminal;
Debe conseguir Auth Token en el App. Blynk / / ir a la configuración del proyecto (icono de la tuerca). Char [] auth = "60b462d1df8c465bb4d7c7f9a21856a0" ;//
switchstate int = 0; int switchstate2 = 0; int relaystate = 0;
para almacenar las variables que va a leer entradas.
#include elapsedMillis timeElapsed; unsigned int intervalo = 1000; Espera un segundo (1000 microsegundos) entre pulsar un botón para encender la luz o apagar otra vez. Esto evita fallos y mejora la estabilidad. después de mucho experimentar, encontré un segundo para trabajar mejor. No use delay para esto como retardo también interrumpirá tu conexión wifi durante un segundo, hacer reiniciar. funciones de timeElapsed permiten el bucle vacío seguir corriendo, al contrario el funcionamiento de simple retardo y por lo tanto son los únicos que se deben utilizar cuando se trabaja con comunicaciones de red
void setup() {Serial.begin(9600); Blynk.Begin (auth, "SSID", "Contraseña"); Introduzca el ssid (el nombre de tu red wifi) y contraseña aquí. Tenga en cuenta que las comillas necesitan para mantenerse.
pinMode (D4, salida); pinMode (D2, salida); pinMode (D3, salida); pinMode (D5, salida); pinMode (D8, salida);
digitalWrite (D4, alto); digitalWrite (D2, alto); digitalWrite (D3, alto); digitalWrite (D5, alto); digitalWrite (D8, alto); Delay(1000);
digitalWrite (D4, LOW); digitalWrite (D2, LOW); digitalWrite (D3, LOW); digitalWrite (D5, LOW); digitalWrite (D8, LOW);
Encontré que todo encendido y apagado de la conmutación en el arranque se deshace de electricidad estática y otras irregularidades. Y la ventaja de hacer esto es que los clicks del relais saber exactamente cuándo el dispositivo está conectado a internet y completamente arrancado
Delay(1000);
terminal.println (F ("Blynk v"BLYNK_VERSION": dispositivo iniciado")); terminal.Flush(); Esto conseguirá el widget terminal de su aplicación blynk iniciado}
void loop() {Blynk.run (); //initiate conexión con el servidor de blynk, para tu teléfono la aplicación sin firmar largo currentMillis = millis(); / / iniciar cuenta milisegundos para retrasos entre pulsar un botón
switchstate = digitalRead(D3); switchstate2 = digitalRead(D5); D3 es el botón físico es, D5 es el botón en mi aplicación de blynk elegir. Tenga en cuenta que gpios en la aplicación de blynk tienen diferentes números. Serial.Print(switchstate); Serial.Print ("---"); Serial.Print(switchstate2); Serial.Print ("---"); Serial.Print ("el relé es:"); Serial.println(relaystate);
Para solucionar problemas incluí impresión serial. Esto sólo funciona a través de usb de tu microprocesador a su ordenador portátil con el monitor serie del arduino abierto.
Si (relaystate == baja) {si (switchstate == alta || switchstate2 == HIGH) {//if el botón físico en la aplicación presiona o si (timeElapsed > intervalo) / / si más de un segundo ha pasado desde la vez anterior se pulsa un botón, ejecutar el código y cambiar el estado del relé. {relaystate = alto; digitalWrite (D8, alto); digitalWrite (D4, alto); terminal.println ("luz del dormitorio encendida"); terminal.flush(); delay(5); timeElapsed = 0; / / reiniciar el contador a 0 para el conteo vuelve a...} }
Else {delay(5); / pequeño retraso para mejorar estabilidad}}
Si el relé está en posición off (bajo), encenderlo si se presiona el botón de la aplicación de blynk o se presiona el botón físico. Cambiar el estado de la variable relaystate al / / de la impresión al blynk app terminal widget que está en la luz del dormitorio.
else if (relaystate == HIGH) {si (switchstate == alta || switchstate2 == HIGH) {si (timeElapsed > intervalo) / / si más de un segundo ha pasado desde la vez anterior se pulsa un botón, ejecutar el código y cambiar el estado del relé.
{
relaystate = bajo; terminal.println ("luz de la habitación apagada"); terminal.Flush(); digitalWrite (D8, LOW); digitalWrite (D4, LOW); Delay(5); timeElapsed = 0; } }
Else {delay(5);}}
Si el relé está en posición de, apagar si se presiona el botón de la aplicación de blynk o se presiona el botón físico. Cambiar el estado de la variable relaystate en off / / al blynk app terminal widget que la luz del dormitorio está ahora fuera de impresión.
}
También se adjunta el código en un archivo separado, no copiar pegar como ruinas la disposición.