Código de Arduino - Obtener JSON desde placa Arduino / IoT

<<>>
Imágen de perfil
Val: 8
Ha aumentado su posición en 5 puestos en Arduino (en relación al último mes)
Gráfica de Arduino

Obtener JSON desde placa Arduino / IoTgráfica de visualizaciones


Arduino

Publicado el 28 de Noviembre del 2018 por Esteban
2.312 visualizaciones desde el 28 de Noviembre del 2018
module-wifi-nodemcu-v3

Este código fue utilizado basándose en la idea del IoT (Internet de las cosas).

Básicamente, manejar el comportamiento de la placa (NodeMCU:ESP8266 en este caso) sobre los periféricos que se conecten a ella, con los valores que posee el JSON en la página web http://plazaapp.herokuapp.com/luces/status

Estos se modifican en la página principal http://plazaapp.herokuapp.com, de ahí la placa se conecta a Internet, obtiene el JSON, y de acuerdo a los valores, enciende, apaga, o cambia los valores RGB de los leds que en este caso se utilizaron, puestos en la maqueta de la imagen.

Se utiliza la placa NodeMCU:ESP8266 por la facilidad de lograr conectarse a la red, debido a que viene con esta funcionalidad integrada, gracias el modulo ESP8266.
photo_2018-11-28_10-13-00

Requerimientos

- Placa Arduino o de cualquier otro fabricante con posibilidad de conectarse a internet
- Arduino IDE
- Cable USB

Soluciones de los errores más comunes: (Son las descargas necesarias para funcionar con la placa NodeMCU: ESP8266)
- https://arduino.stackexchange.com/questions/54373/nodemcu-arduino-ide-dynamicjsonbuffer-was-not-declared-in-this-scope/54377
- https://stackoverflow.com/questions/50080260/arduino-ide-cant-find-esp8266wifi-h-file
- https://github.com/FirebaseExtended/firebase-arduino/issues/354

1.0

Publicado el 28 de Noviembre del 2018gráfica de visualizaciones de la versión: 1.0
2.313 visualizaciones desde el 28 de Noviembre del 2018
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <ArduinoJson.h>
 
/*se define los pines a utilizar llevando en cuenta que los puertos 
del nodemcu no son los mismos que del integrado esp8266*/
 
#define D0   16 //GPIO16 - WAKE UP    perim
#define D1   5  //GPIO5               inter
#define D2   4  //GPIO14              par_r
#define D5   14 //GPIO14 - HSCLK      par_g
#define D6   12 //GPIO12 - HMISO      par_b
 
// WiFi Parameters
const char* ssid = "Nombre de la red";
const char* password = "Contraseña de la red";
 
void setup() {
  Serial.begin(115200);
 
  //se configura los pines a utilizar como salida
  pinMode(D0,OUTPUT);  //D0 perim
  pinMode(D1,OUTPUT);  //D1 inter
  pinMode(D2,OUTPUT);  //D2 park_r
  pinMode(D5,OUTPUT);  //D5 park_g
  pinMode(D6,OUTPUT);  //D6 park_b
 
 
  WiFi.begin(ssid, password);
 
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting...");
  }
}
 
void loop() {
  // Check WiFi Status
  Serial.println("Conectando...");
  if (WiFi.status() == WL_CONNECTED) {
    HTTPClient http;  //Object of class HTTPClient
    http.begin("http://plazaapp.herokuapp.com/luces/status");
    Serial.println("Obteniendo...");
    int httpCode = http.GET();
    //Check the returning code                                                                  
    if (httpCode > 0) {
      // Parsing
      const size_t bufferSize = JSON_OBJECT_SIZE(9) + 150;
      DynamicJsonBuffer jsonBuffer(bufferSize);
      JsonObject& root = jsonBuffer.parseObject(http.getString());
      // Parameters
      Serial.println("Valores obtenidos:");
      int perim = root["perim"]; // 0
      int inter = root["inter"]; // 1
      int park = root["park"]; // 0
      int par_r = root["par_r"]; // 11
      int par_g = root["par_g"]; // 21
      int par_b = root["par_b"]; // 92
      // Output to serial monitor
      Serial.print("perim:");
      Serial.println(perim);
      Serial.print("inter:");
      Serial.println(inter);
      Serial.print("park:");
      Serial.println(park);
      Serial.print("par_r:");
      Serial.println(par_r);
      Serial.print("par_g:");
      Serial.println(par_g);
      Serial.print("par_b:");
      Serial.println(par_b);
 
      Serial.println("Trabajando sobre los leds...");
      if (perim == 1){
        analogWrite(D0,HIGH);
      }
      if (inter == 1){
        analogWrite(D1,HIGH);
      }
      if(park == 1){
        analogWrite(D2,par_r);    //luces RGB
        analogWrite(D5,par_g);
        analogWrite(D6,par_b);
      }
       if (perim == 0){
        analogWrite(D0,LOW);
      }
      if (inter == 0){
        analogWrite(D1,LOW);
      }
      if(park == 0){
        analogWrite(D2,0);
        analogWrite(D5,0);
        analogWrite(D6,0);
      }
      Serial.println("");
    }
    http.end();   //Close connection
  }
  // Delay
  delay(10000);
}



Comentarios sobre la versión: 1.0 (0)


No hay comentarios
 

Comentar la versión: 1.0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s4948