Show Menu
Cheatography

Arduino uno: Manejo de sensores y comunicacionales Cheat Sheet (DRAFT) by

Información sobre el manejo de sensores con arduino uno, así como información sobre la comunicación Bluetooth e IoT.

This is a draft cheat sheet. It is a work in progress and is not finished yet.

Sensores

Un sensor es todo aquello que tiene una propiedad sensible a una magnitud del medio, y al variar esta magnitud también varia con cierta intensidad la propiedad, es decir, manifiesta la presencia de dicha magnitud, y también su medida

Sensores temper­atura LM35

float leerGr­adosC() {
int dato;
float c;
//leemos los datos analogicos del sensor
dato = analogRead (A0);
//Conv­ertimos el dato de entrada en grados C
c = (500.0 * dato / 1024);
return c;
}

Sensor ultras­onico HC-SR04

int trigPin = 8;
int echoPin = 9;
long duration; //tiempo de ida/vuelta
int cm = 0;

void setup(){
  Serial.begin(9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
}

void loop(){
digitalWrite(trigPin, LOW);
delayMircoseconds(2);

digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);

duration = pulseIn(echoPin, HIGH);

duration = duration/2;
cm=duration/29;
Serial.print("Distancia: ");
Serial.println(cm);
delay(100);

}

Bluetooth

Bluetooth es una especi­fic­ación industrial para Redes Inalám­bricas de Área Personal (WPAN) que posibilita la transm­isión de voz y datos entre diferentes dispos­itivos mediante un enlace por radiof­rec­uencia en la banda ISM de los 2.4 GHz.

Internet de las cosas

El internet de las cosas es un concepto que se refiere a una interc­onexión digital de objetos cotidianos con internet.

Ejemplo IoT con sensor de temper­atura

#include <Ethernet.h>
#include <SPI.h>

// Configuracion del Ethernet Shield
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFF, 0xEE}; // Direccion MAC
byte ip[] = { 192,168,1,100 }; // Direccion IP del Arduino
byte server[] = { 192,168,1,6 }; // Direccion IP del servidor
EthernetClient client; 
float temperatura;
int analog_pin = 0;

void setup(void) {
  Ethernet.begin(mac, ip); // Inicializamos el Ethernet Shield
  delay(1000); // Esperamos 1 segundo de cortesia
}

void loop(void) {
  temperatura = analogRead(analog_pin);
  temperatura = 5.0temperatura100.0/1024.0;
  //Display in Serial Monitor
  Serial.print(temperatura); //Return temperature to Monitor
  Serial.println(" oC");
  // Proceso de envio de muestras al servidor
  Serial.println("Connecting...");
  if (client.connect(server, 80)>0) {  // Conexion con el servidor
    client.print("GET /tutoiot/iot.php?valor="); // Enviamos los datos por GET
    client.print(temperatura);
    client.println(" HTTP/1.0");
    client.println("User-Agent: Arduino 1.0");
    client.println();
    Serial.println("Conectado");
  } else {
    Serial.println("Fallo en la conexion");
  }
  if (!client.connected()) {
    Serial.println("Disconnected!");
  }
  client.stop();
  client.flush();
  delay(60000); // Espero un minuto antes de tomar otra muestra
}
 

Sensor IR LM393 (detector obstac­ulos)

const int sensorPin = 9;
 
void setup() {
  Serial.begin(9600);   //iniciar puerto serie
  pinMode(sensorPin , INPUT);  //definir pin como entrada
}
 
void loop(){
  int value = 0;
  value = digitalRead(sensorPin );  //lectura digital de pin
 
  if (value == HIGH) {
      Serial.println("Detectado obstaculo");
  }
  delay(1000);
}

Sensor de humedad FC-28

const int sensorPin = 10;
 
void setup()
{
   Serial.begin(9600);
   pinMode(sensorPin, INPUT);
}
 
void loop()
{
   int humedad = digitalRead(sensorPin);
 
   //mandar mensaje a puerto serie en función del valor leido
   if (humedad == HIGH)
   {
      Serial.println("Encendido");   
      //aquí se ejecutarían las acciones
   }
   delay(1000);
}

Fotore­sis­tencia LDR

int valorLDR = 0;
int pinLDR = A0;

void setup()
{
Serial.begin(9600);
}

void loop()
{
valorLDR = analogRead(pinLDR);
Serial.println(valorLDR);
}

Pasos para IoT en Arduino

* Conseguir una Ethernet shield compatible con Arduino uno.
* Crear una base de datos.
* Programar un servido.
* Programar la tarjeta Arduino.

Datos

Nombre
Alvarado Anaya Adrian Javier
Matriculo
1253317
Fecha
23 de Mayo de 2020
 

Sensor de movimiento PIR

const int LEDPin= 13;
const int PIRPin= 2;
 
void setup()
{
  pinMode(LEDPin, OUTPUT);
  pinMode(PIRPin, INPUT);
}
 
void loop()
{
  int value= digitalRead(PIRPin);
 
  if (value == HIGH)
  {
    digitalWrite(LEDPin, HIGH);
    delay(50);
    digitalWrite(LEDPin, LOW);
    delay(50);
  }
  else
  {
    digitalWrite(LEDPin, LOW);
  }
}

Potenc­iometro

const int analogPin = A0;
int value;      //variable que almacena la lectura analógica raw
int position;   //posicion del potenciometro en tanto por ciento
 
void setup() {
}
 
void loop() {
   value = analogRead(analogPin);          // realizar la lectura analógica raw
   position = map(value, 0, 1023, 0, 100);  // convertir a porcentaje
 
   //...hacer lo que se quiera, con el valor de posición medido
 
   delay(1000);
}

Conexion Bluetooth

const int led = 13;
 
int option;
 
void setup(){
  Serial.begin(9600);
  pinMode(led, OUTPUT); 
}
 
void loop(){
  //si existe información pendiente
  if (Serial.available()>0){
    //leeemos la opcion
    char option = Serial.read();
    //si la opcion esta entre '1' y '9'
    if (option >= '1' && option <= '9')
    {
      //restamos el valor '0' para obtener el numero enviado
      option -= '0';
      for(int i=0;i<option;i++){
         digitalWrite(led, HIGH);
         delay(100);
         digitalWrite(led, LOW);
         delay(200);
      }
    }
  }
}