Utilitzem una placa NodeMCU que té Wifi integrat per llegir la temperatura i la humitat ambient i per pujar les dades obtingudes a un servidor gratuït de Internet i poder motoritzar-les. Motoritzem també incito amb un display OLED.
Placa NodeMCU de AZ Delivery, Lua Amica Module V2 ESP8266 ESP-12F WIFI. Wifi Development Board con CP2102. Sensor DHT22, sensor que lleguéis la temperatura i la humitat Display Oled de 64x128 de AZ Delivery Servidor ThingSpeak, plataforma IoT gratuïta per guardar les dades i visualitzar-les amb gràfiques de MATLAB Editor d'Arduino per programar i carregar el programa a la placa.
Creat online amb circuito.io
La pantalla OLED, mostra la temperatura i la humitat:
La web de ThingSpeak, motoritza les dades en forma de gràfiques:
#include <ThingSpeak.h> //nubol
#include <SimpleDHT.h> //sensor
#include <ESP8266WiFi.h>//wifi
#include <U8g2lib.h> //oled
// per accedir al servidor del nubol de thingSpeak
unsigned long numeroDelChannel=1229471 ;
const char * writeAPIKey= "1EBN9YYXEZD0ACMU";
const char * host="api.thingspeak.com";
const int httPort=80;
const char * ip; // la IP que obté el nodeMcu del router wifi
// definim la nostre wifi
const char* ssid = "mirablau";
const char* password = "Cla1DeCasa";
WiFiServer server(80);
// Definimos el pin digital donde se conecta el sensor
#define pinDHT22 D6
// Inicializamos el sensor DHT22
SimpleDHT22 dht22;
//15 seg de retart,thingSpeak s'actualitza cada 15 seg
#define time_delay 10000
// Definir constants de la pantalla oled
#define ANCHO_PANTALLA 128 // ancho pantalla OLED
#define ALTO_PANTALLA 64 // alto pantalla OLED
// Objecte de la clase U8g2 per oled
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE);
//////metode que prepara la pantalla////////////
void u8g2_prepare() {
u8g2.setFont(u8g2_font_6x10_tf);
u8g2.setFontRefHeightExtendedText();
u8g2.setDrawColor(1);
u8g2.setFontPosTop();
u8g2.setFontDirection(0);
}
////////////// setup()/////////////////////////
void setup() {
WiFi.begin(ssid, password);
// Iniciar pantalla OLED
u8g2.begin();
u8g2.clearBuffer();
u8g2_prepare();
while (WiFi.status() != WL_CONNECTED) {
delay(500);
//escribim en pantalla
u8g2.drawStr(1,1,"Connectant........");
}
ip=WiFi.localIP().toString().c_str();
u8g2.drawStr(1,10,"IP: ");u8g2.drawStr(20,10,ip);
u8g2.sendBuffer();
delay(2000);
}
/////////////////// loop() ///////////////////////
void loop() {
delay(3000);
//netejem la pantalla i tornem a possar la IP del nodeMCU
//u8g2.clearBuffer();
u8g2_prepare();
u8g2.drawStr(1,10,"IP: "); u8g2.drawStr(20,10,ip);
// inicialitzem la temperatura i la humitat
delay(2000);
float temperatura = 0;
float humitat = 0;
//obtenim la temperatura i la humitat
int error=SimpleDHTErrSuccess;
if(( error=dht22.read2(pinDHT22,&temperatura,&humitat,NULL))!=SimpleDHTErrSuccess){
u8g2.drawStr(1,30,"DHT22 ha fallat: "+error);
u8g2.sendBuffer();
return;
}
//tenim que convertir les variables de float a char[]
char temperaturaStr[8]; // Buffer big enough for 7-character float
char humitatStr[8];
dtostrf(temperatura, 6, 2, temperaturaStr);
dtostrf(humitat, 6, 2, humitatStr);
u8g2.drawStr(5,30,"Temperatura: ");
u8g2.drawStr(80,30,temperaturaStr);
u8g2.drawStr(5,50,"Humitat: ");
u8g2.drawStr(80,50,humitatStr);
u8g2.sendBuffer();
delay(5000);
// connectem amb el nubol
WiFiClient client;
if(!client.connect(host,httPort)){
return;
}
String url="/update?key=";
url+=writeAPIKey;
url+="&field1=";
url+=String(temperatura);
url+="&field2=";
url+=String(humitat);
url+="\r\n";
//peticio al servidor thingSpeack
client.print(String("GET ")+url+" HTTP/1.1\r\n"+
"Host: "+host+"\r\n"+
"Connection: close\r\n\r\n");
client.stop();
//pujem al nubol
ThingSpeak.setField(1,temperatura);
ThingSpeak.setField(2,humitat);
ThingSpeak.writeFields(numeroDelChannel,writeAPIKey);
//delay entre mesures 20s, el nubol s'actalitza cada 15s
delay(time_delay);
}
ThingSpeak es una plataforma de Internet que guarda dades i els motoritza en gràfiques. Es un servidor Iot (Internet de les coses, "coses connectades"). Els sensors es connecten a la plataforma mitjançant el protocol HTTP per Internet o una xarxa local.
El mar.
Havaneres.
Lloret antic.
Lloret avui.
De cala Morisca a Sa Carabera.
De Sa Carabera a Treumal.
Lloret en kayak.
Vígilancia remota.
Caixa-tpv.
Cambrer-app.
Client webApp.
Relats del banc del si no fos
Històries d'ahir
Vídeos antics de Lloret
El caiac
Contes de l'avi.
Control d’accés amb contrasenya.
Orgue de llums.
Comparativa de editors Arduino.
Projecte bon Nadal.
Control de la qualitat del aire interior (CO2) amb semàfor LED.
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 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.
La bàscula. ESP8266 NodeMCU amb cèl·lula de càrrega.
ESP32-CAM
ESP32-CAM captura fotos per ser vistes en la WEB.
Pujar fotos a un servidor FTP amb ESP32-CAM.
MicroPython en ESP8266.
Visual Estudio Code per Arduino.
Classificador d’imatges.
Instal·lar i configurar Apache en Ubuntu.
Accés a un servidor Linux remotament.
Client i Servidor FTP.
Màquina virtual UBUNTU.
WindowsXP en Virtualbox.
Multisim, simulador de circuits electrònics.
Proteus, simulador de circuits electrònics.
MySQL. Instal·lació.
MySQL. Aplicacions.
Netbeans Maven MySQL.
Java+Netbeans+Maven+EclipseLink+Mysql
Aplicació d’escriptori JavaFX
App JavaFX amb SceneBuilder
App Java-Swing
TresAvis es un grup d’amics, jubilats i avis. Tenim un “hoby”, el estudi de les noves tecnologies.






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