Как объединить два скетча в один

от admin

Объединить два скетча вмести, как это сделать?

Здравствуйте ! помогите пожалуйста, есть два скетча и их нужно объединить. первый делает звонок на телефон при срабатывания датчика удара, второй типа центральный замок , мне нужно чтобы в функции закрытие дверей включался первый скетч.

первый /// GSM Датчик удара
#include SoftwareSerial.h
SoftwareSerial gsm(7, 8);

#define LED 13
#define ShockPin 3 // датчик удара
int ShockVal;
#define TELLNUMBER «ATD+79021039665;» // номер на который будет звонить датчик#define pinBOOT 5

void setup() <
Serial.begin(9600);
delay(1000);
gsm.begin(19200);
pinMode(LED, OUTPUT);

delay(1000);
digitalWrite(LED, HIGH);

delay(2000);
while(gsm.find(«STARTUP»));
gsm.println(«ATE0»);

while(1) <
gsm.println(«AT+COPS?»);
if (gsm.find(«+COPS: 0»)) break;
delay(50);
digitalWrite(LED, HIGH);
delay(500);
>

digitalWrite(LED, LOW);
delay(1500);
digitalWrite(LED, HIGH);
delay(250);
digitalWrite(LED, LOW);

void loop() <
Serial.println(ShockVal);
ShockVal = digitalRead(ShockPin);
if(ShockVal == LOW) <
digitalWrite(LED,HIGH);
gsm.println(TELLNUMBER);
delay(2500);
>
else
<
digitalWrite(LED, LOW);
>

второй
#include RemoteReceiver.h
int dver=12;
int bag=4;

RemoteReceiver::init(0, 3, showCode);
pinMode (dver,OUTPUT);
pinMode (bag,OUTPUT);
>

void showCode(unsigned long receivedCode, unsigned int period)
<

Serial.print(«Code: «);
Serial.print(receivedCode);
Serial.print(«, period duration: «);
Serial.print(period);
Serial.println(«us.»);
// открытие и зокрытие дверей

if (receivedCode == 411878) // закрыто
<
digitalWrite(dver,LOW)
>

if (receivedCode == 411810) // открыто
<
digitalWrite(dver,HIGH);

// багажник
if (receivedCode == 411864)
<
digitalWrite(bag,HIGH);
delay(100000);
digitalWrite(bag,LOW);
>

  • Вопрос задан более трёх лет назад
  • 1937 просмотров
  • Facebook
  • Вконтакте
  • Twitter

Вот так, только откуда процедура showCode будет вызываться?

  • Facebook
  • Вконтакте
  • Twitter

извините но я не понял вас, я не селен в это

компилятором проверил без ошибок , завтра на ардуине попробую
спасибо .

Здравствуйте, помогите пожалуйста объединить два скетча

Код для создания Ping:

byte mac[] = <0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED>; // max address for ethernet shield

byte ip[] = <192,168,0,177>; // ip address for ethernet shield

IPAddress pingAddr(0,0,0,0); // ip address to ping

SOCKET pingSocket = 0;

char buffer [256];

ICMPPing ping(pingSocket, (uint16_t)random(0, 255));

dns.getHostByName(«ya.ru»,pingAddr); // at this point the function works

ICMPEchoReply echoReply = ping(pingAddr, 4);

if (echoReply.status == SUCCESS)

«Reply[%d] from: %d.%d.%d.%d: bytes=%d time=%ldms TTL=%d»,

sprintf(buffer, «Echo request failed; %d», echoReply.status);

Код для отправки сообщения:

#include
#include
#include
#include
#include
#include

#include
#include
#include
#include
#include
#include
#include
#include
#include

//структура для сообщения
struct Message
<
String From;//адрес отправителя
String To;// адрес получателя
String Subject;// Тема письма
String Body;// Текст письма
>;

//mac адрес устройства (можно не менять)
byte mac[] = <
0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x05 >;

//IP адрес адруины (можно не менять)
IPAddress ip(192,168,1,48);

// IP smtp сервера
IPAddress server(87,250,251,50);
// IP других сереров можно найти в инете

// логин и пароль к почтовому сервису
char login[] = «A. @yandex.ru»;//
char password[] = «A. «;

// создаем экземпляр клиента
EthernetClient client;

void setup() <
Serial.begin(9600);// UART
Ethernet.begin(mac,ip);// Запускаем шилд
Serial.println(«Start»);
>

void loop() <
while(Serial.available()) <
char inSerialChar = 0;
inSerialChar = Serial.read();
if(inSerialChar == ‘s’) <
SendMessage();// При отправке в дуину ‘s’, отправляем сообщение.
>
>
>
// метод подключения к серверу
bool connectToServer() <
if(client.connected()) <
>
else <
if(client.connect(server,25)) <
return true;
>
else <
return false;
>
>
>

// метод отправки сообщения
void SendMessage() <
Serial.println(«Please wite…»);
LogPass();
Message message = <
«A. @yandex.ru»,
«B. @yandex.ru»,
«Проба пера»,//тема
«Огромный привет от Ардуино. » >;//само сообщение
client.println(«MAIL From:<«+message.From+»>»);
delay(250);
client.println(«RCPT To:<«+message.To+»>»);
delay(250);
client.println(«DATA»);
delay(250);
client.println(«From:»+message.From);
client.println(«To:»+message.To);
client.println(«Subject:»+message.Subject);
delay(250);
client.println(message.Body);
delay(250);
client.println(«.»);// поприходуточкисерверставитсообщениевочередь
delay(250); // на отправку
client.println(«QUIT»);// как только закрыли соединение, сообщение улетает
delay(250);
Serial.println(«Message sending…»);
>

// подключение к серверу и авторизация
void LogPass() <
char array[64];// массив для кодирования
if(connectToServer()) <
client.println(F(«helo 1.2.3.4»));
delay(250);
client.println(F(«AUTH LOGIN»));
delay(250);
client.println(strToBase64(login));
delay(250);
client.println(strToBase64(password));
delay(250);

>
else <
Serial.println(«Server not connected…»);
>

// кодировка Base64
String strToBase64(char str[]) <
char charArray[64];
base64_encode(charArray,str,strlen(str));
String result = charArray;
return result;
>

Как объединить два скетча в один

Похожие статьи