Перейти к содержанию

Дистанционное Gsm Управление Отопителем.


Рекомендуемые сообщения

Всем привет. Прошу помощи людей умеющих составлять программы для микроконтроллеров. Суть дела.

Увидел у китайцев вот это чудо Cellphone Phone PDA GSM RC Remote Control Socket Power Smart Switch назовём устройством,

и решил сделать GSM запуск таймера отопителя(проводок от кнопки таймера выведен), купил PDA GSM RC Remote.

Работает следующим образом: при помощи телефона sms командами программируется новый пин код и до 4 тел.

номеров пользователей, далее управление (вкл\выкл) осуществляется при дозвоне на номер sim которая в устройстве

(проходит гудок и устройство меняет состояние, производит сброс линии, деньги не тратятся), а ещё имеются две кнопки одна из

которых - ручное управление нагрузкой. Внутри устройства имеется ибп 220\12 В, далее на плате LM2596t-adj настроена на 3,5 В,

от 12 В питается реле коммутирующее нагрузку. Вот тут возникает проблема - устройство триггерное вкл\выкл, а нужен просто импульс при прохождении команды. Переключение состояния происходит не при нажатии кнопки ручного управления, а при её отпускании (не получается сигналом с реле выключить устройство). Немного изменив схему получилось добиться нужного импульса,

но хотелось бы обойтись без реле - с помощью микроконтроллера. Что нужно от мк:

на входе лог 1, на первом выходе лог 0(или в высоко импедансном состоянии), на втором выходе лог 1(или в высоко импедансном состоянии);

на входе лог 0, на первом выходе лог 1 на 0,8сек.(этот выход будет запускать таймер), на втором выходе лог 0 на 0,8сек должен появиться после того как на первом выходе лог 1 сменится лог 0 (этот выход будет использоваться для перевода GSM RC Remote со включенного состояния в выключенное), после перехода лог 0 в лог 1 на втором выходе - на вход придёт лог 1. Желательно мк работающий при питании 3,3 В. Лог 1=+Uпит лог 0=GND.

Отопитель это автомобильный автономный предпусковой подогреватель eberspacher или webasto.

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

так что вам надо конкретно?

я делал такое устройство, буквально неделю назад отправил прототип заказчику

тут есть немного информации о самой первой версии (на сайте еще не все выложил - некогда было)

http://ugolok-mastera.ru/proekt/gsm-sms_controller/sms_controller.htm

Устройство предназначено для управления нагрузкой и контроля температуры на удаленном объекте. Для связи используется канал связи сотового оператора стандарта GSM. Для организации связи используется GSM-модем Siemens-35.

Особенностью данного контроллера является использование радио-розеток, которые управляют нужной нагрузкой (нагреватели, вентиляция, освещение и другое).

Для управления нагрузкой и получения отчетов о состоянии контроллера и значении температуры используются SMS-команды.

Устройство имеет два цифровых датчика температуры типа DS18B20, радиопередатчик для передачи команд радио-розеткам и аккумуляторы, используемые для питания устройства при пропадании основного питания 220 Вольт.

На передней панели расположены индикаторы, на которых отображаются режимы работы контроллера. В процессе работы все действия пользователя подтверждаются соответствующими индикаторами и звуковыми сигналами.

В задней части устройства имеется кнопка, с помощью которой можно управлять нагрузкой, а так же входить в меню настройки. Длительное нажатие – более 7 секунд — настройка контроллера, короткое — местное управление нагрузкой. При нажатии на кнопку прозвучит звуковой сигнал, подтверждающий факт нажатия.

При коротком нажатии, если нагрузка была отключена, то по радио будет отправлена команда включения радио-розеток, если была включена — на отключение.

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

так что вам надо конкретно?

Устройство уже куплено, нужно всего то адаптировать его под мои задачи, а именно: выдавать короткий импульс на запуск штатного таймера (устройство триггерное вкл\выкл). Логику работы нужного микроконтроллера я описал.

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

уточните:

на входе лог 1:

на первом выходе лог 0(или в высокоимпедансном состоянии),

на втором выходе лог 1(или в высокоимпедансном состоянии);

на входе лог 0,:

на первом выходе лог 1

пауза 0,8сек.

на втором выходе лог 0 на 0,8сек

после перехода лог 0 в лог 1 на втором выходе - на вход придёт лог 1

это не понял! куда это относится?

Изменено пользователем Гость
Ссылка на комментарий
Поделиться на другие сайты

на входе лог 1:

на первом выходе лог 0(или в высокоимпедансном состоянии),

на втором выходе лог 1(или в высокоимпедансном состоянии);

на входе лог 0,:

на первом выходе лог 1 на 0,8сек.

пауза на 0,8сек

на втором выходе лог 0 на 0,8сек

после перехода лог 0 в лог 1 на втором выходе - на вход придёт лог 1

Это значит, что устройство переключится с вкл в выкл состояния и на вход контроллера придёт лог 1, а почему после перехода лог 0 в лог 1(или высокоимпедансное состояние, что даже лучше) потому, что на устройстве имеется кнопка ручного управления нагрузкой и переключение из одного состояния в другое (вкл\выкл) происходит при отпускании кнопки, и второй выход контроллера будет подключен к выводу кнопки.

Ссылка на комментарий
Поделиться на другие сайты

начало

вход = 1 =>выход № 1 = высокоимпедансное состояние; выход № 2 = высокоимпедансное состояние

вход = 0 =>выход № 1 = 1 на время 0,8сек

пауза 0,8сек

выход № 2 = 0 на время 0,8сек

в начало

Ссылка на комментарий
Поделиться на другие сайты

стоп

а неверно составлен алгоритм

в начале надо ждать перехода с 0 в 1? (изменения входа?)

а то при нуле на входе будет постоянно выполняться:

начало

выход № 1 = 1 на время 0,8сек

пауза 0,8сек

выход № 2 = 0 на время 0,8сек

в начало

Изменено пользователем Гость
Ссылка на комментарий
Поделиться на другие сайты

в начале надо ждать перехода с 0 в 1? (изменения входа?)

При включении, одновременно на вход контроллера через резистор с +Uпит контроллера придёт лог1

Ссылка на комментарий
Поделиться на другие сайты

начало

вход=1

выход № 1 = высокоимпедансное состояние

выход № 2 = высокоимпедансное состояние

вход=0

выход № 1 = 1

пауза 0,8сек

выход № 2 = 0

пауза 0,8сек

в начало

$regfile = "attiny13a.dat" ' Компилятор BASCOM
$crystal = 1200000
$hwstack = 16
$swstack = 16
$framesize = 16

Config Portb = Input
In_signal Alias Pinb.3									 ' Вход

Out_1 Alias Portb.2										 ' Выход А
Out_2 Alias Portb.1										 ' Выход Б


Start_prg:
If In_signal = 1 Then
 Out_1 = 0												 ' высокоимпедансное состояние
 Out_2 = 0												 ' высокоимпедансное состояние
 Config Out_1 = Input								 ' высокоимпедансное состояние
 Config Out_2 = Input								 ' высокоимпедансное состояние
Else
 Config Out_1 = Output
 Config Out_2 = Output
 Out_1 = 1 : Waitms 800
 Out_2 = 0 : Waitms 800
 Out_1 = 0												 ' Надо обнулять?
 Out_2 = 0											 ' Надо обнулять?
 Config Out_1 = Input								 ' высокоимпедансное состояние
 Config Out_2 = Input								 ' высокоимпедансное состояние
End If
Goto Start_prg

Скачатьprg_1.bin

Скачатьprg_1.hex

Изменено пользователем Гость
Ссылка на комментарий
Поделиться на другие сайты

Здравствуйте никак не могу скачать файлы с файлообменника, зарегистрировался, но пишет неверный логин или пароль пробовал востанавливать и менять не помогает. Если не затруднит скиньте в почту Alexsey625@yandex.ru. Спасибо!

Ссылка на комментарий
Поделиться на другие сайты

Там не надо регистрироваться, и так скачивает без проблем...

> Правила форума <

...из древних времен доходят до нас слухи о колдунах и волшебниках... - кто бы мог подумать, что так может начинаться дипломная работа по радиотехнике...

...это не дым от канифоли, нет... это души умерших транзисторов....

Первый закон Ома: никому не рассказывать про Ома!

Ну вот, а ты говорил ноль...

Ссылка на комментарий
Поделиться на другие сайты

Собрал, вход подтянут резистором на +Uпит, на выходе 1 светодиод анодом к контроллеру катод на минусе, на выходе 2 светодиод катодом к контроллеру анодом к +Uпит. Подаю питание ничего не моргает и не светится (очень хорошо так и должно быть) подаю минус на вход загораются оба светодиода, убираю минус со входа оба светодиода гаснут одновременно с выдержкой 0,8сек. А нужно чтоб при поданном минусе на вход; на выходе 1=1 на 0,8сек , пауза 0,8сек, выход 2=0 на 0,8сек. Fuse по умолчанию (не менял).

Изменено пользователем Alexsey625
Ссылка на комментарий
Поделиться на другие сайты

всё соответствует вашему алгоритму

код - выше

единственно не понятно, а то должно быть при нуле на входе в конце

как я понимаю, сейчас вам надо так:

начало

вход=0

выход № 2 = высокоимпедансное состояние

выход № 1 = 1

пауза 0,8сек

выход № 2 = 0

пауза 0,8сек

выход № 1 = высокоимпедансное состояние

выход № 2 = высокоимпедансное состояние

в начало

$regfile = "attiny13a.dat"
$crystal = 1200000
$hwstack = 16
$swstack = 16
$framesize = 16

Config Portb = Input
In_signal Alias Pinb.3									  ' Вход
Out_1 Alias Portb.2										 ' Выход А
Out_2 Alias Portb.1										 ' Выход Б

Start_prg:
  If In_signal = 1 Then
  Out_1 = 0											 '  высокоимпедансное состояние
  Out_2 = 0											 ' высокоимпедансное состояние
  Config Out_1 = Input								  ' высокоимпедансное состояние
  Config Out_2 = Input								  '  высокоимпедансное состояние
  Else
  Config Out_1 = Output
  Config Out_2 = Input								  '  высокоимпедансное состояние
  Out_1 = 1 : Waitms 800
  Config Out_2 = Output
  Out_2 = 0 : Waitms 800
  Out_1 = 0
  Config Out_1 = Input								  ' высокоимпедансное состояние
  Config Out_2 = Input								  '  высокоимпедансное состояние
  End If
Goto Start_prg

http://www.webfile.ru/ac3af0e63445876efc24d1e3cccf3325

Ссылка на комментарий
Поделиться на другие сайты

Я уже не знаю как объяснить, но попробую снова. Вход всегда подтянут резистором к +Uпит. Подаю питание соотв на входе 1 . Оба выхода в высокоимпедансном состоянии. На вход пришёл 0 и сидит ; на первом выходе должна появиться 1 на 0,8сек, через 0,8сек снова высокоимпедансное состояние, а на входе 0 никуда не пропадал; на втором выходе всё это время было высокоимпедансное состояние и изменится в 0 на 0,8сек только после того как на первом выходе 1 сменится высокоимпедансным состоянием (наверно по программистки это пауза). После того как на втором выходе 0 сменится высокоимпедансным состоянием устройство переключится и на входе контроллера установится 1.

Ссылка на комментарий
Поделиться на другие сайты

я уже отправил новое, проверьте почту

$regfile = "attiny13a.dat"
$crystal = 1200000
$hwstack = 16
$swstack = 16
$framesize = 16

Config Portb = Input
In_signal Alias Pinb.3									  ' Вход
Out_1 Alias Portb.2										 ' Выход А
Out_2 Alias Portb.1										 ' Выход Б

Start_prg:
  If In_signal = 1 Then
  Out_1 = 0											 '  высокоимпедансное состояние
  Out_2 = 0											 ' высокоимпедансное состояние
  Config Out_1 = Input								  ' высокоимпедансное состояние
  Config Out_2 = Input								  '  высокоимпедансное состояние
  Else													 '   На Вход Пришёл 0 И Сидит ;
  Config Out_2 = Input								  ' на втором выходе всё это время было высокоимпедансное состояние
  Config Out_1 = Output
  Out_1 = 1 : Waitms 800							    '   на первом выходе должна появиться 1 на 0.8сек,
  Out_1 = 0 : Config Out_1 = Input					  '  снова высокоимпедансное состояние,
  Config Out_2 = Output								 '  только после того как на первом выходе 1 сменится высокоимпедансным состоянием
  Out_2 = 0 : Waitms 800							    '    на втором выходе 0  на 0.8сек
  Config Out_2 = Input								  '  высокоимпедансное состояние
  End If
Goto Start_prg

Изменено пользователем Гость
Ссылка на комментарий
Поделиться на другие сайты

С новой прошивкой светодиод на первом выходе не светится ни при каких состояниях входа, а на втором выходе напротив горит постоянно.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...