Ви не увійшли.
Сторінки 1
Проверил только что на СД все работает так как хотел. Еще раз огромное спасибо. Готов проставиться немецким пенным.
Большое человеческое спасибо, сегодня залью, попробую погонять.
Задача такова, что по утрам приезжают грузиться курьеры и дверь постоянно открыта, зимой это не сильно комильфо, а так завеса будет включаться автоматически только тогда когда дверь долго открыта. Это бывает не так часто, утром 2-4 раза, и в течении дня, если товар приезжает.
Я так понял мне нужно 2 таймера.
1й например timer_vkl запускается при открытии двери (геркон=0 разомкнут) и начинает отсчет. Дальше дуня смотрит, если значение таймера более 15сек, включается реле с нагрузкой.
Когда геркон=1 (замкнут) таймер останавливается, дуня смотрит на реле, если реле включено, запускается второй таймер (timer_otkl) при достижении 30 сек, реле отключается.
Как то так.
Осталось понять, как засунуть это в скетч
Спасибо, попробую.
Добрый день.
Помогите пожалуйста решить задачу:
Есть входная дверь, над дверью висит тепловая завеса.
Нужно чтобы завеса включалась если дверь открыта более 15 сек и автоматически отключалась через 30 сек после закрытия двери.
Из того что в наличии:
Геркон
Плата реле
Ардуино уно
Прямые руки
Чего не хватает: мозгов и опыта для написания скетча.
Мигать светодиодами и показывать время я научился, а как прикрутить таймеры с отсчетом к сожаленью не соображу.
Имея в меге 4 Serial на борту, зачем софтсериал?
Вы написали про 4 ноги, это 0-1, а какие еще?
Еще, если я соединяю шилд бутербродом к меге, первый скетч так же не работает.
Имея в меге 4 Serial на борту, зачем софтсериал?
Честно сам не знаю. Работает полностью только с первым скетчем. Если занимаю 0-1ноги у меги, шилд не работает. Может быть я что-то не так делаю.
Добрый день. Помогите пожалуйста решить задачу.
1. Есть ардуино мега, GSM шилд sim900, релюшки, датчики и пр.
2. Хочу написать проект из 2х частей:
1. По звонку с моего номера включается прожектор на площадке, через заданное время автоматически отключается. Необходимо для того, чтобы по приезду на дачу зимой после работы, прожектор освещал площадку для машины, и не нужно было парковаться в полной темноте.
2. Управление отоплением по смс, по одной команде (stat - присылалась информация о текущем состоянии дел: температура, состояние реле: вкл/выкл) По другой команде включались 2 реле, по третьей задавалась нужная температура. Соответственно задается нужная температура, и включается реле, после достижения необходимой температуры, реле автоматом отключались.
На данный момент есть скетч который заставил работать мой GSM shield.
#include <SoftwareSerial.h>
SoftwareSerial SIM900(10, 11);
void setup()
{
Serial.begin(19200);
SIM900.begin(19200);
InitGprs();
}
void loop()
{
if(Serial.available())
{
char x = Serial.read();
SIM900.print(x);
}
if(SIM900.available())
{
char y = SIM900.read();
Serial.print(y);
}
}
void InitGprs()
{
SIM900.print("AT+CMGF=1\r"); //ВКЛЮЧАЕТ ТЕКСТОВЫЙ РЕЖИМ ПЕРЕДАЧИ ДАННЫХ
delay(300);
SIM900.print("AT+IFC=1, 1\r"); //РЕЖИМ ПЕРЕДАЧИ ДАННЫХ ОТ МОДУЛЯ В ПОРТ И ОБРАТНО
delay(300);
SIM900.println("AT");
}
Есть второй код, который по идее должен соответствовать задаче №1, но не работает.
#include <SoftwareSerial.h>
SoftwareSerial Serial(10, 11);
String currStr = "";
boolean isStringMessage = false; // Переменная принимает значение True, если текущая строка является сообщением
int led = 13;
void setup()
{
pinMode(led, OUTPUT);
Serial.begin(19200);
// настройка шилда
Serial.print("AT+CMGF=1\r"); // устанавливает текстовый режим смс-сообщения
delay(300);
Serial.print("AT+IFC=1, 1\r"); // устанавливает программный контроль потоком передачи данных
delay(300);
Serial.print("AT+CPBS=\"SM\"\r"); // открывает доступ к данным телефонной книги SIM-карты. У вас может отличатся!
delay(500);
Serial.print("ATS0=2\r"); // поднимать трубку после второго звонка
}
void loop()
{
if(Serial.available())
{
char currSymb = Serial.read();
if('\r' == currSymb)
{
if(isStringMessage)
{
if (!currStr.compareTo("infa")) // блок infa
{
delay(2000);
Serial.println("AT + CMGS = \"+7yornumber\""); // укажите свой номер!
delay(100);
Serial.println("HELLO");
delay(100);
Serial.println((char)26);
delay(100);
Serial.println();
}
else if (!currStr.compareTo("vkl")) // блок vkl
{
delay(2000);
digitalWrite(led, HIGH);
Serial.println("ATD + +7yornumber;"); // укажите свой номер!
}
else if (!currStr.compareTo("otkl")) // блок otkl
{
delay(2000);
digitalWrite(led, LOW);
Serial.println("ATD + +7yornumber;"); // укажите свой номер!
}
else if (!currStr.compareTo("bal")) // блок bal
{
Serial.print("ATD#100#;\r"); // делаем запрос баланса (мтс), а ответ ловится в блоке ниже...
}
isStringMessage = false;
}
else
{
if(currStr.startsWith("+CMT"))
{
//если текущая строка начинается с "+CMT",
//то следующая строка является сообщением
isStringMessage = true;
}
if(currStr.startsWith("+CUSD")) // этот блок отлавливает ответ на запрос баланса и отправляет его смской
{
currStr = currStr.substring(currStr.indexOf("Balance"),currStr.indexOf("r"));
delay(2000);
Serial.println("AT + CMGS = \"+yornumber\""); // укажите свой номер!
delay(100);
Serial.println(currStr);
delay(100);
Serial.println((char)26);
delay(100);
Serial.println();
}
}
currStr = "";
}
else if('\n' != currSymb)
{
currStr += String(currSymb);
}
}
}
Как я понимаю, в нем не корректна работа с моим шилдом, и нужно добавить работу именно по моим пинам, пробовал разные варианты, но не получается.
Помогите пожалуйста.
Сторінки 1