GSM code
#include <SoftwareSerial.h>
char inchar; // Will hold the incoming character from the GSM shield
SoftwareSerial SIM900(7, 8);
int led1 = 10;
int led2 = 11;
int led3 = 12;
int led4 = 13;
void setup()
{
Serial.begin(19200);
// set up the digital pins to control
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
// wake up the GSM shield
SIM900power();
SIM900.begin(19200);
delay(20000); // give time to log on to network.
SIM900.print("AT+CMGF=1\r"); // set SMS mode to text
delay(100);
SIM900.print("AT+CNMI=2,2,0,0,0\r");
// blurt out contents of new SMS upon receipt to the GSM shield's serial out
delay(100);
Serial.println("Ready...");
}
void SIM900power()
// software equivalent of pressing the GSM shield "power" button
{
digitalWrite(9, HIGH);
delay(1000);
digitalWrite(9, LOW);
delay(7000);
}
void loop()
{
//If a character comes in from the cellular module...
if(SIM900.available() >0)
{
inchar=SIM900.read();
if (inchar=='#')
{
delay(10);
inchar=SIM900.read();
if (inchar=='a')
{
delay(10);
inchar=SIM900.read();
if (inchar=='0')
{
digitalWrite(led1, LOW);
}
else if (inchar=='1')
{
digitalWrite(led1, HIGH);
}
delay(10);
inchar=SIM900.read();
if (inchar=='b')
{
inchar=SIM900.read();
if (inchar=='2')
{
digitalWrite(led2, LOW);
}
else if (inchar=='3')
{
digitalWrite(led2, HIGH);
}
delay(10);
inchar=SIM900.read();
if (inchar=='c')
{
inchar=SIM900.read();
if (inchar=='4')
{
digitalWrite(led3, LOW);
}
else if (inchar=='5')
{
digitalWrite(led3, HIGH);
}
delay(10);
inchar=SIM900.read();
if (inchar=='d')
{
delay(10);
inchar=SIM900.read();
if (inchar=='6')
{
digitalWrite(led4, LOW);
}
else if (inchar=='7')
{
digitalWrite(led4, HIGH);
}
delay(10);
}
}
SIM900.println("AT+CMGD=1,4"); // delete all SMS
}
}
}
}
}
Bluetooth code
#include <SoftwareSerial.h>
const int rxPin = 2; //SoftwareSerial RX pin, connect to JY-MCY TX pin
const int txPin = 4; //SoftwareSerial TX pin, connect to JY-MCU RX pin
// level shifting to 3.3 volts may be needed
SoftwareSerial mySerial(rxPin, txPin); // RX, TX
const int led1 = 10; // led pin
const int led2 = 11; // led pin
const int led3 = 12; // led pin
const int led4 = 13; // led pin
int state = 0; // if state is 1, the LED will turn on and
// if state is 0, the LED will turn off
int flag = 0; // a flag to prevent duplicate messages
void setup() {
// sets the pins as outputs:
pinMode(led1, OUTPUT);
mySerial.begin(9600);
digitalWrite(led1, LOW); // LED is initially off
pinMode(led2, OUTPUT);
mySerial.begin(9600);
digitalWrite(led2, LOW); // LED is initially off
pinMode(led3, OUTPUT);
mySerial.begin(9600);
digitalWrite(led3, LOW); // LED is initially off
pinMode(led4, OUTPUT);
mySerial.begin(9600);
digitalWrite(led4, LOW); // LED is initially off
}
void loop() {
//reads serial input and saves it in the state variable
if (mySerial.available() > 0){
state = mySerial.read();
flag=0; //clear the flag so we can print the state
}
// if the state is '0' the LED will turn off
if (state == '2') {
digitalWrite(led2, LOW);
if(flag == 0){
mySerial.println("LED: off");
flag = 1;
}
}
if (state == '0') {
digitalWrite(led1, LOW);
if(flag == 0){
mySerial.println("LED: off");
flag = 1;
}
}
if (state == '4') {
digitalWrite(led3, LOW);
if(flag == 0){
mySerial.println("LED: off");
flag = 1;
}
}
if (state == '6') {
digitalWrite(led4, LOW);
if(flag == 0){
mySerial.println("LED: off");
flag = 1;
}
}
// if the state is '1' the led will turn on
else if (state == '7') {
digitalWrite(led4, HIGH);
if(flag == 0){
mySerial.println("LED: on");
flag = 1;
}
}
// if the state is '1' the led will turn on
else if (state == '5') {
digitalWrite(led3, HIGH);
if(flag == 0){
mySerial.println("LED: on");
flag = 1;
}
}
// if the state is '1' the led will turn on
else if (state == '1') {
digitalWrite(led1, HIGH);
if(flag == 0){
mySerial.println("LED: on");
flag = 1;
}
}
// if the state is '1' the led will turn on
else if (state == '3') {
digitalWrite(led2, HIGH);
if(flag == 0){
mySerial.println("LED: on");
flag = 1;
}
}
}