Официальный сайт компании Arduino по адресу arduino.cc
GSM сигнализация с герконом сим900 ардуино уно
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
добрый день. я новичек, но нужно срочно собрать сигналку. в интернете нашла две отдельные команды. т.е. для геркона и пьезо спикера отдельно. т.е. мне нужнокогда геркон размыкается, пьезо пищит и шилд совершает звонок. эти две команды работают по отдельности.
const int buzzer = 3;
const int sensor = 4;
int state; // 0 close - 1 open wwitch
void setup()
{
pinMode(sensor, INPUT_PULLUP);
}
void loop()
{
state = digitalRead(sensor);
if (state == HIGH) {
tone(buzzer, 40);
}
else {
noTone(buzzer);
}
delay(200);
}
и для сим900 отдельно
#include <SoftwareSerial.h>
SoftwareSerial SIM900(7, 8); // Настройка последовательного порта для SIM900
char incoming_char=0; // Переменная содержит символы, которые рассылает SIM900
int salir = 0;
void setup()
{
SIM900.begin(19200); // Скорость последовательного набора для SIM900
delay(25000); // Задержка найти RED
Serial.begin(19200); // Скорость последовательного набора для Arduino
Serial.println("OK"); // OK сообщение в Arduino, чтобы знать, что все хорошо.
}
void call()
// Функция, которая позволяет вызывать локальную ячейку
{
// SIM900.println ( "ATD +77782886598;"); //Локальный номер
SIM900.println("ATD +77782886598;"); //сотовый
delay(100);
SIM900.println();
delay(60000); // Подождите 30 секунд ...
}
void loop()
{
call(); //позвонить
for(;;)
{
if(SIM900.available() >0)
{
incoming_char=SIM900.read(); //Получить символ из последовательного порта сотового.
Serial.print(incoming_char); //Вывести входящий символ в терминал.
}
if(Serial.available() > 0)
{
if(Serial.read() == 'A') break;
}
}
Serial.println("OK-2");
delay(100);
SIM900.println();
delay(30000);
while(1); // подождите некоторе время
}
проблема в том что я не знаю как их объеденить. пожалуйста помогите((((((
добрый день. я новичек
проблема в том что я не знаю как их объеденить. пожалуйста помогите((((((
блин, ну откуда вы взяли это слово - новичЕк ?!!! - это слово пишется через "О" !
Как обьеденить... тьфу. объедИнить эти два обрывка:
1) Начала обоих скетчей до setup() просто пишете подряд
2) Содержимое setup() второго скетча добавляете в setup первого
3) Функцию call() из второго скетча копируете в конец первого, все остальное из второго счетча можно выкинуть
4) в первом скетче вместо tone(buzzer, 40); пишете вызов call(), ветку else выкинуть
ВСЕ. Исправить ошибки.
Но работать как сигналка - не будет. Этому коду еще очень далеко до рабочего.
спасибо за ответ. писала в сонном состоянии и было не важно правильно ли я орфографически пишу или нет. а что и как нужно сделать чтоб она была рабочей?
Aidana. Под платформу Ардуино нет специализированых учебников,и разумеется учителей, по вопросу, как правильно писать программы(программные модули) под Ардуино ,и решать проблему с совмещением различных скетчей, которые отдельно работают. Но это не значит, что модули не совмещают и они не совместно работают. Просто рецепты у каждого свои. А вот подойдут они вам, я не скажу. Это вы должны решить сами. Мой рецепт, углубленое изучение Си и поиск оптимума перебором всевозможных вариантов.
ПС: Я конечно могу совместить эти скетчи за вас, и может они даже заработают. Но мой код покажется сложным для вас и я пока с этими модулями не работал.
Да уж, видно пора написать, наконец, инструкцию, как объединять скетчи.
Aidana, на первом этапе нужно переписать скетчи так, чтобы они не содержали delay(), обычно именно она не позволяет совместить скетчи.
Когда:
а) избавитесь от delay(),
б) поместите сюда результат согласно правилам форума,
в) снабдите все это принципиальной схемой,
тогда появится предмет для обсуждения.
и как, компилируется?
Навскидку
- скобки в строках 12 и 16 лишние.
- переменные remoteNumber[], incoming_char, salir и state, функция call() нигде не используются.
И главное - я же вам писал, что этот код далек от реального. Как только геркон замкнется, программа начнет звонить вам непрерывно. Запоминания состояния, чтобы не звонить вечно - в программе нет. Трубку вы не кладете, ответов от модема не получаете и анализируете. Проверки включения модема нет. Проверки наличия сети - нет. И так далее...
В разделе "Проекты" есть сигнализация на другом модеме. Посмотрите, чтобы хотя бы представлять обьем работы.
он не совершает звонок. спасибо вам за ответы