×

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

Llegir temperatura i humitat i pujar les dades al núvol.

Descripció:

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.

Components:

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.

Circuit:

Creat online amb circuito.io

NodeMCU
Resultat:

La pantalla OLED, mostra la temperatura i la humitat:

NodeMCU
ThingSpeak:

La web de ThingSpeak, motoritza les dades en forma de gràfiques:

NodeMCU
Codi:
TermometreNuvol.ino
          

#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); 
}
          
        
Configurar ThingSpeak:

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.

NodeMCU

Comments 10

Contingut.


Nosaltres

TresAvis es un grup d’amics, jubilats i avis. Tenim un “hoby”, el estudi de les noves tecnologies.

anem de prima anem de prima
Les nostres fotos .
anem de prima
anem de prima
anem de prima
anem de prima
anem de prima
anem de prima

Tags

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