Lector RFID rc522

Lector y tags RFID proyecto Arduino

El KIT de Lector RFID rc522 que se vende genéricamente en las tiendas online incluye una tarjeta y un tag RFID para realizar tus experimentos y desarrollar tu proyecto Arduino.

Lector y tags RFID proyecto ArduinoEn el caso de los kits RFID de menor costo, si bien puedes utilizarlos igualmente para desarrollar tu aplicación, debes tomar en cuenta que la sensibilidad del lector RFID es tan baja que es prácticamente inutilizable en la realidad:

Debes PEGAR (menos de un centímetro de distancia) tanto la tarjeta como el tag RFID para que el lector pueda reconocerlo.

Esta falta de sensibilidad tornaría imposible algunos proyectos donde el lector está escondido dentro de una pared o puerta. ¡Está hecha la alerta!

Con respecto al voltaje, estos módulos utilizan 3.3volts. En cuanto a compatibilidad, pueden leer las tarjetas mifare1 S50, mifare1 S70, mifare UltraLight, mifare Pro y las mifare Desfire.

Agregando el Lector RFID rc522 a nuestro proyecto Arduino

Como ya es costumbre, hay una libreria disponible para simplificar el manejo del lector RFID en nuestros proyectos Arduino.

Debes descargar e incorporar a tu programa la libreria MFRC522. Podrás hacerlo desde el IDE oficial de Arduino, con la opción de Manage Libraries.

Funcionalidad básica del lector RFID RC522

El siguiente proyecto Arduino demostrará la funcionalidad básica del lector RFID RC522.

En esta ocasión lo he conectado a un WEMOS D1 R2, por lo que los pines declarados para su conectividad pueden ser distintos a tu caso particular:

#include <ESP8266WiFi.h>
#include <SPI.h>
#include <MFRC522.h>

#define RST_PIN 5 // RST-PIN for RC522 - RFID - SPI - Modul GPIO5 
#define SS_PIN  4  // SDA-PIN for RC522 - RFID - SPI - Modul GPIO4

MFRC522 mfrc522(SS_PIN, RST_PIN);

void setup() {
  Serial.begin(115200);
  SPI.begin();           // Init SPI bus
  mfrc522.PCD_Init();    // Init MFRC522 
  delay(1000);
  Serial.println("TEST Lector RFID rc522!");
}
void loop() {
  // Esperar presencia de nueva tarjeta
  if (!mfrc522.PICC_IsNewCardPresent()) {
    delay(50);
    return;
  }
  // Esperar lectura de tarjeta
  if (!mfrc522.PICC_ReadCardSerial()) {
    delay(50);
    return;
  }
  // Mostrar detalles tag/tarjeta
  Serial.print(F("UID tarjeta:"));
  dump_byte_array(mfrc522.uid.uidByte, mfrc522.uid.size);
  Serial.println();
}

// Rutina de ayuda para pasar un array de bytes a sus valores hexa
void dump_byte_array(byte *buffer, byte bufferSize) {
  for (byte i = 0; i < bufferSize; i++) {
    Serial.print(buffer[i] < 0x10 ? " 0" : " ");
    Serial.print(buffer[i], HEX);
  }
}

Este código nos permitirá testear el lector de tarjetas y tags RFID. Quedará en vuestras manos (o un nuevo proyecto Arduino en el futuro) poner el lector RFID rc522 en buen uso como parte de algún sistema más complejo.

Medir consumo de corriente con Arduino (parte 2)

medidor-de-corriente-casa-arduino-wifi

Este módulo ESP8266 compatible con Arduino realiza una lectura de los amperes con el consumo de corriente de mi casa, cada un segundo.

lector de consumo watts con ArduinoEn el artículo anterior hay una explicación del hardware, así como enlaces a mi tienda online favorita, Amazon.com, para que vean sus precios y compra.

El ESP8266  almacena el dato obtenido segundo a segundo en un array de 180 valores que va rotando para tener siempre los últimos 3 minutos de consumo y así poder graficarlos.

A su vez, almacena en otro array el promedio de consumo cada 3 minutos, para tener así una segunda gráfica con el consumo de las últimas 9 horas.
Continuar leyendo “Medir consumo de corriente con Arduino (parte 2)”

Medir consumo de corriente con Arduino (parte 1)

esp8266-y-LCD-medidor-corriente-alterna-arduino

Estoy haciendo un sistema IOT que intercomunica diversos controladores compatibles con Arduino entre sí para recopilar información de interés.

sensor-consumo-electrico-watts-arduinoEntre otros datos, el sistema recopila el consumo de corriente de mi casa y lo despliega en watts y amperes, refrescando la información en una pantalla LCD a cada segundo y graficando vía WEB tanto “en tiempo real” los últimos 3 minutos como el consumo de las últimas 9 horas.

En el futuro, planeo agregar otras gráficas en el servidor web, incluyendo consumo diario y mensual.
Continuar leyendo “Medir consumo de corriente con Arduino (parte 1)”

Pantalla OLED SSD1306

graficas e información en pantalla OLED SSD1306

Las tiendas online están saturadas con pantallas OLED de 0.96 pulgadas basada en el controlador SSD1306 que resulta ideal para utilizar con nuestros proyectos Arduino.

Pantalla OLED para proyecto Arduino 128x64Algunas propuestas incluyen OLED monocromo, otras con tintes de un color, o incluso como esta pantalla OLED que estamos utilizando aquí, tiene un area superior de 16 pixeles de grosor de la pantalla en OLED amarillo y el resto en OLED celeste.

El costo es razonable, usualmente inferior a los 10 dólares por pantalla OLED.

En cuanto a su calidad de funcionamiento, la visibilidad es excepcional, como corresponde a la tecnología OLED, pero no descarten un poco de luminancia  perdida en las áreas más utilizadas luego de un par de meses de uso.
Continuar leyendo “Pantalla OLED SSD1306”

Bosch BME280

Si quieres medir la Temperatura, Humedad y Presión, entonces el sensor BME280 de Bosch es una versátil solución para integrar en tu proyecto Arduino.

Con un costo inferior a los 10 USD en la tienda de amazon.com, el BME280 es perfectamente accesible e incluso preferible a otras soluciones mas toscas pero clásicas como el viejo DHT22.

El BME280 ofrece una capacidad de programación muy refinada que permite definir valores de Oversampling independiente para temperatura, humedad y presión, tiempo de standby o incluso el nivel de filtro en el resultado para disminuir valores erróneos.

El resultado es una capacidad de entrega de datos con insuperable precisión, prácticamente en tiempo real y con muy poca inercia.

A modo de ejemplo, puedes respirar a 10 o 15 centímetros del sensor BME280 y ver en tiempo real como sube y baja tanto temperatura como humedad en el aire.
Continuar leyendo “Bosch BME280”