* STL Bisagra macho / STL Bisagra hembra
Electrónica Educativa
Aprendiendo robótica, electrónica e impresión 3D
miércoles, 15 de febrero de 2023
lunes, 22 de noviembre de 2021
2. Internet de las Cosas: Enviando Twitter desde Arduino vía ThingSpeak
1.- Daos de alta en https://thingspeak.com/
2.- Ahí dentro, podemos abrir un Canal para registrar los datos enviados. O hacer un link a una cuenta de Twitter para que escriba por nosotros un tweet cuando se le mande una URL. Para ambas cosas, hay que generar una URL con una clave (KEY) que nos darán en la página.
Por ejemplo, para enviar el dato de la temperatura "69" a un canal (y luego verlo a través de una aplicación móvil), la cadena sería:
https://api.thingspeak.com/update?api_key=xxxxxxxxxx&field1=69
Por ejemplo, para enviar el tweet "Hola Mundo", la cadena sería:
https://api.thingspeak.com/apps/thingtweet/1/statuses/update?api_key=XXXXXXXXXXXXX&status=Hola Mundo
3.- El código básico del programa sería el siguiente:
#include <WiFiUdp.h> //librerías necesarias para iniciar el wifi
#include <ESP8266WiFi.h> //librerías necesarias para manejar el ESP8266
#include "DHT.h" //Instalar dht sensor library de adafruit
const char* host = "api.thingspeak.com"; //declaramos el servidor al que nos conectaremos
const int httpPort = 443;
const char* ssid= "nombre_red"; //poner nombre y password de red
const char* password="pass_red";
String url; //variables donde irá la URL que enviará el arduino
String arg;
WiFiClientSecure client; //declaramos el cliente
DHT dht(D5, DHT22); //iniciamos el dht
int humedad,temperatura;
void setup()
{
//iniciamos la wifi
WiFi.begin(ssid, password);
while(WiFi.status()!=WL_CONNECTED) delay(200);
client.setInsecure();
//iniciamos el sensor
dht.begin();
}
void loop()
{
delay(3600000); //espera una hora
humedad = dht.readHumidity(); //leemos humedad
delay(2000);
temperatura = dht.readTemperature(); //leemos temperatura
//enviamos la URL con la KEY de ThingSpeak
while (!client.connect(host, httpPort)) delay(200);
url = "/apps/thingtweet/1/statuses/update?api_key=XXXXXXXXXXXXX&status="; //Sustituir XXXXX... por la Key de ThingSpeak
arg = "Temperatura " + String(temperatura) + "%0AHumedad " +String(humedad);
client.print(String("GET ") + url + arg + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");
client.stop();
}
Instalación ESP8266 en Windows y conexión a Wifi
* Archivo -> Preferencias -> Gestor URL de tarjetas adicionales…
2. Instalar el paquete de placas ESP8266 en el IDE
* Herramientas -> Gestor de Tarjetas
* Buscar el paquete “ESP8266 by Community” e instalar
3. Instalar el driver CH340 (USB-SERIAL) en el ordenador, o el driver CP2102 (según la placa que tengamos)
4. Para seleccionar la placa en el IDE (Herramientas):
* Placa “NodeMCU 1.0 12E Module”
* Debug Port “Serial”
* Programador “USBtinnyISP”
5.- El programa básico para conectar a una wifi es el siguiente:
const char* ssid= "red"; //datos de la red
const char* password="contraseña";
WiFiClient client;
void setup()
{
pinMode(D4, OUTPUT);
digitalWrite(D4, 1); //Apaga el LED integrado
WiFi.begin(ssid, password); //iniciamos la conexión
while( WiFi.status()!=WL_CONNECTED) delay(500); //hacemos la petición de entrada en la red
}
void loop()
{
digitalWrite(D4, 0); //Enciende el LED integrado
}
domingo, 21 de noviembre de 2021
Sesión III, Práctica 8: Sensores ultrasonidos en C
#include <SoftwareSerial.h>
#define echoPin 7#define trigPin 8
long duracion, distancia;
void setup()
{
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
while (!Serial) {}
Serial.println("Placa conectada");
}
void loop()
{
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duracion = pulseIn(echoPin, HIGH); //mide la duración del pulso hasta recibir el eco
distancia = duracion/58.2; //pasa la duración del pulso a cm
Serial.print(distancia);
Serial.println(" cm");
}
domingo, 14 de noviembre de 2021
Sesión II, Práctica 6: Cargando un programa en la placa
int pinled;
int pausaIda=500;int pausaVuelta=500;
void setup()
{
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
}
void loop()
{
for (pinled = 9; pinled <= 13; pinled++)
{
digitalWrite(pinled, HIGH);
delay(pausaIda);
digitalWrite(pinled, LOW);
}
for (pinled = 13; pinled >= 9; pinled--)
{
digitalWrite(pinled, HIGH);
delay(pausaVuelta);
digitalWrite(pinled, LOW);
}
}
martes, 28 de mayo de 2019
Profundiza 8: Drones
Hemos dejado un espacio de dos semanas para que los alumnos/as investiguen los tipos de dron que existen y qué módulos necesitamos para incluirlos en el chasis. Además, se han adquirido los elementos esenciales que durante este tiempo han determinado que necesitaremos para maquetar uno:
- Micro motores y hélices.
- Un acelerómetro que nos proporcionará el ángulo de inclinación del sistema.
- Un dron didáctico para observar su funcionamiento mediante la investigación.
Hemos visto los tipos de drones que existen, y con dos de ellos en las mesas del taller, hemos hecho un esquema de su funcionamiento y hemos determinado los módulos necesarios para que se mantengan en el aire en una posición estable.
La primera tarea que hemos hecho ha consistido en programar el acelerómetro que poseen estas máquinas: para ello hemos tomado el ángulo de inclinación X e Y que el módulo 6050 nos ofrecía para visualizarlo por el puerto serie. Con la condición "IF", bastante trabajada en sesiones anteriores, hemos programado el giro de un motor de dron en función del ángulo de inclinación medido:
Foto tomada desde nuestro dron en el patio del Centro |
martes, 7 de mayo de 2019
Profundiza 7: Carreras de Bluethoot
El objetivo ha sido echar una carrera entre los equipos, para lo que hemos hecho un circuito en el patio con obstáculos.
Los ajustes han consistido concretamente en añadir nuevas funciones a los botones de la aplicación del móvil, y ajustar la velocidad de cada eje del coche para afrontar mejor las rectas y curvas del circuito. Principalmente se ha mejorado la escritura analógica en los motores para el ajuste del ancho de pulso con el que giran las ruedas.
A pesar de todo... sólo ha habido un ganador: ¡incluso intercambiando los coches!
lunes, 6 de mayo de 2019
PROFUNDIZA 6: Módulos bluethoot
Hemos introducido el módulo explicando cómo se emparejan los dispositivos y cómo se comunican con la placa a través de la comunicación serial.
Tras alimentar el módulo, hemos realizado el emparejamiento con el móvil. A continuación hemos instalado una aplicación en la que se nos ofrecen distintas pantallas con botones y otras formas de interacción (a través de los sensores de inclinación del mismo) y se han sincronizado el carácter que envían por el puerto serie con el programa en C que se ha redactado en el IDE de Arduino.
Así, hemos asignado las letras "a" para avanzar, "i" izquierda...
Una vez en marcha, a varios grupos se les ha ocurrido la idea de incluir el modo "turbo" asignando un botón en el que la velocidad de lo motores sea la máxima.
¡Hemos echado carreras por los pasillos del instituto!