Mi viejo teléfono + arduino = phonoduino (5 / 7 paso)

Paso 5: Programación arduino

Imagen de mi configuración de phonoduino completa (teléfono + arduino) se da por encima. Entrada DTMF no se da ahora a arduino. Veremos esto más adelante de este proyecto. Debemos ahora escribir algo de código para dar la vida de la phonoduino. Se adjunta código automático de llamada para cualquier número dado.

  int key0 = 16; int key1 = 6; int key2 = 12; int key3 = 9; int key4 = 5; int kry5 = 15; int key6 = 10; int key7 = 14; int key8 = 13; int key9 = 18; int keyStar = 17; int keyOk = 11; int keyClear = 3; int keyDown = 4; int keyUp = 8; int keyOff = 2; int keyHash = 19; int pressTime = 100; int pressDelay = 300; int holdTime = 1000; int value[16] = {16,6,12,9,5,15,10,14,13,18,17,11,3,4,8,2}; void setup() { // initialize the digital pin as an output. for(int i=2; i<20; i++) pinMode(i, OUTPUT); holdClear(); unlockPhone(); delay(2000); holdClear(); delay(1000); // call 0123456789 pressDigit(0); pressDigit(1); pressDigit(2); pressDigit(3); pressDigit(4); pressDigit(5); pressDigit(6); pressDigit(7); pressDigit(8); pressDigit(9); delay(100); pressOk(); delay(5000); } // the loop routine runs over and over again forever: void loop() { } void pressDigit(int digit){ digitalWrite(value[digit], HIGH); // press digit from 0 to 9 delay(pressTime); digitalWrite(value[digit],LOW); delay(pressDelay); } void pressOk(){ digitalWrite(keyOk, HIGH); // press ok delay(pressTime); digitalWrite(keyOk,LOW); delay(pressDelay); } void pressClear(){ digitalWrite(keyClear, HIGH); // press clear delay(pressTime); digitalWrite(keyClear,LOW); delay(pressDelay); } void pressStar(){ digitalWrite(keyStar, HIGH); // press star delay(pressTime); digitalWrite(keyStar,LOW); delay(pressDelay); } void pressUp(){ digitalWrite(keyUp, HIGH); // press up delay(pressTime); digitalWrite(keyUp,LOW); delay(pressDelay); } void pressDown(){ digitalWrite(keyDown, HIGH); // press down delay(pressTime); digitalWrite(keyDown,LOW); delay(pressDelay); } void pressHash(){ digitalWrite(keyHash, HIGH); // press hash delay(pressTime); digitalWrite(keyHash,LOW); delay(pressDelay); } void pressOff(){ digitalWrite(keyOff, HIGH); // press off delay(pressTime); digitalWrite(keyOff,LOW); delay(pressDelay); } void holdOff(){ digitalWrite(keyOff, HIGH); // hold off delay(holdTime); digitalWrite(keyOff,LOW); delay(pressDelay); } void holdClear(){ digitalWrite(keyClear, HIGH); // press clear delay(holdTime); digitalWrite(keyClear,LOW); delay(pressDelay); } void unlockPhone(){ pressOk(); pressStar(); }  

¿Quieres llamar a cualquier número de serial monitor?

Código para llamar desde monitor serial también se adjunta. Número de teléfono de tipo sólo en terminal que termina con una coma (,) y presione Entrar. Phonoduino al instante se marcará el número. Coma indica usted mecanografía sólo completa y desea llamar. Si desea borrar cualquier número erróneamente escritas tipo sólo por punto y coma (;) y pulse enter. A continuación, vuelva a escribir su número.

¿Quieres enviar el mensaje de monitor serial?

Escribir mensaje de teléfono móvil es aburrido y desperdiciador de tiempo. Va a ser fácil escribir sms desde el teclado de la computadora y ahorra mucho tiempo. Un sketch de arduino de la muestra se da a enviar sms de monitor serial. Sólo cargar el programa en el arduino, abrir a monitor de serie, escriba su mensaje, tipo colon(:), tipo número, escriba número de teléfono móvil o cualquier número que desea enviar su sms y pulse Intro. Su phonoduino le envió el mensaje a su número deseado.

Ejemplo: Hola, soy de phonoduino.:123456789 *

El comando anterior será enviado "Hola, soy de phonoduino." el número "123456789"

 <code> int pressTime = 100; int pressDelay = 300; int holdTime = 1000; int typeTime = 100; int typeDelay = 400; int value[16] = {16,6,12,9,5,15,10,14,13,18,17,11,3,4,8,2}; char number[12]; char massegeChar[160]; int count = 0; int numCount = 0; int charDelay = 300; int numberState = 0; void setup() { // initialize the digital pin as an output. for(int i=2; i<20; i++) pinMode(i, OUTPUT); Serial.begin(9600); holdClear(); } // the loop routine runs over and over again forever: void loop() { while (Serial.available()>0){ char character = Serial.read(); if(character == '*'){ sentSMS(); count = 0; numCount = 0; numberState = 0; } if(character == ':'){ numberState = 1; numCount = 0; //delay(10); } if(numberState == 1){ number[numCount] = character; numCount++; } if(numberState == 0){ massegeChar[count] = character; count++; } if(character == '#'){ count = 0; numberState = 0; } } } void pressDigit(int digit){ digitalWrite(value[digit], HIGH); // press digit from 0 to 9 delay(pressTime); digitalWrite(value[digit],LOW); delay(pressDelay); } void pressOk(){ digitalWrite(keyOk, HIGH); // press ok delay(pressTime); digitalWrite(keyOk,LOW); delay(pressDelay); } void pressClear(){ digitalWrite(keyClear, HIGH); // press clear delay(pressTime); digitalWrite(keyClear,LOW); delay(pressDelay); } void pressStar(){ digitalWrite(keyStar, HIGH); // press star delay(pressTime); digitalWrite(keyStar,LOW); delay(pressDelay); } void pressUp(){ digitalWrite(keyUp, HIGH); // press up delay(pressTime); digitalWrite(keyUp,LOW); delay(pressDelay); } void pressDown(){ digitalWrite(keyDown, HIGH); // press down delay(pressTime); digitalWrite(keyDown,LOW); delay(pressDelay); } void pressHash(){ digitalWrite(keyHash, HIGH); // press hash delay(pressTime); digitalWrite(keyHash,LOW); delay(pressDelay); } void pressOff(){ digitalWrite(keyOff, HIGH); // press off delay(pressTime); digitalWrite(keyOff,LOW); delay(pressDelay); } void holdOff(){ digitalWrite(keyOff, HIGH); // hold off delay(holdTime); digitalWrite(keyOff,LOW); delay(pressDelay); } void holdClear(){ digitalWrite(keyClear, HIGH); // press clear delay(holdTime); digitalWrite(keyClear,LOW); delay(pressDelay); } void typeA(){ digitalWrite(key2, HIGH); delay(typeTime); digitalWrite(key2, LOW); delay(typeDelay); } void typeB(){ typeA(); typeA(); } void typeC(){ typeA(); typeA(); typeA(); } void typeD(){ digitalWrite(key3, HIGH); delay(typeTime); digitalWrite(key3, LOW); delay(typeDelay); } void typeE(){ typeD(); typeD(); } void typeF(){ typeD(); typeD(); typeD(); } void typeG(){ digitalWrite(key4, HIGH); delay(typeTime); digitalWrite(key4, LOW); delay(typeDelay); } void typeH(){ typeG(); typeG(); } void typeI(){ typeG(); typeG(); typeG(); } void typeJ(){ digitalWrite(key5, HIGH); delay(typeTime); digitalWrite(key5, LOW); delay(typeDelay); } void typeK(){ typeJ(); typeJ(); } void typeL(){ typeJ(); typeJ(); typeJ(); } void typeM(){ digitalWrite(key6, HIGH); delay(typeTime); digitalWrite(key6, LOW); delay(typeDelay); } void typeN(){ typeM(); typeM(); } void typeO(){ typeM(); typeM(); typeM(); } void typeP(){ digitalWrite(key7, HIGH); delay(typeTime); digitalWrite(key7, LOW); delay(typeDelay); } void typeQ(){ typeP(); typeP(); } void typeR(){ typeP(); typeP(); typeP(); } void typeS(){ typeP(); typeP(); typeP(); typeP(); } void typeT(){ digitalWrite(key8, HIGH); delay(typeTime); digitalWrite(key8, LOW); delay(typeDelay); } void typeU(){ typeT(); typeT(); typeT(); } void typeV(){ typeT(); typeT(); typeT(); } void typeW(){ digitalWrite(key9, HIGH); delay(typeTime); digitalWrite(key9, LOW); delay(typeDelay); } void typeX(){ typeW(); typeW(); } void typeY(){ typeW(); typeW(); typeW(); } void typeZ(){ typeW(); typeW(); typeW(); typeW(); } void space(){ digitalWrite(key0, HIGH); delay(typeTime); digitalWrite(key0, LOW); delay(typeDelay); } void sentSMS(){ holdClear(); holdClear(); pressOk(); pressOk(); pressOk(); for(int i = 0; i< 160; i++){ switch(massegeChar[i]){ case 'A': case 'a': typeA(); delay(charDelay); break; case 'B': case 'b': typeB(); delay(charDelay); break; case 'C': case 'c': typeC(); delay(charDelay); break; case 'D': case 'd': typeD(); delay(charDelay); break; case 'E': case 'e': typeE(); delay(charDelay); break; case 'F': case 'f': typeF(); delay(charDelay); break; case 'G': case 'g': typeG(); delay(charDelay); break; case 'H': case 'h': typeH(); delay(charDelay); break; case 'I': case 'i': typeI(); delay(charDelay); break; case 'J': case 'j': typeJ(); delay(charDelay); break; case 'K': case 'k': typeK(); delay(charDelay); break; case 'L': case 'l': typeL(); delay(charDelay); break; case 'M': case 'm': typeM(); delay(charDelay); break; case 'N': case 'n': typeN(); delay(charDelay); break; case 'O': case 'o': typeO(); delay(charDelay); break; case 'P': case 'p': typeP(); delay(charDelay); break; case 'Q': case 'q': typeQ(); delay(charDelay); break; case 'R': case 'r': typeR(); delay(charDelay); break; case 'S': case 's': typeS(); delay(charDelay); break; case 'T': case 't': typeT(); delay(charDelay); break; case 'U': case 'u': typeU(); delay(charDelay); break; case 'V': case 'v': typeV(); delay(charDelay); break; case 'W': case 'w': typeW(); delay(charDelay); break; case 'X': case 'x': typeX(); delay(charDelay); break; case 'Y': case 'y': typeY(); delay(charDelay); break; case 'Z': case 'z': typeZ(); delay(charDelay); break; case ' ': space(); break; } delay(300); } pressOk(); pressOk(); callNumber(); } void callNumber(){ for(int i=1; i<12; i++){ pressDigit(number[i]-'0'); // number[i] - '0' is for converting character into intiger } pressOk(); holdClear(); holdClear(); } 

Se publiqué más adelante a un sketch de arduino más eficiente.

Artículos Relacionados

Hacer una Webcam Wi-fi de un viejo teléfono Android

Hacer una Webcam Wi-fi de un viejo teléfono Android

Convertirse en uno de mis viejos teléfonos Android en una webcam es algo que he estado pensando hace mucho tiempo. Un par de años atrás, respaldé un proyecto impresora 3D en Kickstarter (RigidBot, si te interesa). Tomó mucho tiempo para finalmente ob
Hacer un Solar Wifi 3g Webcam de cámara al aire libre de un viejo teléfono Android!

Hacer un Solar Wifi 3g Webcam de cámara al aire libre de un viejo teléfono Android!

Noticias de octubre de 2015.El proyecto evolucionado, ahora vende directamente SolarCam con el teléfono y la caja. funciona muy bien, se interrested surfistas de todo el mundo!Mantener este instructables, para DIYers.Hay muchos cambios:Webcam es tota
Cómo para convertir un viejo teléfono celular (NOKIA 6600) en un SUPERGADGET-MICROORDENADOR

Cómo para convertir un viejo teléfono celular (NOKIA 6600) en un SUPERGADGET-MICROORDENADOR

http://www.internetsecretbook.comEn medio de la dificultad se encuentra la oportunidad. -Albert EinsteinLas funciones del teléfono Nokia 6600 Mostrar la nuevas características de proyección de imagen avanzadas, incluyendo un brillante TFT de 65.536 c
Reutilizar los viejos teléfonos móviles para automatización del hogar

Reutilizar los viejos teléfonos móviles para automatización del hogar

Hola... Amigostodos hemos utilizado teléfonos antiguos como teléfonos con modelos pequeños de la pantalla y del teclado. Hoy en día la tendencia es teléfono inteligente con pantalla enorme, 4G, delgado, etc.. Así que ¿qué pasa con aquellos viejos tel
Ideas creativas para hacer con los viejos teléfonos

Ideas creativas para hacer con los viejos teléfonos

Tienes un viejo móvil ahí entonces aquí le damos algunos consejos para que sea útil...Paso 1: Usar un viejo teléfono como una cámara web o cámara remota quieres espiar a tu casa mientras estás fuera o en otra habitación aquí esUn teléfono antiguo con
DIY-Hack A Retro viejo teléfono a LED unidad & celular amplificador de Audio

DIY-Hack A Retro viejo teléfono a LED unidad & celular amplificador de Audio

este hack proporciona algunas cuestiones útiles, por ejemplo podemos leer libros en la noche usando nuestro teléfono retro encantador viejo, mientras tanto usar el teléfono como un móvil o cualquier amplificador de audio del teléfono celular, la cali
Fácil inicio el Panel elegante y centro de información - reutilizar un viejo teléfono!

Fácil inicio el Panel elegante y centro de información - reutilizar un viejo teléfono!

En este Instructable, te guiará a través de algunos de los pasos que he seguido en la reasignación de un teléfono como un dispositivo inteligente toque Inicio para mi habitación. Usted podrá controlar las luces, conocer su previsión diaria del tiempo
3 programas para convertir un viejo teléfono Android en una utilidad para tu coche.

3 programas para convertir un viejo teléfono Android en una utilidad para tu coche.

Es simple y único costo $2,99 hacerlo.Los tres programas están en el play store y elegido debido a la facilidad de uso y de características disponibles.En primer lugar, porque mi teléfono es un teléfono viejo, sin servicios quería un GPS off-line. To
PARA convertir un viejo teléfono celular (NOKIA 6600) en un SUPERGADGET-MICROORDENADOR resubido

PARA convertir un viejo teléfono celular (NOKIA 6600) en un SUPERGADGET-MICROORDENADOR resubido

convertir un tiro pohne 100 años a un pcPaso 1: Paso 1 de esta cosaCuando alguien oye la palabra nokia de eraly y finales de los años 90 que piensan oh theat pice viejo de basura pero que puede cambiar que al igual que hemos cambiado el kindle para s
Interfaz de un teléfono rotatorio dial a un Arduino

Interfaz de un teléfono rotatorio dial a un Arduino

un viejo teléfono rotatorio puede ser utilizado para un número de propósitos en los proyectos de Arduino - usarlo como un dispositivo de entrada de novela o utilizar la Arduino a la interfaz de un teléfono rotatorio al ordenador.Esta es una guía muy
Alimentación de Arduino con un teléfono celular

Alimentación de Arduino con un teléfono celular

teléfonos móviles viejos son fáciles de adquirir y han construido en litio circuito de carga. Una excelente base para un suministro de energía para pequeñas cosas móviles. Conectado un teléfono móvil a arduino con la capacidad para cargar el celular
Volver a utilizar y combinar. Reciclar viejos Instamorph y volver a propósito un teléfono

Volver a utilizar y combinar. Reciclar viejos Instamorph y volver a propósito un teléfono

Este Instructable fue escrito por hacer: Bromyard miembro _soapy_---------------------------------------Hace unos 8 años usé algunos polimorfo (también la materia misma como Instamorph - policaprolactona) para hacer el "teléfono de hueso". Es se
Cómo convertir un teléfono rotatorio de la vieja escuela en un dispositivo de entrada.

Cómo convertir un teléfono rotatorio de la vieja escuela en un dispositivo de entrada.

Teléfonos rotativos son grandes para hackers principiantes.No es muy complicados: en su mayor parte, sólo puede mirar los cables y adivinar lo que la mayoría de ellos de control.Deslice un microcontrolador en, y puede utilizar todos sus componentes c
BAT teléfono de teléfono giratorio antiguo

BAT teléfono de teléfono giratorio antiguo

descargo de responsabilidad: No rotatorio viejos teléfonos estuvieron lastimados en este proyecto!   Había comprado un montón de teléfonos rotatorios de una venta de inmuebles y esta compra incluyó una caja de teléfonos rotos y piezas del teléfono.