×

ARDUINO

Control d’accés amb contrasenya. Orgue de llums. Comparativa de editors Arduino. Projecte bon Nadal. Sensor de gas i de fums. Control de la qualitat del aire interior (CO2) amb semàfor LED.

NodeMCU

NodeMCU-ThingSpeak. ThingSpeak. NodeMCU com AccessPoint. Control de la llum de casa per web. Control de un led per el mòbil. Sistema de fitxers en ESP8266. Altura del nivell d'aigua. Avis d’alarma a Telegram. Control de la llum de casa des de Telegram. Control de la intensitat de llum de un LED per Internet. Magatzematge de temperatura i humitat en Thinger. Publicar temperatura i humitat en Google Sheets. ESP8266 i Firebase. ESP8266-BME280 Firebase. La bàscula. ESP8266 NodeMCU amb cèl·lula de càrrega..

ESP32

ESP32-CAM, exemple de prova. Esp32-Cam captura fotos per ser vistes en la WEB. Pujar fotos a un servidor FTP amb ESP32-CAM. Foto amb ESP32-CAM i Telegram. Alarma amb avis a Telegram, utilitzant la placa ESP32-CAM.

PROGRAMACIÓ

Matemàtiques. App Inventor tutorial. MicroPython en ESP8266. Visual Estudio Code per Arduino

Intel·ligència artificial

Classificador d’imatges.

SERVIDORS

Instal·lar i configurar Apache en Ubuntu. Accés a un servidor Linux remotament. Client i Servidor FTP.

MÀQUINES VIRTUALS

Màquina virtual UBUNTU. WindowsXP en Virtualbox.

ELECTRÒNICA

Simulador Multisim. Simulador Proteus.

BASE DE DADES

MySQL. Instal·lació. MySQL. Aplicacions.

JAVA

Netbeans Maven MySQL. Java+Netbeans+Maven+EclipseLink+MySQL Aplicació d’escriptori JavaFX App JavaFX amb SceneBuilder App Java-Swing
favicon
logo

Tresavis

Benvinguts al blog de tresavis de noves tecnologies i més.

Correu : tresavis3@gmail.com

facebook   Instagram   youtube   x   tiktok

☰ Pràctiques   ☰ Articles

Descripció.

En aquest article volem explicar que es i com configurar la plataforma per guardar i monitoritzar dades de sensors https://thinger.io/

La practica a realitzar es obtenir i pujar les dades de temperatura i humitat a Thinger.io.

Les dades les llegim de un sensor DHT22 connectat a la placa NodeMCU.

Thinger permet que sigui el processador del NodeMCU, per programació, el encarregat de gestionar el moment de enviar les dades a la plataforma de Internet, streaming resources.

Es especialment útil fer servir el mode de estalvi de energia del processador ESP, nomenat deep sleep.

Components.

1.- Placa NodeMCU en mode estació

2.- Sensor DHT22.

3.- Resistència de 10K Ohm.

4.- IDE de Arduino.

5.- Plataforma per guardar i monitoritzar dades Thinger.io.

presentacio

Bibliografia.

Per desenvolupar aquesta practica ens hem basat en la pàgina de ESPloradores

Thinger.io.

Thinger es una plataforma gratuïta que permet gestionar dispositius com ESP8266, Arduino, Raspberry Pi, etc, a traves de Internet. Respon al concepte de Internet de les coses, IoT, que es la interconnexió dels objectes quotidians amb Internet.

Thinger.io permet:

· Guardar i visualitzar informació rebuda dels sensors: Les dades es mostren en gràfics i també e poden exportar, per posterior anàlisis.

· Enviar informació o instruccions a dispositius: Podem configurar el nostres dispositius a traves de Internet, per exemple encendre una caldera a una temperatura prèviament establerta o fer que una porta s'obri o tanqui quan ho desitgem.

· Interactuar amb aplicacions com IFTTT: Permet crear connexions amb serveis en línia com Google Drive,Dropbox, Facebook, Twitter, YouTube, Instagram, pagines Web, correus electrònics, dades climatològiques, etc.

Limitacions de Thinger.io:

· Fem servir el mètode de Streaming Resource, en el qual, es el nostre dispositiu el que per programació ordena el enviament de dades a la plataforma Thinger.io. La plataforma només admet que les dades rebudes es guardin en un Data Bucket cada 55 segons. Si nomes volem visualitzar-les en un Dashboard, la recepció es pràcticament instantanea.

· Permet connectar un màxim de 2 dispositius. Sense limitacions en la quantitat de paràmetres a mesurar per els sensors.

· Els paràmetres rebuts en la plataforma es poden guardar en un màxim de 4 camps diferents, nomenats Data Buckets. Cada Data Bucket pot guardar dades de múltiples sensors amb una freqüència màxima de 1 minut, cada minut pot guardar una dada.

· Les dades dels sensors es poden mostrar en com màxim 4 pantalles gràfiques, que son els Dashboards.

· Es poden establir fins a 4 Endpoints que son les marques per interactuar amb els serveis en línia.

Accés a la plataforma i configuració de la connexió de un dispositiu.

El primer pas per treballar amb Thinger.io es crear un compte en la plataforma.

Una vegada entrem en la plataforma en el panel de control (Console Dashboard), podem veure el estat de la nostre compte Account Stats, Connected Devices Locations i la quantitat de dades rebudes i enviades Data Transmission.

thinger1

Connexió de un nou dispositiu en Thinger.io.

Anem en el menú de l'esquerra a Devices i Add Device i introduïm les dades del nou dispositiu:

Device Id: Es el nom que escollim per identificar la conexió de thinger.io amb el dispositiu.

Device description: Una breu descripció de la connexió.

Device credentials: La clau de seguretat per establir la conexió entre thinger.io i el dispositiu.

thinger2

Ja tenim afegit el nou dispositiu DHT22.

thinger3

Circuit elèctric.

Esquema realitzat gràcias a la aplicació de circuito.io

circuit

Algoritme.

Quan s'inicia la placa, es connecta per WiFi amb el router, la connexió es en mode Station.

A continuació es realitza la connexió amb Thinger.io.

El sensor DHT22 llegeix la temperatura i la humitat, si son dades errònies, torna a prendre noves mesures.

Si les dades son correctes les envia a un Data Bucket de Thinger.io. El mètode per enviar les dades es thing.stream(temperatura, humitat). La restricció es que nomes podem pujar les dades cada 55 segons.

La placa als 10 segons de estar encesa, entra en mode Deep Sleep.

Està en mode Deep Sleep 2'20", que son 140*10^6 us, igual a 140 segons, després es reinicia la placa i torna estar activa 10".

Únicament envia una dada per cicle de 10".

La librería per Thinger es thinger.io by Alvaro Luis Bustamante.

Codi.

Thinger.ino

/*
 Lectura  de valors de temperatura y humitat del sensor DHT22 i placa 
 NodeMCU utilitzan la funció ESP.deepSleep() i monitorizació en la plataforma www.thinger.io

 El temps que està el microprocesador en repos es de 140*10^6 us = 140 segundos.
 El temps per realitzar la conexió WiFi, conexió amb Thinger.io, realitzar
 le mesures de temperatura i humitat i enviar-lo a thinger.io es de 10000 ms = 10 segundos
 */

#include <ESP8266WiFi.h>       //Llibrería de connexió WiFi
#include <ThingerESP8266.h>    //Llibrería de la plataforma thinger.io
#include "DHT.h"               //Llibrería del sensor DHT22

// Paràmetres del conexió amb thinger.io
#define usuari "josep"
#define device_Id "DHT22"
#define device_credentials "12345678"

ThingerESP8266 thing(usuari, device_Id, device_credentials);

// Paràmetres del DHT 
#define DHTPIN D1
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);

// Temps de Deep Sleep del ESP8266 (en microsegons)2'20"
uint32_t SLEEP_TIME = 140e6;

// Parámetres de conexió WiFi
const char WiFi_ssid[]="mirablau";
const char WiFi_password[]="Cla1DeCasa";

// Variables globals
float h;      //humitat
float t;      //temperatura

void setup() {

 // Inicialització del DHT22  
  dht.begin();

  // Inicialització de la WiFi per comunicar-se amb la API
  thing.add_wifi(WiFi_ssid, WiFi_password);

  // Recurs que permet la lectura de dades des de la API
  thing["DHT22"] >> [](pson& out){
    out["Temperatura"] = t;
    out["Humitat"] = h;
    };
  }

void loop() {
  thing.handle();

  float t_NOverificada = dht.readTemperature();
  float h_NOverificada = dht.readHumidity();

  //Verifica que las lectures son correctes
  if (isnan(t_NOverificada) || isnan(h_NOverificada)) { 
    return;
  }
  else{
    t = t_NOverificada;
    h = h_NOverificada;
    thing.stream(thing["DHT22"]);  //Si les lectures son vàlidas, les envía a thing.io
  }
  //despres de 10" el procesador es posa a dormir
  //i estarà dormin 2.20'
  if (millis() >= 10000){        
    ESP.deepSleep(SLEEP_TIME, WAKE_RF_DEFAULT);
    }
}

Tenim que posar els propis paràmetres per la connexió tan de WiFi com també a Thinger.io, com es mostra en la següent imatge:

thinger4

Connexió i magatzematge de dades.

Pugem el codi a la placa des de el IDE de Arduino i el port sèrie.

Amb la placa en funcionament, en la plataforma de thinger.io podem comprovar que la connexió es exitosa. El dispositiu DHT22 esta connectat (Connected). Si no s'ha iniciat veiem la etiqueta Disconnected.

thinger4

Si cliquem sobre el dispositiu, tenim mes detalls se la connexió. Si mirem la consola del dispositiu DHT22, es mostra el tràfic de dades entre la placa i thinger.io:

thinger5

Registrem les dades en un Data Bucket.

Amb el dispositiu connectat, tenim que registrar les dades en un Data Bucket, per que quedin guardades. Seleccionem Data Bucket i emplenem tots els camps.

Quan volem crear un Data Bucket o un Dashboard, Thinger.io intenta connectar-se a la placa per veure els camps de dades (temperatura i humitat), al estar la nostre placa nomes 10 segons activa cada 2'30". No pot funcionar. Tenim que modificar el temps de activitat de la placa de 10" a 1000" que son 1000000 milisegons. Després tenim que tornar canviar-ho.

thinger5

Monitorització de les dades.

Per crear una pantalla gràfica de visualització, seleccionem Dashboards. Una vegada plens tots el camps. A dins de la pantalla gràfica podem inserta els següents elements (Widget Settinng) de representació gràfica:

> Time Series Chart. Uneix en una gràfica continua les mesures guardades es un Data Bucket en un interval de temps.

> Donut Chart. Gràfic de dònut per representar un únic valor.

> Progressbar. Gràfic de barra per representar un únic valor, per exemple l'últim.

> Google Map. Mapa de Google amb la localització del dispositiu.

> Image/MJPEG. Imatge des de una URL, per exemple imatge obtinguda per una vídeo càmera via Internet.

> Text/Value. Un únic valor de text o numèric.

> Clock. Rellotge.

En Widget Settings emplenem els camps de la següent manera:

widget

Resultat final.

harware
final

Contingut.


Nosaltres

harware
final
harware
mafalda

Antonio Machado.

Y cuando llegue el día del último vïaje,

y esté al partir la nave que nunca ha de tornar,

me encontraréis a bordo ligero de equipaje,

casi desnudo, como los hijos de la mar.


mafalda2

llibres

Tags

Noves tecnologies WEB Arduino Domótica MycroPython NodeMCU IoT Java ESP8266 Lora C++ Programació Server-Client