TXT ME (3 / 3 paso)

Paso 3: El Arduino código

/ * TEXTO ME

Este bosquejo, para el escudo Arduino GSM, espera un mensaje SMS y lo muestra a través del puerto serial y en máquina de texto ME de Kim.

Código de Javier Zorzano / TD http://arduino.cc/en/Tutorial/GSMExamplesReceiveSMS * /

/******************************************************************************************

* T H E C I R C U I T

*

* Una fuente de alimentación externa es obligatoria, de lo contrario no funciona el escudo GSM

Escudo GSM es conectado en un Arduino Uno

* Hay dos servos ambos conectados a GND y + 5V * la línea de control de servo giratorio va al pin 5

* La línea de control de servo vertical va al pin 10

* El LED listo va al pin 11 a través de una resistencia de 200 ohm

*******************************************************************************************/

#include / / incluir la biblioteca GSM

#include / / incluye la librería servo

#define PINNUMBER "XXXX" / / PIN de número de la tarjeta SIM GSM

#define rotaryPin 5 / / conectar el pin 5 al servo giratorio

#define verticalPin 10 / conectar el pin 10 al servo vertical

#define readyLed 11 / conectar pin 11 a LED que muestra que la unidad GSM es conectado

GsmAccess GSM; Inicializar las instancias de la biblioteca

Sms GSM_SMS; char senderNumber [20]; Matriz para sostener el número que un SMS es obtenido de

Servo rotaryServo; Crear objeto servo para controlar el servo giratorio

Servo verticalServo; Crear objeto servo para controlar el servo vertical

rotación de int [] = {161, 154, 148, 142, 136, 130, 124, 118, 112, 105, 99, 92, 85, 78, 72, 66, 60, 54, 48, 42, 36, 30, 24, 19, 12, 7};

int numberOfLetters = 26;

int currentServoPosition;

int newServoPosition;

int alto = 170; Definir los dos extremos del servo vertical

int abajo = 117;

int inactivityTimer = 0;

/**************************************************************************************

* Configurar

**************************************************************************************/

void setup()

{

Serial.Begin (9600); Inicializar la comunicación serial a 9600 rotary

Servo.Attach (rotaryPin); Conecte el servo giratorio vertical

Servo.Attach (verticalPin); Conecte el servo de dedo booleano

notConnected = true; Estado de la conexión GSM

parkArm(); Hacia un espacio seguro, si no hay ya

prompt();

parkArm(); Hacia un espacio seguro

mientras (notConnected) / / esperar hasta que se establezca la conexión GSM

{

digitalWrite (readyLed, bajo); Apagar el LED listo

Si (gsmAccess.begin (PINNUMBER) == GSM_READY) notConnected = false;

otra cosa

{

Serial.println ("no conectado");

retrasar (1000);

}

}

Serial.println ("GSM inicializada"); Mensaje de construcción de confianza

Serial.println ("en espera de mensajes");

digitalWrite (readyLed, HIGH); // Turn the ready LED on} /**************************************************************************************

* Bucle principal

**************************************************************************************/

void loop()

{

char c;

Si no hay ningún SMS periódicamente hacer una demostración

inactivityTimer = inactivityTimer ++; Contar para cada bucle

Si (inactivityTimer > 300) / / aprox. 1 seg por loop

{

inactivityTimer = 0; Restablecer el tomer

prompt(); Llamar la atención sobre sí mismo

}

Latido en LED para mostrar ese lazo es bucle todavía

digitalWrite (readyLed, bajo); Apagar el LED listo

Delay(100); Tiempo que el LED está apagado

digitalWrite (readyLed, HIGH); Encienda el LED listo

Si se dispone de un SMS

Si (sms.available())

{

inactivityTimer = 0; Si el mensaje entonces restablece el temporizador de inactividad

Serial.println ("mensaje recibido de:");

Leer mensaje bytes e imprimirlos

while(c=SMS.Read())

{

raiseLetterArm (c); "Imprimir" en brazos de plexiglás

}

SMS.Flush(); Eliminar mensaje de la memoria del modem

} delay(1000);

}

/**************************************************************************************

* Sugerirán el alguien cerca

**************************************************************************************/

void prompt()

{

raiseLetterArm (84); "Print" texto ME a brazos de plexiglás

raiseLetterArm (69);

raiseLetterArm (88);

raiseLetterArm (84);

raiseLetterArm (77);

raiseLetterArm (69);

}

/**************************************************************************************

* Poner el brazo fuera de peligro

**************************************************************************************/

void parkArm()

{

rotaryServo.attach (rotaryPin); Conecte el servo giratorio

newServoPosition = 180; Parque donde el brazo puede no hacer daño cuando conectado/desconectado

currentServoPosition = 9; Asegúrese de que está claro que es necesario un movimiento

rotateServo(); Mover el servo giratorio

Delay(2000); Espere a que el servo llegar

rotaryServo.detach (); Mantener las cosas tranquilas

}

/**************************************************************************************

* Levante el brazo de letra especificado

**************************************************************************************/

void raiseLetterArm (int charEntered)

{

rotaryServo.attach (rotaryPin); Conecte el servo en el pin

'A' es 65 'a' es 97 'Z' es de 90

Si ((charEntered < 65) || ((charEntered > 91) & & (charEntered < 97)) || (charEntered > 123))

{

Entonces no es A la Z así que no hace nada - espera un poco

}

otra cosa

{

Convertir minúsculas en mayúsculas

Si (charEntered > 96)

{

charEntered = charEntered - 32;

}

Si ((charEntered > 64) & &(charEntered < 91))

{

newServoPosition = rotación [charEntered - 65]; Establecer dónde girar el brazo

rotateServo();

}

Mostrar lo que fue enviado:

Serial.Print ("que me enviaste: \'");

Serial.Write(charEntered);

Serial.Print ("\' ASCII valor:");

Serial.println(charEntered);

pressDown ();

}

rotaryServo.detach (); Detener los movimientos al azar}

/*********************************************************************************

* Baje el dedo - Asegúrese de que esté para arriba antes de volver

!*********************************************************************************/

void pressDown()

{

verticalServo.attach (verticalPin); Conecte el servo de dedo

Delay(500);

para (int i = 0; i < arriba-abajo; i ++)

{

verticalServo.write (a-i); Dedo hacia abajo de un grado a la vez

Delay(10);

}

Delay(2000);

para (int i = 0; i < arriba-abajo; i ++)

{

verticalServo.write (abajo + i); Dedo para arriba de un grado a la vez

Delay(10);

}

Delay(500);

verticalServo.detach (); Detener los movimientos al azar}

/*********************************************************************************

* Mueva el brazo - Asegúrese de que el dedo para arriba antes de usar ti *** /

void rotateServo()

{

int diferencia;

int noOfSlowSteps = 5; No de grados a moverse lentamente fue 5

int waitForServo = 20; No reducen demasiado o pierde pasos

verticalServo.attach (verticalPin); Conecte el servo de dedo

verticalServo.write (arriba); Asegúrese de que está fuera del camino

verticalServo.detach (); Separar

diferencia = newServoPosition - currentServoPosition;

Si (diferencia > noOfSlowSteps)

{

rotaryServo.write (newServoPosition - noOfSlowSteps); Mover rápidamente

currentServoPosition = newServoPosition - noOfSlowSteps; Nota nueva posición}

Si (diferencia < -1 * noOfSlowSteps)

{

rotaryServo.write (newServoPosition + noOfSlowSteps); Mover rápidamente

currentServoPosition = newServoPosition + noOfSlowSteps; Nueva posición de nota

}

diferencia = newServoPosition - currentServoPosition; Calcular la diferencia si (diferencia > 0)

Poco a poco aumenta la posición actual hasta que la diferencia es 0

{

para (int i = 0; i < diferencia + 1; i ++)

{

rotaryServo.write (currentServoPosition + i);

retardo (waitForServo);

}

}

Else / / luego lentamente disminuir posición actual hasta que la diferencia es 0

{

para (int i = 0; i < (-1 * diferencia) + 1; i ++)

{

rotaryServo.write (currentServoPosition - i);

retardo (waitForServo);

}

}

currentServoPosition = newServoPosition; Recuerde que es brazo}

/**********************************************************************************

* Limpiaparabrisas prueba (comentada)

**********************************************************************************/

/ * para (letra = 0; letra < numberOfLetters; letra ++)

{

newServoPosition = rotación [letra]; Establecer dónde girar el brazo

rotateServo();

Serial.Print ("giro [letra]");

Serial.println (rotación [carta]);

}

Delay(5000);

para (letra = numberOfLetters; carta + 1 > 0; carta--)

{

newServoPosition = rotación [letra]; Establecer dónde girar el brazo

rotateServo();

Serial.Print ("giro [letra]");

Serial.println (rotación [carta]);

}

Delay(5000); */

/**********************************************************************************

/ * Para calibrar los servos rotativos (comentado) - necesario potpin

**********************************************************************************/

/*

Val = analogRead(potpin); Lee el valor del potenciómetro (valor entre 0 y 1023)

Val = mapa (val, 0, 1023, 0, 179); la escala a utilizar con el servo (valor entre 0 y 180)

rotaryServo.write(val); ajusta la posición del servo según el valor de escala

Delay(15); espera a que el servo llegar

imprimir el valor de leer:

Serial.println(Val); */

Artículos Relacionados

Mostrar vivo Txts en traje de fiesta con movimiento en sentido vertical LED hebilla de cinturón

Mostrar vivo Txts en traje de fiesta con movimiento en sentido vertical LED hebilla de cinturón

este proyecto muestra cómo enviar mensajes de texto SMS a una pantalla de LED desplazamiento barata a través de una aplicación para Android y arduino con escudo de host USB.El proyecto fue originalmente inspirado en un amigo quieren hacer un disfraz
Cómo dejar de Nativelog.txt de aparición / se crea en el escritorio (minecraft)

Cómo dejar de Nativelog.txt de aparición / se crea en el escritorio (minecraft)

¿Así que querías jugar minecraft pero hay ese archivo nativelog.txt que mantiene se crea en el escritorio aunque lo elimina cada vez? Bueno, es un archivo que el minecraft launcher automáticamente por sus propios propósitos, pero aquí es una solución
Enviar correo electrónico + TXT cuando vuelvas a casa (detecta cuando el iPhone reúne con red)

Enviar correo electrónico + TXT cuando vuelvas a casa (detecta cuando el iPhone reúne con red)

este proyecto envía una alerta diaria de mensajes y correo electrónico de texto cuando tu iPhone está cerca de la red Wi-Fi, como cuando vuelvas a casa. Las alertas se limitan a enviar sólo una vez al día y sólo durante un usuario seleccionaron venta
Txt en la escuela

Txt en la escuela

esto es como mensaje de texto en la escuela es muy fácil y que necesitan 2 herramientas y artículos para el hogar 2. Esto es para el puré de Instructables concurso así que por favor la tarifa alta!!!!!!sólo debe utilizar esta en las salas de estudio
Abejón de carreras clase FPV 250

Abejón de carreras clase FPV 250

Hola a todos. Te sugiero una instrucción sobre cómo construir tu 250 clase quadrocopter.Esta instrucción es para quien quiere uno mismo-montar su quad de carreras, pero no sabe qué componentes elegir para comenzar con. Por supuesto puse mi opinión pe
Rastreador de vuelos en tiempo Real de ADS-B y dispositivo de monitorización utilizando Intel Edison

Rastreador de vuelos en tiempo Real de ADS-B y dispositivo de monitorización utilizando Intel Edison

Vigilancia dependiente automática-Broadcast (ADS-B) es un sistema de vigilancia satelital precisa. ADS-B utiliza tecnología GPS para determinar la ubicación de la aeronave, velocidad y otros datos y difunde que estaciones de información a una red de
Cómo hacer pequeños robots con nRover Junta

Cómo hacer pequeños robots con nRover Junta

El nRover, es un tablero pequeño diseñado para construir pequeños robots como UGV (vehículos terrestres no tripulados), seguidor de línea o automatización del hogar, puede ser controlado por wifi, Bluetooth o radio control. El objetivo principal es e
Construir tu propia máquina CNC.

Construir tu propia máquina CNC.

Primero pasé a Pittsburgh, tuve un momento casual cuando caminaba por un lugar llamado TechShop. Muchos de ustedes pueden haber oído de él pero yo no y el personal es amable lo suficiente como para darme un tour. El lugar sopló mi mente y para endulz
Lap Timer mini 4WD (Sensor IR)

Lap Timer mini 4WD (Sensor IR)

SaludosContinuar el desarrollo de base de mi proyecto de Lap Timer en la función es una herramienta para vuelta de tiempo de medida para la carrera de mini 4WD en el circuito. Esta herramienta muy útil para analizar el viaje en el tiempo en diversa c
Espada ropera Fuego Retro modelo plano

Espada ropera Fuego Retro modelo plano

Tome un viaje de nuevo a los años cincuenta con este avión de modelo de balsa de estilo retro. Revive el olor del cemento balsa y sonido maravilloso y lugar de su propio mini jet sobre el campo de vuelo.Este diseño se basa en el 50 de Fuego un Jetex
Instalación de Audio movimiento PIR P.I.R.M.A frambuesa Pi

Instalación de Audio movimiento PIR P.I.R.M.A frambuesa Pi

PIR + Python + frambuesa Pi = instalación Audio movimiento accionado.Historia del proyecto:Mi padre es un Comisario de un pequeño museo sobre la historia de nuestro pueblo, Suiza de Elgg. Él tenía la idea de que una pieza de música se reproduce cuand
Salvar al mundo: Minecraft PE

Salvar al mundo: Minecraft PE

Dada la cantidad de horas, mis hijos han jugado Minecraft. Me alegro de que nunca perdieron sus datos del juego o mundo de Minecraft, donde trabajan en. Como todo el mundo, yo regularmente copias de seguridad de mi dispositivo mediante iTunes. Y afor
Star Wars y Star Trek en Minecraft con frambuesa mermelada Mod

Star Wars y Star Trek en Minecraft con frambuesa mermelada Mod

Voy a explicar cómo hacer (a) fácilmente Star Wars y Star Trek (y otros) 3D modelos en Minecraft y (b) volar una nave espacial en Minecraft (¡ o incluso con otra entidad, como un murciélago o un zombi, volar!), usando los scripts de python muestra in
Python coding for Minecraft

Python coding for Minecraft

Este Instructable muestra cómo instalar y utilizar un mod que escribí que te permite controlar el Minecraft con secuencias de comandos de python. A centrarme en Windows, aunque OS X y Linux debería funcionar igual de bien.Scripts de Python pueden gen