Mon vieux téléphone + arduino = phonoduino (5 / 7 étapes)

Etape 5: Programmation arduino

Image de mon installation complète phonoduino (téléphone + arduino) est donnée ci-dessus. Les entrées DTMF ne sont pas donnée à l’arduino maintenant. Nous verrons cela plus tard de ce projet. Laissez-nous maintenant écrire du code pour donner la vie de la phonoduino. Code pour les appels automatiques pour n’importe quel nombre donné est attaché.

  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(); }  

Vous voulez appeler n’importe quel nombre de serial monitor ?

Code pour les appels de serial monitor est également joint. Numéro de téléphone il suffit de taper dans le terminal se terminant avec un coma (en), puis appuyez sur Entrez. Phonoduino compose immédiatement le numéro. Coma vous indique le nombre de frappe juste terminée et que vous souhaitez appeler. Si vous voulez effacer n’importe quel nombre à tort les tapez simplement typé point virgule (;) et appuyez sur entrée. Resaisissez votre numéro.

Vous voulez envoyer le message de la série monitor ?

Dactylographie message du téléphone mobile est ennuyeux et fastidieux. Il sera facile de taper des sms à partir de clavier d’ordinateur et permettra d’économiser beaucoup de temps. Une esquisse d’arduino d’échantillon est donnée aux sms envoyé de serial monitor. Juste télécharger le programme sur votre arduino, ouvrir le moniteur de la série, tapez votre message, tapez colon(:), tapez le numéro, tapez le numéro de téléphone portable ou n’importe quel nombre que vous voulez envoyer votre sms et appuyez sur entrent la clé. Votre phonoduino sera envoyé le message à votre nombre désiré.

Exemple : Bonjour, je suis de phonoduino.:123456789 *

La commande ci-dessus est envoyés « Bonjour, je suis de phonoduino. » au numéro « 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(); } 

J’ai publiera plus tard une esquisse d’arduino plus efficace.

Articles Liés

Faire une Webcam Wi-fi d’un vieux téléphone Android

Faire une Webcam Wi-fi d’un vieux téléphone Android

Transformer un de mes anciens téléphones Android en webcam est quelque chose que j'ai pensé à faire depuis un certain temps. Un couple d'années, j'ai soutenu un projet de l'imprimante 3D sur Kickstarter (RigidBot, si vous êtes intéressé). Il a fallu
Comment faire pour convertir un vieux téléphone portable (NOKIA 6600) en A SUPERGADGET-MICRO-ORDINATEUR

Comment faire pour convertir un vieux téléphone portable (NOKIA 6600) en A SUPERGADGET-MICRO-ORDINATEUR

http://www.internetsecretbook.comAu milieu de difficultés se trouve occasion. -Albert EinsteinLes caractéristiques du téléphone Nokia 6600 affichent les nouvelles fonctionnalités d'imagerie avancées, notamment un brillant TFT 65 536 couleurs et appar
Nouvelle vie pour vieux téléphones cellulaires : magnétique Photo personnelle ou un cadre de Message

Nouvelle vie pour vieux téléphones cellulaires : magnétique Photo personnelle ou un cadre de Message

ces jours-ci nous avons tous des téléphones anciens, endommagés ou non-travaillant. Ce Instructable rapide et peu coûteux réutilise ces vieux téléphones et crée un grand cadre photo ou un message de mini. Ces faire un grand cadeau pour quelqu'un ou s
Bébé moniteur à l’aide d’un vieux téléphone Android

Bébé moniteur à l’aide d’un vieux téléphone Android

Ayant récemment devenu un père ouvre un tout nouveau monde de besoins, dont le principal est en gardant un œil sur votre bébé ou tout simplement avoir à faire des choses alors que le bébé dort dans une autre pièce.Après avoir traversé diverses option
Épopée utilise pour un vieux téléphone Android

Épopée utilise pour un vieux téléphone Android

Avoir un vieux téléphone Android qui collectionne poussière Voici quelques excellent moyen de les réutiliser sans démonterÉtape 1: Faites-en un contrôleur multimédiaMême l'ancien appareil Android junkiest a assez de puissance pour servir unecontrôleu
Balanced Microphone d’un vieux téléphone

Balanced Microphone d’un vieux téléphone

il a été fait avant, mais voici mon point de vue sur la conversion d'un microphone de carbone rotatif téléphone vieux dans un micro de lo-fi.  Je voulais quelque chose que je pourrais utiliser si tout va bien sur scène, alors j'ai voulu rendre équili
Plus simple Smart Panel Home et Info Center - réutiliser un vieux téléphone !

Plus simple Smart Panel Home et Info Center - réutiliser un vieux téléphone !

Dans ce Instructable, je vais vous guider à travers les étapes que j'ai suivie à recibler un téléphone comme un appareil tactile maison intelligent pour ma chambre. Vous serez en mesure de contrôler vos lumières, connaître votre météo quotidienne et
Comment hack vieux téléphone portable pour mettre votre clavier sans fil bluetooth

Comment hack vieux téléphone portable pour mettre votre clavier sans fil bluetooth

Hi,Il s'agit de mon premier instructables si patient avec moi.L'idée m'est venue parce que je vais essayer de trouver un moyen peu coûteux de mise sous tension de mon clavier de Bluetooth intérieurs bon marché. Il semble que chaque mois de couple, qu
Réutiliser les vieux téléphones portables pour domotique

Réutiliser les vieux téléphones portables pour domotique

Salut... AmisNous avons utilisé vieux téléphones fonctionnalité comme les téléphones avec des modèles réduits, écran et clavier. Aujourd'hui notre tendance est un téléphone intelligent avec grand écran, 4G, slim, etc. Alors qu'en est-il de ces vieux
Renaître de vieux téléphone

Renaître de vieux téléphone

prendre un vieux téléphone et toute sorte de tige de goujon de votre choixÉtape 1: téléphone Obtenir un téléphoneÉtape 2: trouver une tige dans ce cas, un morceau d'une lampeEtape 3: percer, coller percer, collerEtape 4: monter une chose de beauté es
Construire votre propre intercom ou walkie talkie de deux vieux téléphones sans fil

Construire votre propre intercom ou walkie talkie de deux vieux téléphones sans fil

nous avons tous des vieux téléphones. Pourquoi ne pas les transformer en un interphone pour votre cabane enfants. Ou transformer deux vieux téléphones sans cordon d'attache talkie-walkie. Voici comment.Étape 1: matériaux Coupleur (j'ai eu le mien à F
Recycler l’or de vieux téléphone mobile

Recycler l’or de vieux téléphone mobile

Vieil or or recyclage de téléphones cellulaires de goupille de connecteurs plaqués or plaqué or de cartes de circuits imprimés, sortes de déchets électroniques. Recyclage des déchets. Comment à la ferraille des vieux téléphones cellulaires pour la ré
Vieux téléphone batterie voiture

Vieux téléphone batterie voiture

ce que c'est, est une voiture solaire, mais une batterie de téléphone au lieu de cellules solaires. Avec les voitures solaires vous ne pouvez pas toujours compter sur le soleil pour qu'il fonctionne tout le temps ou en passant par des troubles qui su
Vieux téléphone portable en nite lite

Vieux téléphone portable en nite lite

j'ai pensé que cela pourrait être une bonne utilisation de ce vieux téléphone portable, vous avez autour de la pose après vous mise à niveau de 4G LTE, ASAP, PDQ. La quantité de travail requis dépendra de quel type de téléphone que vous avez et combi