TXT ME (3 / 3 stap)

Stap 3: De code van de Arduino

/ * TEKST ME

Deze sketch voor de Arduino GSM shield, wacht op een SMS-bericht en weergegeven via de seriële poort en op Kims tekst ME machine.

Sommige code van Javier Zorzano / TD http://arduino.cc/en/Tutorial/GSMExamplesReceiveSMS * /

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

* T H E C I R C U IK T

*

* Een externe voeding is verplicht, anders het schild van de GSM niet werkt

* Het schild van de GSM is aangesloten op een Arduino Uno

* Er zijn twee servo's beide met GND verbonden en + 5V * de bedieningsleiding roterende servo naar pin 5 gaat

* De bedieningsleiding verticale servo gaat naar pin 10

* De klaar LED gaat naar pin 11 via een weerstand van 200 ohm

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

#include / / de GSM-bibliotheek

#include / / de servo-bibliotheek

#define PINNUMBER "XXXX" / / pincode voor de GSM SIM-kaart

#define rotaryPin 5 / / sluit pin 5 aan de roterende servo

#define verticalPin 10 / / pin 10 verbinden met de verticale servo

#define readyLed 11 / / Connect pin 11 LED waaruit dat GSM-eenheid blijkt is aangesloten

GSM gsmAccess; Initialiseren van de exemplaren van de bibliotheek

GSM_SMS sms; char senderNumber [20]; Matrix te houden van het nummer dat een SMS-bericht wordt opgehaald

Servo rotaryServo; Servo-object om te bepalen van roterende servo maken

Servo verticalServo; Servo-object om te bepalen van de verticale servo maken

int rotatie [] = {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 omhoog = 170; Definiëren van de twee uitersten van verticale servo

int omlaag = 117;

int inactivityTimer = 0;

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

* Instellen

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

VOID Setup

{

Serial.begin (9600); Seriële communicatie op 9600 rotary initialiseren

Servo.attach (rotaryPin); De verticale roterende servo koppelen

Servo.attach (verticalPin); Koppelen van de servo vinger Boole

notConnected = true; Status van de verbinding van de GSM

parkArm(); Verplaatsen naar een veilige ruimte als niet daar al

prompt();

parkArm(); Verplaatsen naar een veilige ruimte

terwijl (notConnected) / / Wait totdat GSM verbinding tot stand is gebracht

{

digitalWrite (readyLed, laag); De klaar LED uitschakelen

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

anders

{

Serial.println ('niet verbonden');

vertraging (1000);

}

}

Serial.println ("GSM geïnitialiseerd"); Vertrouwen gebouw bericht

Serial.println ("Waiting for berichten");

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

* De hoofdlus

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

void loop

{

char c;

Als er geen sms'en beschikbaar op gezette tijden een show maken

inactivityTimer = inactivityTimer ++; Voor elke lus tellen

Als (inactivityTimer > 300) / / ca. 1 sec per lus

{

inactivityTimer = 0; Reset de tomer

prompt(); Aandacht vestigen op jezelf

}

Hartslag op LED om te laten zien dat lus is nog steeds in een lus

digitalWrite (readyLed, laag); De klaar LED uitschakelen

delay(100); Destijds LED uitgeschakeld is

digitalWrite (readyLed, hoge); De klaar LED inschakelen

Als er een SMS beschikbaar

Als (sms.available())

{

inactivityTimer = 0; Als het bericht opnieuw inactiviteit timer

Serial.println ("bericht ontvangen:");

Bericht bytes lezen en afdrukken

while(c=SMS.Read())

{

raiseLetterArm (c); 'Afdrukken' perspex wapens

}

SMS.Flush(); Bericht verwijderen uit het geheugen van de modem

} delay(1000);

}

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

Vraagt iemand in de buurt

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

VOID prompt()

{

raiseLetterArm (84); "Afdrukken" tekst ME naar perspex wapens

raiseLetterArm (69);

raiseLetterArm (88);

raiseLetterArm (84);

raiseLetterArm (77);

raiseLetterArm (69);

}

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

* Zet de arm uit harm's way

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

VOID parkArm()

{

rotaryServo.attach (rotaryPin); De roterende servo koppelen

newServoPosition = 180; Park waar de arm geen kwaad doen kunt toen overgestapt op/af

currentServoPosition = 9; Zorg ervoor dat het is duidelijk dat een verhuizing nodig is

rotateServo(); Verplaatsen van de roterende servo

delay(2000); Wachten op de servo om er te komen

rotaryServo.detach (); Het zwijgen van dingen

}

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

* Het verhogen van de arm van de brief opgegeven

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

VOID raiseLetterArm (int charEntered)

{

rotaryServo.attach (rotaryPin); Bevestig de servo op pin

'A' is 65 'a' is 97 'Z' is 90

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

{

Dan is geen A tot Z dus niets doen - een beetje wachten

}

anders

{

Maken van kleine letters naar hoofdletters

Als (charEntered > 96)

{

charEntered = charEntered - 32;

}

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

{

newServoPosition = draaiing [charEntered - 65]; Instellen waar te draaien van de arm te

rotateServo();

}

Toon wat is verzonden:

Serial.Print ("je stuurde me: \'");

Serial.write(charEntered);

Serial.Print ("\' ASCII-waarde:");

Serial.println(charEntered);

pressDown ();

}

rotaryServo.detach (); Het stoppen van willekeurige bewegingen}

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

* Duw de vinger - zorg ervoor dat het is alvorens terug te keren

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

VOID pressDown()

{

verticalServo.attach (verticalPin); Koppelen van de vinger-servo

delay(500);

for (int i = 0; ik < omhoog / omlaag; i ++)

{

verticalServo.write (up-i); Vinger naar beneden één graad tegelijk

delay(10);

}

delay(2000);

for (int i = 0; ik < omhoog / omlaag; i ++)

{

verticalServo.write (down + i); Vinger omhoog één graad tegelijk

delay(10);

}

delay(500);

verticalServo.detach (); Het stoppen van willekeurige bewegingen}

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

* Bewegen de arm - zorg ervoor dat de vinger omhoog voordat u it *** /

VOID rotateServo()

{

int verschil;

int noOfSlowSteps = 5; Nee was van graden om langzaam te bewegen 5

int waitForServo = 20; Niet teveel verminderen of het mist stappen

verticalServo.attach (verticalPin); Koppelen van de vinger-servo

verticalServo.write (omhoog); Zorg ervoor dat het uit de weg

verticalServo.detach (); Loskoppelen

verschil = newServoPosition - currentServoPosition;

Als (verschil > noOfSlowSteps)

{

rotaryServo.write (newServoPosition - noOfSlowSteps); Snel verplaatsen

currentServoPosition = newServoPosition - noOfSlowSteps; Opmerking nieuwe positie}

Als (verschil < -1 * noOfSlowSteps)

{

rotaryServo.write (newServoPosition + noOfSlowSteps); Snel verplaatsen

currentServoPosition = newServoPosition + noOfSlowSteps; Opmerking nieuwe positie

}

verschil = newServoPosition - currentServoPosition; Verschil berekenen als (verschil > 0)

Dan Verhoog langzaam huidige positie totdat verschil 0 is

{

for (int i = 0; ik < verschil + 1; i ++)

{

rotaryServo.write (currentServoPosition + i);

vertraging (waitForServo);

}

}

anders / / vervolgens langzaam afname huidige positie tot verschil 0 is

{

for (int i = 0; ik < (-1 * verschil) + 1; i ++)

{

rotaryServo.write (currentServoPosition - ik);

vertraging (waitForServo);

}

}

currentServoPosition = newServoPosition; Vergeet niet waar arm is}

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

* Ruitenwisser test (uitgecommentarieerd)

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

/ * voor (brief = 0; brief < numberOfLetters; brief ++)

{

newServoPosition = draaiing [nieuwsbrief]; Instellen waar te draaien van de arm te

rotateServo();

Serial.Print ("rotatie [brief]");

Serial.println (rotatie [brief]);

}

delay(5000);

voor (brief = numberOfLetters; brief + 1 > 0; brief--)

{

newServoPosition = draaiing [nieuwsbrief]; Instellen waar te draaien van de arm te

rotateServo();

Serial.Print ("rotatie [brief]");

Serial.println (rotatie [brief]);

}

delay(5000); */

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

/ * Kalibreren van de roterende servo (uitgecommentarieerd)-moet instellen potpin

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

/*

Val = analogRead(potpin); leest de waarde van de potentiometer (waarde tussen 0 en 1023)

Val = kaart (val, 0, 1023, 0, 179); schaal om het te gebruiken met de servo (waarde tussen 0 en 180)

rotaryServo.write(val); stelt u de positie van de servo volgens de geschaalde waarde

delay(15); wacht tot de servo om er te komen

de waarde die u leest uitprinten:

Serial.println(val); */

Gerelateerde Artikelen

Live Txts weergeven op kostuum op feestje w / Scrolling LED riem gesp

Live Txts weergeven op kostuum op feestje w / Scrolling LED riem gesp

dit project toont hoe te sturen van SMS-berichten naar een goedkope scrolling LED-display via een Android app en arduino met USB host schild.Het project werd oorspronkelijk geïnspireerd door een vriend willen maken van een "sexting thema" kostuu
Hoe te stoppen met Nativelog.txt uit Appearing / wordt gemaakt op Dekstop (minecraft)

Hoe te stoppen met Nativelog.txt uit Appearing / wordt gemaakt op Dekstop (minecraft)

Dus je wilde minecraft spelen maar er is dat nativelog.txt-bestand dat houdt wordt gemaakt op dekstop alhoewel u het elke keer? Nou, het is een bestand dat de minecraft launcher automaticaly maakt voor eigen doeleinden zijn, maar hier is een super ee
Stuur E-mail + TXT wanneer u terugkeert home (detecteert wanneer iPhone wordt weer toegevoegd aan het netwerk)

Stuur E-mail + TXT wanneer u terugkeert home (detecteert wanneer iPhone wordt weer toegevoegd aan het netwerk)

dit project stuurt een dagelijkse tekst message en email waarschuwing wanneer uw iPhone dicht bij uw Wi-Fi-netwerk krijgt, zoals wanneer je terug naar huis. De meldingen zijn beperkt tot slechts een keer een dag stuur en alleen tijdens een gebruiker
Txt in school

Txt in school

dit is hoe tekstbericht op school het is zeer eenvoudig en alles wat nodig is 2 huishoudelijke artikelen en 2 gereedschappen. Dit is voor de Instructables mash-up wedstrijd zo Beoordeel het hoge!!!u moet dit alleen gebruiken in studie hallen en niet
Arduino Rocket datalogger

Arduino Rocket datalogger

Heb je ooit wilde onderzoeken van elk aspect van uw model raketten vlucht voor slechts £15?In dit instructable ik bevatten code en instructies voor een Arduino raket datalogger voor het meten van de hoogte van de raket, versnelling, temperatuur en ro
FPV 250 klasse race drone

FPV 250 klasse race drone

Hallo iedereen. Ik stel voor dat je een instructie over hoe te bouwen uw 250 klasse racing quadrocopter.Deze instructie is voor degenen die wil zelf monteren hun quad racen, maar weet niet welke onderdelen kiezen om mee te beginnen. Uiteraard stel ik
ADS-B Real-time flight tracker en controle apparaat met behulp van Intel Edison

ADS-B Real-time flight tracker en controle apparaat met behulp van Intel Edison

Automatische afhankelijk Surveillance-Broadcast (ADS-B) is een nauwkeurige satelliet-gebaseerd systeem voor toezicht. ADS-B maakt gebruik van GPS-technologie om te bepalen van de locatie van een vliegtuig, luchtsnelheid en andere gegevens, en zendt d
Rapier Fuego Retro Model vliegtuig

Rapier Fuego Retro Model vliegtuig

Neem een reis terug naar de jaren 1950 met deze retro stijl balsa modelvliegtuigen. Herbeleef de geur van balsa cement en prachtig geluid en plaats van uw eigen mini jet stijgt boven het veld vliegen.Dit ontwerp is gebaseerd op de Fuego-50 een Jetex
Geleidende lijmen en geleidende draad: Maak een LED-Display en stof Circuit dat van rolt.

Geleidende lijmen en geleidende draad: Maak een LED-Display en stof Circuit dat van rolt.

Maak uw eigen geleidende stoffen, draad, lijm en tape, en gebruik ze potentiometers, weerstanden, schakelaars, LED displays en circuits te maken.Met behulp van geleidende lijm en geleidende draad kun je LED displays en circuits op een flexibele stof.
Hoe maak je kleine robots met nRover bestuur

Hoe maak je kleine robots met nRover bestuur

De nRover, is een kleine bord gemaakt om te bouwen van kleine robots zoals UGV (onbemande ground voertuigen), lijn volgeling of Domotica, het kan worden gecontroleerd door wifi, Bluetooth en radio-controle. Het belangrijkste doel is de ontwikkeling v
Bouw uw eigen CNC-Machine.

Bouw uw eigen CNC-Machine.

Toen ik voor het eerst naar Pittsburgh verplaatst, had ik een serendipitous moment wanneer ik liep door een plaats genaamd TechShop. Velen van u kunnen heb gehoord maar ik heb niet en het personeel was vriendelijk genoeg om me te geven tour. De plaat
Raspberry Pi - visuele Touchpad / seconde Display

Raspberry Pi - visuele Touchpad / seconde Display

Dit instructable zal tonen hoe te om toe te voegen van een kleine (meestal SPI gebaseerd) touchscreen aan bijna elke pi project en spiegel van de HDMI out aan het als een secundaire vertoning. We zullen ook laten zien hoe te aanvaarden aanraakinvoer
Save The World: Minecraft PE

Save The World: Minecraft PE

Gezien het aantal uren hebben mijn kinderen Minecraft gespeeld. Ik ben blij dat ze nooit verloren hun spelgegevens of Minecraft wereld, waar ze werken. Net als iedereen, ik regelmatig back-ups mijn apparaat met behulp van iTunes. En gelukkig is het n
Star Wars "en" Star Trek in Minecraft met frambozen Jam Mod

Star Wars "en" Star Trek in Minecraft met frambozen Jam Mod

Ik zal uitleggen hoe (a) gemakkelijk maken van Star Wars en Star Trek (en andere) 3D modellen in Minecraft en (b) vliegen een ruimteschip in Minecraft (of zelfs hebben een andere entiteit, zoals een vleermuis of een zombie, vliegen het!), met behulp