Ha llegado el libro que estaba esperando: conozca Arduino a través de múltiples prácticas ordenadas por nivel de dificultad.
En esta segunda edición se ahonda en el desarrollo de muchas de las prácticas expuestas en la primera edición del libro, pero se emplea el novedoso Arduino MKR 1010. Mucho más potente y dotado de un módulo de conexión WiFi, Arduino MKR 1010 le permitirá adentrarse en el mundo del internet de las cosas (IoT).
Asimismo, en esta guía de autoaprendizaje se presentan nuevas herramientas de desarrollo hardware, como el sistema
Grove, que evita el cableado de componentes, y los “bricks”, el método revolucionario en el terreno educativo de la
electrónica. En cuanto al software, se muestran las plataformas IoT más relevantes en la actualidad. ThingSpeak, Adafruit IO o Blynk integran los valores captados por diferentes sensores a través de Arduino 1010 para mostrarlos ordenada y gráficamente en un PC, una tablet o un móvil.
Además, se dedica un capítulo completo a las comunicaciones Bluetooth y al desarrollo de aplicaciones para Android
utilizando App Inventor 2, así como se incluye otro capítulo sobre las comunicaciones LoRaWAN, tratadas con un ejemplo práctico y didáctico por medio de Arduino MKR 1300. TTN y Ubidots se muestran como ejemplos de utilización básica.
Con este libro, iniciarse en el internet de las cosas sin perder de vista la sencillez de la programación con Arduino, es posible.
Consiga ya su ejemplar, disfrute de su enfoque práctico y conozca las herramientas que le permitirán innovar en el desarrollo de sus proyectos.
Prólogo………………………………………………………………………………….. 13
Agradecimientos…………………………………………………………………….. 15
Empezando con Arduino MKR…………………………………………………… 17
1.1 ¿Qué es Arduino y para qué sirve?………………………………………… 17
1.2 Configuración e instalación…………………………………………………… 22
1.2.1 Instalación del entorno de desarrollo ……………………………. 22
1.2.2 Instalación de controladores para el MKR 1010……………… 24
1.3 Una primera práctica: parpadeo de un LED…………………………….. 26
1.4 La familia Arduino MKR………………………………………………………… 33
2. El lenguaje de programación de Arduino………………………………….. 51
2.1 Introducción al concepto de programación…………………………….. 51
2.2 Cuerpo de un programa en Arduino………………………………………. 54
2.2.1 Estructuras…………………………………………………………………. 54
2.2.2 Variables…………………………………………………………………….. 56
2.2.3 Operadores aritméticos, lógicos y booleanos…………………. 62
2.2.4 Estructuras de control: condicionales y ciclos…………………. 63
2.3 Funciones……………………………………………………………………………. 69
2.4 Librerías……………………………………………………………………………… 70
3. Transmisión en serie. Pines analógicos y digitales……………………… 75
3.1 Monitor serie………………………………………………………………………. 75
3.2 Pines digitales……………………………………………………………………… 77
3.2.1 Funcionamiento de los interruptores, pulsadores
y potenciómetros ……………………………………………………………….. 79
3.2.2 Memoria FlashStorage…………………………………………………. 102
3.2.3 Modulación por amplitud de pulsos PWM …………………….. 106
3.2.4 Funcionamiento de un pequeño altavoz ……………………….. 109
3.2.5 Introducción a las interrupciones en Arduino ………………… 116
3.3 Entradas analógicas……………………………………………………………… 122
4. Sensores y actuadores………………………………………………………….. 131
4.1 Sensor de temperatura DS18B20…………………………………………… 132
4.2 Relé para controlar dispositivos de corriente alterna……………….. 139
4.3 Sensor ultrasonidos HC-SR04………………………………………………… 143
4.4 Servomotor…………………………………………………………………………. 148
4.5 Termómetro de infrarrojos MLX90614…………………………………… 153
4.6 Sensor micrófono………………………………………………………………… 158
4.7 Control remoto y receptor IR………………………………………………… 162
4.8 Sensor de luz LDR………………………………………………………………… 170
4.9 Detector de obstáculos con IR………………………………………………. 175
4.10 Pantallas gráficas TFT…………………………………………………………. 180
5. Comunicaciones inalámbricas Bluetooth………………………………….. 191
5.1 Comunicaciones inalámbricas Bluetooth………………………………… 191
5.1.1 Tipos de módulos Bluetooth…………………………………………. 192
5.1.2 Comandos AT……………………………………………………………… 193
5.1.3 Conexión y configuración de Bluetooth HC-05
a MKR 1000………………………………………………………………………… 195
5.2 Control de un led con BlueTerm ……………………………………………. 1985.3 App Inventor 2 y MKR 1010………………………………………………….. 202
5.3.1 Funcionamiento básico de App Inventor 2……………………… 203
5.3.2 Encendido y apagado de un led…………………………………….. 205
6. Extender Arduino MKR con shields…………………………………………. 217
6.1 Arduino MKR env shield……………………………………………………….. 217
6.2 Arduino MKR relay proto shield…………………………………………….. 227
6.2.1 EL RTC interno del MKR……………………………………………….. 228
6.2.2 Aplicación completa con RTC y Shield Relay……………………. 231
6.3 Arduino MKR motor shield……………………………………………………. 233
6.3.1 Servomotores……………………………………………………………… 237
6.3.2 Motores DC………………………………………………………………… 243
7. El sistema grove y sus módulos básicos……………………………………. 249
7.1 El sistema grove…………………………………………………………………… 249
7.2 Práctica 7.1: Funcionamiento de un led grove………………………… 254
7.3 Práctica 7.2: Funcionamiento de un pulsador
grove con zumbador………………………………………………………………….. 256
7.4 Práctica 7.3: Funcionamiento de un potenciómetro grove……….. 257
7.5 Práctica 7.4: Funcionamiento de un micrófono grove………………. 259
7.6 Práctica 7.5: Funcionamiento de un sensor de contacto………….. 261
7.7 Práctica 7.6: funcionamiento de la LDR grove…………………………. 263
7.8 Práctica 7.7: Funcionamiento del sensor de temperatura………… 265
7.9 Práctica 7.8: Funcionamiento del LCD grove…………………………… 267
7.10 Práctica 7.9: El módulo relé grove……………………………………….. 270
7.11 Práctica 7.10: El RTC (reloj en tiempo real)……………………………. 271
7.12 Práctica 7.11: El módulo PIR grove………………………………………. 274
7.13 Práctica 7.12: El módulo DHT grove…………………………………….. 278
7.14 Práctica 13: El módulo humedad grove………………………………… 281
7.15 Práctica 14: El módulo display Oled 1.12”…………………………….. 283
7.16 Práctica 7.15: el módulo display triple color E-INK 1.54”……….. 294
8. IoT Internet de las cosas……………………………………………………….. 299
8.1 Introducción al internet de las cosas……………………………………… 299
8.2 El origen del internet de las cosas………………………………………….. 301
8.3 ¿Qué es el internet de las cosas?…………………………………………… 302
8.4 Comunicación IoT………………………………………………………………… 302
8.4.1 Comunicaciones “dispositivo a dispositivo”……………………. 303
8.4.2 Comunicaciones “dispositivo a la nube”…………………………. 304
8.4.3 Comunicaciones “dispositivo a puerta de enlace”…………… 305
8.4.4 Comunicaciones “intercambio de datos
a través del back-end”………………………………………………………….. 307
8.5 El mercado………………………………………………………………………….. 308
8.6 Aplicaciones del IoT……………………………………………………………… 309
8.7 Protocolos de comunicación…………………………………………………. 312
8.7.1 Entorno doméstico………………………………………………………. 312
8.7.2 Entorno industrial……………………………………………………….. 314
8.8 Plataformas IoT……………………………………………………………………. 317
8.8.1 Thingspeak…………………………………………………………………. 319
8.8.2 IFTTT………………………………………………………………………….. 319
8.8.3 THINGER.IO………………………………………………………………… 321
8.8.4 ADAFRUIT.IO……………………………………………………………….. 322
8.8.5 Blynk………………………………………………………………………….. 323
9. Arduino MKR 1010 e IOT……………………………………………………….. 325
9.1 Características wifi del 1010………………………………………………….. 325
9.1.1 La librería WiFiNINA…………………………………………………….. 325
9.1.2 Escanear redes inalámbricas wifi ………………………………….. 329
9.1.3 Implementar un simple control de ledes por wifi……………. 330
9.2 Monitor continuo de casos de Covid-19 en España…………………. 332
9.3 ADAFRUIT.IO……………………………………………………………………….. 3419.3.1 Feeds…………………………………………………………………………. 341
9.3.2 Dashboard………………………………………………………………….. 345
9.3.3 Control de un led inalámbricamente……………………………… 353
9.3.4 Visualización remota de variables ambientales……………….. 360
9.4 Automatización con IFTTT…………………………………………………….. 370
9.5 Trabajar con ThingSpeak………………………………………………………. 381
10. Arduino MKR 1010 + Blynk ………………………………………………….. 393
10.1 ¿Cómo funciona Blynk?………………………………………………………. 394
10.2 Cómo controlar varias placas en un mismo proyecto…………….. 429
10.3 Cómo configurar placas diferentes en un mismo proyecto……… 439
10.4 Comunicación entre placas…………………………………………………. 455
11. Lorawan y Arduino MKR 1300………………………………………………. 461
11.1 Arduino MKR 1300…………………………………………………………….. 464
11.2 Comunicación entre dos Arduino MKR 1300…………………………. 467
11.3 RAK 7258. GATEWAY LORAWAN.TTN……………………………………. 472
11.4 Envío de datos de temperatura a TTN………………………………….. 484
12. Los Bricks y Arduino 1010……………………………………………………. 497
12.1 Bricks………………………………………………………………………………… 497
12.2 Bricks y Arduino MKR 1010…………………………………………………. 502
12.3 Bricks, Arduino MKR 1010 y la nube ……………………………………. 510
12.4. Visualización de valores del DHT11 en el puerto Serie………….. 513
GERMÁN TOJEIRO CALAZA
Gerardo Reino Bértoa