Está en la página 1de 8

Alumna:

Erika Anays Morales Flores

Maestro:
Elías Kaleb Arreola Aguilar

Grado:
5-C

Matricula:
220430

Materia:
Aplicaciones de IOT

Fecha de entrega:
11 de febrero de 2024

Comunicación Serial
Investigación acerca de la comunicación serial:
La comunicación serial es un método fundamental para que los microcontroladores,
como Arduino, intercambien datos con otros dispositivos, como computadoras,
sensores o actuadores. En el contexto de Arduino, la comunicación serial se refiere
principalmente al uso de puertos serie para enviar y recibir datos de y hacia otros
dispositivos.
Arduino utiliza principalmente dos protocolos de comunicación serial:
UART (Universal Asynchronous Receiver/Transmitter): Es un protocolo de
comunicación serial asíncrono, lo que significa que no se requiere una señal de reloj
sincronizada entre el transmisor y el receptor. En Arduino, los pines digitales 0 (RX) y
1 (TX) están conectados al UART del microcontrolador, lo que permite la
comunicación serial con otros dispositivos, como un ordenador a través del puerto
USB.
I2C (Inter-Integrated Circuit): Es un protocolo de comunicación serial síncrono que
permite la comunicación entre varios dispositivos utilizando solo dos cables: uno para
la línea de datos (SDA) y otro para la línea de reloj (SCL). Arduino puede actuar como
un maestro o un esclavo en una red I2C y puede comunicarse con múltiples
dispositivos utilizando direcciones únicas.
Para implementar la comunicación serial en Arduino, se utilizan las funciones
proporcionadas por la biblioteca Serial. Por ejemplo, para enviar datos a través del
puerto serie, se puede utilizar la función Serial.write() o Serial.print(). Para recibir
datos, se puede utilizar Serial.read().
Es importante destacar que la velocidad de transmisión (baud rate) es un parámetro
clave en la comunicación serial, ya que determina la velocidad a la que se transmiten
los datos entre los dispositivos. Este valor debe ser el mismo en el Arduino y en el
dispositivo con el que se comunica para garantizar una comunicación adecuada.
La comunicación serial es fundamental para una amplia gama de proyectos Arduino,
desde la adquisición de datos de sensores hasta el control de dispositivos externos.
Al comprender y utilizar efectivamente la comunicación serial, los desarrolladores
pueden crear sistemas más complejos e interactivos con sus proyectos de Arduino.
Simulación de un termostato que controle un dispositivo de calefacción
Código:
SKETCH.INO
// Definición de pines
const int sensorTemperatura = A0; // Pin analógico para el sensor de temperatura
const int pinCalefaccion = 2; // Pin digital para el control de la calefacción

// Variables de temperatura
const int temperaturaEncendido = 25; // temperatura para encender la calefacción (en
grados Celsius)
const int temperaturaApagado = 22; // temperatura para apagar la calefacción (en
grados Celsius)

void setup() {
// Inicialización de la comunicación serial
Serial.begin(9600);

// Configuración del pin de la calefacción como salida


pinMode(pinCalefaccion, OUTPUT);
}

void loop() {
// Lectura de la temperatura
int lecturaTemperatura = analogRead(sensorTemperatura);

// Conversión de la lectura del sensor a grados Celsius


float temperaturaCelsius = (lecturaTemperatura * 5.0 / 1023.0) * 100.0;

// Impresión de la temperatura en el monitor serial


Serial.print("Temperatura: ");
Serial.print(temperaturaCelsius);
Serial.println(" °C");
// Control de la calefacción
if (temperaturaCelsius < temperaturaApagado) {
// Encender la calefacción si la temperatura es menor que el umbral de apagado
digitalWrite(pinCalefaccion, HIGH);
Serial.println("Encendiendo calefacción...");
} else if (temperaturaCelsius > temperaturaEncendido) {
// Apagar la calefacción si la temperatura es mayor que el umbral de encendido
digitalWrite(pinCalefaccion, LOW);
Serial.println("Apagando calefacción...");
}

// Esperar 1 segundo antes de la próxima lectura


delay(1000);
}

DIAGRAM.JSON
{
"version": 1,
"author": "ErikaAnays",
"editor": "wokwi",
"parts": [
{ "type": "wokwi-breadboard", "id": "bb1", "top": 304.2, "left": -131.6, "attrs": {} },
{ "type": "wokwi-arduino-uno", "id": "uno", "top": 67.8, "left": 47.4, "attrs": {} },
{ "type": "wokwi-potentiometer", "id": "pot1", "top": 392.3, "left": -48.2, "attrs": {} },
{ "type": "wokwi-resistor", "id": "r1", "top": 465.6, "left": 306.65, "rotate": 90, "attrs": {
"value": "11000" } },
{ "type": "wokwi-resistor", "id": "r2", "top": 465.6, "left": 316.25, "rotate": 90, "attrs": {
"value": "11000" } },
{ "type": "wokwi-resistor", "id": "r3", "top": 465.6, "left": 287.45, "rotate": 90, "attrs": {
"value": "11000" } },
{ "type": "wokwi-led-rgb-common-anode", "id": "rgb1", "top": 388, "left": 308.3,
"attrs": {} }
],
"connections": [
["uno:2", "bb1:36b.j", "green", ["$bb"]],
["bb1:48b.h", "rgb1:R", "", ["$bb"]],
["bb1:47b.h", "rgb1:G", "", ["$bb"]],
["bb1:46b.h", "rgb1:B", "", ["$bb"]],
["pot1:SIG", "uno:A0", "orange", ["v0"]],
["pot1:VCC", "bb1:bp.9", "red", ["v0"]],
["pot1:GND", "bb1:bn.7", "black", ["v0"]],
["uno:5V", "bb1:bp.27", "red", ["v0"]],
["uno:GND.3", "bb1:bn.28", "black", ["v0"]],
["r1:1", "bb1:47b.h", "", ["$bb"]],
["r1:2", "bb1:bn.38", "", ["$bb"]],
["r2:1", "bb1:48b.h", "", ["$bb"]],
["r2:2", "bb1:bn.39", "", ["$bb"]],
["r3:1", "bb1:45b.h", "", ["$bb"]],
["r3:2", "bb1:bn.36", "", ["$bb"]]
],
"dependencies": {}
}
Evidencia:

También podría gustarte