├── 1.1_EjemplosProyectos └── 1.1 Proyectos.pdf ├── 1.2_IntroArduino ├── 1.2 Intro Arduino.pdf ├── HolaMundo_bb.png ├── Hola_Mundo.fzz ├── Hola_Mundo │ └── Hola_Mundo.ino └── Hola_Mundo_esquema.png ├── 1.3_IntroAppInventor ├── 1.3 Introducción a MIT App Inventor.pdf ├── HolaMundoArduino.aia └── HolaMundoArduino.apk ├── 2.1_ComunicacionSerieArduino ├── 2.1 Comunicacion Serie Arduino.pdf ├── ComunicacionSerie.fzz ├── ComunicacionSerie_bb.png ├── ComunicacionSerie_esquemático.png ├── Contador │ └── Contador.ino ├── Control_PC_BrilloLED │ └── ControlPCBrilloLED.ino └── PhysicalPixel │ └── PhysicalPixel.ino ├── 2.2_ControlLED_App_BT ├── 2.2 CONTROL LED DESDE APP INVENTOR BT.pdf ├── BT-HC06-LED-SS.fzz ├── BT-HC06-LED-SS_bb.png ├── BT-HC06-LED-SS_esquemático.png ├── BT-HC06-LED.fzz ├── BT-HC06-LED_bb.png ├── BT-HC06-LED_esquemático.png ├── Bluetooth HC-06u.fzpz ├── ConfiguracionBluetooth │ └── ConfiguracionBluetooth.ino ├── HolaMundoArduinoBT.aia ├── HolaMundoArduinoBT.apk ├── HolaMundoArduinoBTVoz.aia ├── HolaMundoArduinoBTVoz.apk └── LED_BT_SS │ └── LED_BT_SS.ino ├── 3.1_ElementosComunicacion └── 3.1 Elementos de comunicación de Arduino y MIT App Inventor.pdf ├── 3.2Control_servo_App_BT ├── 3.2 Control Servomotor desde App Inventor BT.pdf ├── BT-HC06-Servo.fzz ├── BT-HC06-Servo_bb.png ├── BT-HC06-Servo_esquemático.png ├── BT_Servomotor.aia ├── Servo_Pos_BT │ └── Servo_Pos_BT.ino └── Servo_Pos_BT_SS │ └── Servo_Pos_BT_SS.ino ├── 3.3_Temperatura ├── 3.3 Enviar datos temperatura a App Inventor BT.pdf ├── BT-HC06-LM35.fzz ├── BT-HC06-LM35_bb.png ├── BT-HC06-LM35_esquemático.png ├── BT_Temperatura.aia ├── BT_Temperatura.apk ├── BT_TemperaturaCloudDB.aia └── TemperaturaBT │ └── TemperaturaBT.ino ├── 4.1_MetodologiasProyectos └── 4.1. Metodologías de proyectos.pdf ├── 4.2_HerramientasProyectos └── 4.2. Herramientas para proyectos.pdf └── README.md /1.1_EjemplosProyectos/1.1 Proyectos.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/1.1_EjemplosProyectos/1.1 Proyectos.pdf -------------------------------------------------------------------------------- /1.2_IntroArduino/1.2 Intro Arduino.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/1.2_IntroArduino/1.2 Intro Arduino.pdf -------------------------------------------------------------------------------- /1.2_IntroArduino/HolaMundo_bb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/1.2_IntroArduino/HolaMundo_bb.png -------------------------------------------------------------------------------- /1.2_IntroArduino/Hola_Mundo.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/1.2_IntroArduino/Hola_Mundo.fzz -------------------------------------------------------------------------------- /1.2_IntroArduino/Hola_Mundo/Hola_Mundo.ino: -------------------------------------------------------------------------------- 1 | /* 2 | Titilar 3 | Enciende y apaga LED por espacio de un segundo de forma repetitiva 4 | LED pin 13 5 | 6 | Jose Pujol 7 | Octubre 2017 8 | Programa basado en Blink- https://www.arduino.cc/en/Tutorial/Blink 9 | */ 10 | 11 | // declaracion de variables 12 | int ledPin=13; // LED asociado al pin 13 13 | 14 | // la funcion setup se ejecuta una sola vez 15 | void setup() { 16 | pinMode(ledPin, OUTPUT); // inicializa el pin 13 como una salida digital 17 | } 18 | 19 | // la funcion loop se ejecuta repetidamente de forma infinita 20 | void loop() { 21 | digitalWrite(ledPin, HIGH); // establece 5v en el pin del LED 22 | delay(1000); // espera un segundo 23 | digitalWrite(ledPin, LOW); // establece 0v en el pin del LED 24 | delay(1000); // espera un segundo 25 | } 26 | -------------------------------------------------------------------------------- /1.2_IntroArduino/Hola_Mundo_esquema.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/1.2_IntroArduino/Hola_Mundo_esquema.png -------------------------------------------------------------------------------- /1.3_IntroAppInventor/1.3 Introducción a MIT App Inventor.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/1.3_IntroAppInventor/1.3 Introducción a MIT App Inventor.pdf -------------------------------------------------------------------------------- /1.3_IntroAppInventor/HolaMundoArduino.aia: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/1.3_IntroAppInventor/HolaMundoArduino.aia -------------------------------------------------------------------------------- /1.3_IntroAppInventor/HolaMundoArduino.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/1.3_IntroAppInventor/HolaMundoArduino.apk -------------------------------------------------------------------------------- /2.1_ComunicacionSerieArduino/2.1 Comunicacion Serie Arduino.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/2.1_ComunicacionSerieArduino/2.1 Comunicacion Serie Arduino.pdf -------------------------------------------------------------------------------- /2.1_ComunicacionSerieArduino/ComunicacionSerie.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/2.1_ComunicacionSerieArduino/ComunicacionSerie.fzz -------------------------------------------------------------------------------- /2.1_ComunicacionSerieArduino/ComunicacionSerie_bb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/2.1_ComunicacionSerieArduino/ComunicacionSerie_bb.png -------------------------------------------------------------------------------- /2.1_ComunicacionSerieArduino/ComunicacionSerie_esquemático.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/2.1_ComunicacionSerieArduino/ComunicacionSerie_esquemático.png -------------------------------------------------------------------------------- /2.1_ComunicacionSerieArduino/Contador/Contador.ino: -------------------------------------------------------------------------------- 1 | /* 2 | * Programa de ejemplo del uso del monitor serie 3 | * Realiza un contador de segundos 4 | * Jose Pujol 5 | * Noviembre de 2017 6 | */ 7 | 8 | int contador = 0; // variable para almacenar el valor del contador 9 | 10 | void setup() { 11 | // abre el puerto serie 12 | // y establece la velocidad de conexion en baudios 13 | Serial.begin(9600); 14 | Serial.println("Iniciamos la cuenta"); // Imprime texto 15 | } 16 | 17 | void loop() { 18 | Serial.print("CONTADOR="); // Imprime texto 19 | Serial.println(contador); // Imprime el valor de la variable contador 20 | delay(1000); // tiempo de espera de 1s 21 | contador ++; // se incrementa el valor del contador en 1 22 | } 23 | -------------------------------------------------------------------------------- /2.1_ComunicacionSerieArduino/Control_PC_BrilloLED/ControlPCBrilloLED.ino: -------------------------------------------------------------------------------- 1 | /* 2 | * Ejemplo para controlar el brillo de un LED desde la computadora. 3 | * Desde el PC enviamos por puerto serie un valor numerico, por ejemplo 125 4 | * y un terminador> 5 | * 6 | * Creado por Jose Pujol 7 | * Noviembre de 2017 8 | */ 9 | 10 | const int ledPin = 9; // pin al que el LED esta conectado 11 | 12 | int incomingByte; // variable para leer los bytes de entrada 13 | int value = 0; // variable para almacenar el valor numerico 14 | int pwmValue = 0; // variable para enviar el codigo pwm al led 15 | 16 | void setup() { 17 | // inicializamos la comunicacion serie 18 | Serial.begin(9600); 19 | } 20 | 21 | void loop() { 22 | // comprueba si hay datos entrantes en el puerto serie 23 | if (Serial.available() > 0) { 24 | // lectura del byte mas antiguo del buffer serial 25 | incomingByte = Serial.read(); 26 | // si es un caracter ASCII entre 0 y 9 27 | if (incomingByte >= '0' && incomingByte <= '9') { 28 | //Acumula los datos numericos multiplicando por 10 el valor acumulado 29 | value = (value * 10) + (incomingByte - '0'); // Resta 48 que es el valor decimal del 0 ASCII 30 | } 31 | else if (incomingByte == '>') // uso > como finalizador 32 | { 33 | pwmValue = value; // Guarda el valor en la variable pwmValue 34 | Serial.println(pwmValue); // Lo imprime por monitor serie 35 | value = 0; // Dejamos lista la variable para volver a escribir en ella 36 | } 37 | } 38 | analogWrite(ledPin, pwmValue); // Escribimos el valor PWM en el LED 39 | } 40 | -------------------------------------------------------------------------------- /2.1_ComunicacionSerieArduino/PhysicalPixel/PhysicalPixel.ino: -------------------------------------------------------------------------------- 1 | /* 2 | * Physical Pixel 3 | 4 | An example of using the Arduino board to receive data from the computer. In 5 | this case, the Arduino boards turns on an LED when it receives the character 6 | 'H', and turns off the LED when it receives the character 'L'. 7 | 8 | The data can be sent from the Arduino Serial Monitor, or another program like 9 | Processing (see code below), Flash (via a serial-net proxy), PD, or Max/MSP. 10 | 11 | The circuit: 12 | - LED connected from digital pin 13 to ground 13 | 14 | created 2006 15 | by David A. Mellis 16 | modified 30 Aug 2011 17 | by Tom Igoe and Scott Fitzgerald 18 | 19 | This example code is in the public domain. 20 | 21 | http://www.arduino.cc/en/Tutorial/PhysicalPixel 22 | */ 23 | 24 | const int ledPin = 9; // pin al que el led esta conectado 25 | int incomingByte; // variable para leer los bytes de entrada 26 | 27 | void setup() { 28 | // inicializamos la comunicacion serie 29 | Serial.begin(9600); 30 | // inicializamos el led como pin digital salida 31 | pinMode(ledPin, OUTPUT); 32 | } 33 | 34 | void loop() { 35 | // comprobamos si hay datos de entrada 36 | if (Serial.available() > 0) { 37 | // lectura del byte mas antiguo del buffer serial 38 | incomingByte = Serial.read(); 39 | // si el byte es H (ASCII 72) enciende el LED 40 | if (incomingByte == 'H') { 41 | digitalWrite(ledPin, HIGH); 42 | } 43 | // si el byte es L (ASCII 76) apaga el LED 44 | if (incomingByte == 'L') { 45 | digitalWrite(ledPin, LOW); 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /2.2_ControlLED_App_BT/2.2 CONTROL LED DESDE APP INVENTOR BT.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/2.2_ControlLED_App_BT/2.2 CONTROL LED DESDE APP INVENTOR BT.pdf -------------------------------------------------------------------------------- /2.2_ControlLED_App_BT/BT-HC06-LED-SS.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/2.2_ControlLED_App_BT/BT-HC06-LED-SS.fzz -------------------------------------------------------------------------------- /2.2_ControlLED_App_BT/BT-HC06-LED-SS_bb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/2.2_ControlLED_App_BT/BT-HC06-LED-SS_bb.png -------------------------------------------------------------------------------- /2.2_ControlLED_App_BT/BT-HC06-LED-SS_esquemático.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/2.2_ControlLED_App_BT/BT-HC06-LED-SS_esquemático.png -------------------------------------------------------------------------------- /2.2_ControlLED_App_BT/BT-HC06-LED.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/2.2_ControlLED_App_BT/BT-HC06-LED.fzz -------------------------------------------------------------------------------- /2.2_ControlLED_App_BT/BT-HC06-LED_bb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/2.2_ControlLED_App_BT/BT-HC06-LED_bb.png -------------------------------------------------------------------------------- /2.2_ControlLED_App_BT/BT-HC06-LED_esquemático.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/2.2_ControlLED_App_BT/BT-HC06-LED_esquemático.png -------------------------------------------------------------------------------- /2.2_ControlLED_App_BT/Bluetooth HC-06u.fzpz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/2.2_ControlLED_App_BT/Bluetooth HC-06u.fzpz -------------------------------------------------------------------------------- /2.2_ControlLED_App_BT/ConfiguracionBluetooth/ConfiguracionBluetooth.ino: -------------------------------------------------------------------------------- 1 | /* 2 | Nombre proyecto: Configuración de modulo Bluetooth HC-06 3 | URL proyecto: http://giltesa.com/?p=11738 4 | Fecha: 09/08/2012 5 | Licencia: (CC) BY-NC-SA: giltesa.com 6 | 7 | El siguiente código permite configurar el modulo Bluetooth HC-06 desde Arduino. 8 | Se puede ajustar el nombre, la contraseña y los baudios a usar con el puerto serie. 9 | La configuración Bluetooth se guarda en el modulo, así que solo es necesario configurarlo una vez. 10 | 11 | Después de grabar el programa en el Arduino se dispone de 10 segundos de tiempo para conectar el 12 | modulo, una vez se apague el led comenzara el proceso de configuración y al terminar el led comenzara 13 | a parpadear. 14 | 15 | ** La configuración se ha de hacer con el modulo sin emparejar (sin conectar con nada) ** 16 | */ 17 | 18 | 19 | // Opciones de configuración: 20 | char ssid[10] = "Arduino1"; // Nombre para el modulo Bluetooth. 21 | char baudios = '4'; // 1=>1200 baudios, 2=>2400, 3=>4800, 4=>9600 (por defecto), 5=>19200, 6=>38400, 7=>57600, 8=>115200 22 | char password[10] = "1234"; // Contraseña para el emparejamiento del modulo. 23 | 24 | 25 | void setup() 26 | { 27 | Serial.begin(9600); 28 | 29 | // Tiempo de espera: 30 | pinMode(13,OUTPUT); 31 | digitalWrite(13,HIGH); 32 | delay(10000); 33 | digitalWrite(13,LOW); 34 | 35 | // Ahora se procede a la configuración del modulo: 36 | 37 | // Se inicia la configuración: 38 | Serial.print("AT"); delay(1000); 39 | 40 | // Se ajusta el nombre del Bluetooth: 41 | Serial.print("AT+NAME"); Serial.print(ssid); delay(1000); 42 | 43 | // Se ajustan los baudios: 44 | Serial.print("AT+BAUD"); Serial.print(baudios); delay(1000); 45 | 46 | // Se ajusta la contraseña: 47 | Serial.print("AT+PIN"); Serial.print(password); delay(1000); 48 | } 49 | 50 | void loop() 51 | { 52 | // Al parpadear el led se habrá terminado la configuración: 53 | digitalWrite(13, !digitalRead(13)); 54 | delay(500); 55 | } 56 | -------------------------------------------------------------------------------- /2.2_ControlLED_App_BT/HolaMundoArduinoBT.aia: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/2.2_ControlLED_App_BT/HolaMundoArduinoBT.aia -------------------------------------------------------------------------------- /2.2_ControlLED_App_BT/HolaMundoArduinoBT.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/2.2_ControlLED_App_BT/HolaMundoArduinoBT.apk -------------------------------------------------------------------------------- /2.2_ControlLED_App_BT/HolaMundoArduinoBTVoz.aia: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/2.2_ControlLED_App_BT/HolaMundoArduinoBTVoz.aia -------------------------------------------------------------------------------- /2.2_ControlLED_App_BT/HolaMundoArduinoBTVoz.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/2.2_ControlLED_App_BT/HolaMundoArduinoBTVoz.apk -------------------------------------------------------------------------------- /2.2_ControlLED_App_BT/LED_BT_SS/LED_BT_SS.ino: -------------------------------------------------------------------------------- 1 | #include 2 | const int rxBTPin=11; // El RX del módulo BT va al pin 11 del Arduino 3 | const int txBTPin=10; // El TX del módulo BT va al pin 10 del Arduino 4 | SoftwareSerial I2CBT(txBTPin, rxBTPin); 5 | 6 | const int ledPin = 13; // pin al que el led esta conectado 7 | int incomingByte; // variable para leer los bytes de entrada 8 | 9 | void setup() { 10 | // inicializamos el led como pin digital salida 11 | pinMode(ledPin, OUTPUT); 12 | // inicializamos la comunicacion serie BT 13 | I2CBT.begin(9600); 14 | } 15 | 16 | void loop() { 17 | // comprobamos si hay datos de entrada 18 | if (I2CBT.available() > 0) { 19 | // lectura del byte mas antiguo del buffer serial 20 | incomingByte = I2CBT.read(); 21 | // si el byte es H (ASCII 72) enciende el LED 22 | if (incomingByte == 'H') { 23 | digitalWrite(ledPin, HIGH); 24 | } 25 | // si el byte es L (ASCII 76) apaga el LED 26 | if (incomingByte == 'L') { 27 | digitalWrite(ledPin, LOW); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /3.1_ElementosComunicacion/3.1 Elementos de comunicación de Arduino y MIT App Inventor.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/3.1_ElementosComunicacion/3.1 Elementos de comunicación de Arduino y MIT App Inventor.pdf -------------------------------------------------------------------------------- /3.2Control_servo_App_BT/3.2 Control Servomotor desde App Inventor BT.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/3.2Control_servo_App_BT/3.2 Control Servomotor desde App Inventor BT.pdf -------------------------------------------------------------------------------- /3.2Control_servo_App_BT/BT-HC06-Servo.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/3.2Control_servo_App_BT/BT-HC06-Servo.fzz -------------------------------------------------------------------------------- /3.2Control_servo_App_BT/BT-HC06-Servo_bb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/3.2Control_servo_App_BT/BT-HC06-Servo_bb.png -------------------------------------------------------------------------------- /3.2Control_servo_App_BT/BT-HC06-Servo_esquemático.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/3.2Control_servo_App_BT/BT-HC06-Servo_esquemático.png -------------------------------------------------------------------------------- /3.2Control_servo_App_BT/BT_Servomotor.aia: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/3.2Control_servo_App_BT/BT_Servomotor.aia -------------------------------------------------------------------------------- /3.2Control_servo_App_BT/Servo_Pos_BT/Servo_Pos_BT.ino: -------------------------------------------------------------------------------- 1 | /* 2 | * Programa para controlar la posición de un servo desde App Inventor mediante 3 | * un slider y via Bluetooth usando el HC06 4 | * Jose Pujol 5 | * Noviembre de 2019 6 | */ 7 | 8 | 9 | #include // incluimos la libreria Servo.h 10 | Servo myservo; // Creamos el objeto tipo servo de nombre myservo 11 | 12 | // Variables para recibir y almacenar datos 13 | int incomingByte; // variable para leer los bytes de entrada 14 | int value = 0; // variable para almacenar el valor numerico 15 | int angle = 0; // variable para enviar los grados al servomotor 16 | 17 | void setup() { 18 | // inicializamos el led como pin digital salida 19 | Serial.begin(9600);; 20 | myservo.attach(9); // attaches the servo on pin 9 to the servo object 21 | } 22 | 23 | void loop() { 24 | // comprobamos si hay datos de entrada 25 | if (Serial.available() > 0) { 26 | // lectura del byte mas antiguo del buffer serial 27 | incomingByte = Serial.read(); 28 | if (incomingByte >= '0' && incomingByte <= '9') { 29 | //Acumula los datos numericos multiplicando por 10 el valor acumulado 30 | value = (value * 10) + (incomingByte - '0'); // Resta 48 que es el valor decimal del 0 ASCII 31 | } 32 | else if (incomingByte == '>') // uso > como finalizador 33 | { 34 | angle = value; // Guarda el valor en la variable angle 35 | Serial.println(angle); // imprime angle por monitor serie 36 | value = 0; // Dejamos lista la variable para volver a escribir en ella 37 | } 38 | } 39 | myservo.write(angle); // Escribimos el valor angle en el servo 40 | delay(15); // damos tiempo al servo a posicionarse 41 | } 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /3.2Control_servo_App_BT/Servo_Pos_BT_SS/Servo_Pos_BT_SS.ino: -------------------------------------------------------------------------------- 1 | /* 2 | * Programa para controlar la posición de un servo desde App Inventor mediante 3 | * un slider y via Bluetooth usando el HC06 4 | * Se usa la libreria SoftwareSerial para liberar los pines 0 y 1 5 | * Jose Pujol 6 | * Noviembre de 2019 7 | */ 8 | 9 | // Software Serial 10 | #include // incluir la libreria software serial 11 | const int rxBTPin = 11; // El RX del módulo BT va al pin 11 del Arduino 12 | const int txBTPin = 10; // El TX del módulo BT va al pin 10 del Arduino 13 | SoftwareSerial I2CBT(txBTPin, rxBTPin); 14 | // Servo 15 | #include // incluimos la libreria Servo.h 16 | Servo myservo; // Creamos el objeto tipo servo de nombre myservo 17 | int angle = 0; // variable para enviar los grados al servomotor 18 | // Variables para recibir datos 19 | int incomingByte; // variable para leer los bytes de entrada 20 | int value = 0; // variable para almacenar el valor numerico 21 | 22 | void setup() { 23 | // inicializamos el led como pin digital salida 24 | Serial.begin(9600); 25 | // inicializamos la comunicacion serie BT 26 | I2CBT.begin(9600); 27 | myservo.attach(9); // attaches the servo on pin 9 to the servo object 28 | } 29 | 30 | void loop() { 31 | // comprobamos si hay datos de entrada 32 | if (I2CBT.available() > 0) { 33 | // lectura del byte mas antiguo del buffer serial 34 | incomingByte = I2CBT.read(); 35 | if (incomingByte >= '0' && incomingByte <= '9') { 36 | //Acumula los datos numericos multiplicando por 10 el valor acumulado 37 | value = (value * 10) + (incomingByte - '0'); // Resta 48 que es el valor decimal del 0 ASCII 38 | } 39 | else if (incomingByte == '>') // uso > como finalizador 40 | { 41 | angle = value; // Guarda el valor en la variable angle 42 | Serial.println(angle); // Lo imprime por monitor serie 43 | value = 0; // Dejamos lista la variable para volver a escribir en ella 44 | } 45 | } 46 | myservo.write(angle); // Escribimos el valor angle en el servo 47 | delay(15); // damos tiempo al servo a posicionarse 48 | } 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /3.3_Temperatura/3.3 Enviar datos temperatura a App Inventor BT.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/3.3_Temperatura/3.3 Enviar datos temperatura a App Inventor BT.pdf -------------------------------------------------------------------------------- /3.3_Temperatura/BT-HC06-LM35.fzz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/3.3_Temperatura/BT-HC06-LM35.fzz -------------------------------------------------------------------------------- /3.3_Temperatura/BT-HC06-LM35_bb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/3.3_Temperatura/BT-HC06-LM35_bb.png -------------------------------------------------------------------------------- /3.3_Temperatura/BT-HC06-LM35_esquemático.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/3.3_Temperatura/BT-HC06-LM35_esquemático.png -------------------------------------------------------------------------------- /3.3_Temperatura/BT_Temperatura.aia: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/3.3_Temperatura/BT_Temperatura.aia -------------------------------------------------------------------------------- /3.3_Temperatura/BT_Temperatura.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/3.3_Temperatura/BT_Temperatura.apk -------------------------------------------------------------------------------- /3.3_Temperatura/BT_TemperaturaCloudDB.aia: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/3.3_Temperatura/BT_TemperaturaCloudDB.aia -------------------------------------------------------------------------------- /3.3_Temperatura/TemperaturaBT/TemperaturaBT.ino: -------------------------------------------------------------------------------- 1 | 2 | int incomingByte; // variable para leer los bytes de entrada 3 | // variables temperatura 4 | const int LM35Pin = A0; // pin conexion 5 | float temperature = 0; // variable almacenar lectura 6 | 7 | void setup() { 8 | // inicializamos la comunicacion serie 9 | Serial.begin(9600); 10 | } 11 | 12 | void loop() { 13 | // leemos el sensor 14 | int lectura = analogRead(LM35Pin); // Valor entre 0 y 1023 15 | // convertimos el sensor a ºC 16 | temperature = (5.0 * lectura * 100.0) / 1024.0; 17 | // comprobamos si hay datos de entrada 18 | if (Serial.available() > 0) { 19 | // lectura del byte mas antiguo del buffer serial 20 | incomingByte = Serial.read(); 21 | // si el byte es T envia dato de temperatura 22 | if (incomingByte == 'T') { 23 | Serial.print(temperature); 24 | } 25 | } 26 | delay(100); 27 | } 28 | 29 | 30 | -------------------------------------------------------------------------------- /4.1_MetodologiasProyectos/4.1. Metodologías de proyectos.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/4.1_MetodologiasProyectos/4.1. Metodologías de proyectos.pdf -------------------------------------------------------------------------------- /4.2_HerramientasProyectos/4.2. Herramientas para proyectos.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Josepujol/CursoCEP_Arduino_AppInventor/d9dab0134160c004aa353821319c9601404105e4/4.2_HerramientasProyectos/4.2. Herramientas para proyectos.pdf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # CursoCEP_Arduino_AppInventor 2 | Curso desarrollado para el CEP de Sevilla "Controlando Arduino desde dispositivos móviles" mediante desarrollo de aplicaciones en MIT App Inventor 3 | 4 | ## S1: Introducción a Arduino y App Inventor 5 | - [1.1 Ejemplos de proyectos](https://github.com/Josepujol/CursoCEP_Arduino_AppInventor/tree/master/1.1_EjemplosProyectos) 6 | - [1.2 Intro a Arduino](https://github.com/Josepujol/CursoCEP_Arduino_AppInventor/tree/master/1.2_IntroArduino) 7 | - [1.3 Intro a App Inventor](https://github.com/Josepujol/CursoCEP_Arduino_AppInventor/tree/master/1.3_IntroAppInventor) 8 | 9 | ## S2: App Inventor y Arduino via BT 10 | - [2.1 Comunicación Serie en Arduino](https://github.com/Josepujol/CursoCEP_Arduino_AppInventor/tree/master/2.1_ComunicacionSerieArduino) 11 | - [2.2 Control de encendido de un led desde App Inventor con módulo HC-06](https://github.com/Josepujol/CursoCEP_Arduino_AppInventor/tree/master/2.2_ControlLED_App_BT) 12 | 13 | ## S3: Profundizando en la conexión App Inventor y Arduino via BT 14 | - [3.1 Elementos para comunicación Arduino-App Inventor](https://github.com/Josepujol/CursoCEP_Arduino_AppInventor/tree/master/3.1_ElementosComunicacion) 15 | - [3.2 Control de un servomotor de posición desde App Inventor con con módulo HC-06](https://github.com/Josepujol/CursoCEP_Arduino_AppInventor/tree/master/3.2Control_servo_App_BT) 16 | - [3.3 Envío de datos de Arduino a App Inventor: sensor temperatura ](https://github.com/Josepujol/CursoCEP_Arduino_AppInventor/tree/master/3.3_Temperatura) 17 | 18 | ## Licencia 19 | El curso ha sido desarrollado por Jose Luis Núñez y José Pujol todos los materiales se distribuyen bajo licencia [Creative Commons Attribution-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-sa/4.0/) 20 | --------------------------------------------------------------------------------