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

Дмитрий -

Members
  • Постов

    25
  • Зарегистрирован

  • Посещение

Электроника

  • Стаж в электронике
    Не связан с электроникой

Посетители профиля

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

Достижения Дмитрий -

Новобранец

Новобранец (2/14)

  • 10 постов на форуме
  • Неделя на форуме
  • Месяц на форуме
  • Год на форуме

Последние значки

0

Репутация

  1. Программа для говорящей GSM-сигнализации на языке BASCOM-AVR ' Авторская работа. Автор: Дмитрий Абловацкий. 'Программа для говорящей GSM сигнализации на модуле SIM800L. 'SIM800L Revision:1418B04SIM800L24. 'Настройка микроконтроллера Attiny85: фюзы, изменение только LOW на $E2 $regfile = "attiny85.dat" $crystal = 8000000 $hwstack = 40 $swstack = 16 $framesize = 32 Config Portb.0 = Input Config Portb.1 = Output Config Portb.2 = Input Open "comb.3:9600,8,n,1" For Input As #2 'RXD - вход Open "comb.4:9600,8,n,1" For Output As #1 'TXD - выход Dim Buffered As String * 300 Dim On_off As Bit Dim In_str As Byte Dim I As Byte Dim I1 As Long Dim Telephone As String * 12 Config Debounce = 100 Telephone = "registered" ' - - - - - - - - - - -Подготовка модуля - - - - - - - - - - Reset Portb.1 'выход модуля из спящего режима Wait 12 ' время для самоподготовки модуля Print #1 , "AT" ' Проверка на готовность модуля к работе Input #2 , Buffered ' Ответ In_str = Instr(buffered , "0") If In_str = 0 Then Waitms 250 Print #1 , "ATE0V0+CMEE=0;+CLIP=0" 'Выкл эха, только код ошибки, выключить АОН Input #2 , Buffered ' Ответ 'Waitms 250 'Print #1 , "AT+CNMI=1,2,0,0,0" ' СМС не сохранять, направлять в микроконтроллер 'Input #2 , Buffered ' Ответ Waitms 250 Print #1 , "ATS0=0" ' автоответ ручной Input #2 , Buffered ' Ответ Waitms 250 Print #1 , "AT+CSCLK=1" ' спящий режим Input #2 , Buffered ' Ответ Waitms 250 Print #1 , "AT+CLCC=1" ' установить автоматическое отображение статуса Input #2 , Buffered ' Ответ Waitms 250 Print #1 , "AT&W" ' сохранить Input #2 , Buffered ' Ответ End If Print #1 , "AT+CPIN?" ' Готовность модуля к работе с картой Input #2 , Buffered ' Ответ +CPIN READY или 4- нет карты In_str = Instr(buffered , "SIM PIN") Input #2 , Buffered ' Ответ 0 - OK или нет ответа If In_str <> 0 Then 'если карта есть, но нужен PIN - код Print #1 , "AT+CPIN=0000" 'PIN - код !Возможно Сим-карта заблокируется после 3 неправильных Input #2 , Buffered ' Ответ 0 - OK или 4- неправильный PIN - код Input #2 , Buffered ' Ответ +CPIN READY или нет ответа Input #2 , Buffered ' Ответ Call Ready или нет ответа Input #2 , Buffered ' Ответ SMS Ready или нет ответа End If Wait 2 For I = 1 To 3 Print #1 , "AT+CPAS" 'Готовность к выполнению команд Input #2 , Buffered ' Ответ In_str = Instr(buffered , "0") If In_str <> 0 Then 'Если модуль готов к работе Wait 1 Print #1 , "AT+CREG?" ' проверка на регистрацию в сети Input #2 , Buffered ' Ответ In_str = Instr(buffered , ",1") If In_str <> 0 Then ' если зарегистрирован Goto M1 ' выход , иначе ещё попытки End If End If If I = 2 Then Wait 1 Print #1 , "AT+CFUN=1,1" 'перезагрузка модуля Input #2 , Buffered ' Ответ Wait 5 End If Wait 5 Next M1: Do ' - - - - - - - - - - - PIR датчик - - - - - - - - - - If Pinb.2 = 1 And On_off = 1 And Pinb.0 = 1 Then ' если 1 Wait 3 ' время для пробуждения SIM800L For I = 1 To 3 ' три попытки дозвониться Print #1 , "AT+CCALR?" ' идентификатор готовности совершить звонок Input #2 , Buffered ' Ответ Input #2 , Buffered ' Ответ In_str = Instr(buffered , " 1") If In_str <> 0 Then ' если готов совершить звонок ' если 2 Wait 1 Print #1 , "ATD" ; Telephone ; ";" ' набор номера Input #2 , Buffered 'ответ Input #2 , Buffered 'ответ Input #2 , Buffered 'ответ ' голосовое соединение In_str = Instr(buffered , "3,0,0") ' If In_str <> 0 Then ' если голосовое соединение ' если 3 For I1 = 1 To 4000000 ' примерно 40 сек ожидание, если соединение и бездействие до сброса If Pinb.3 = 0 Then ' если абонент возьмёт трубку или сбросит соединение Input #2 , Buffered 'ответ Wait 1 For I1 = 1 To 500000 ' примерно 5 сек ожидание сброса If Pinb.3 = 0 Then ' если сброс соединения Input #2 , Buffered 'ответ Goto M2 End If Next In_str = Instr(buffered , "0,0,0") If In_str <> 0 Then ' если голосовое соединение Print #1 , "AT+CREC=4,C:\User\3__.amr,1,100" ' передача речевого сообщения Input #2 , Buffered ' Ответ Wait 8 'Время речевого сообщения + добавленное M2: Waitms 250 Print #1 , "ATH0" Input #2 , Buffered Bitwait Pinb.2 , Reset Goto M1 End If End If Next End If ' 3-End If End If ' 2-End If Wait 1 Print #1 , "ATH0" Input #2 , Buffered Wait 10 Next End If ' 1-End If ' - - - - - - - - - - -Проверка на входящий звонок по RING - - - - - - - - - - If Pinb.0 = 0 Then ' если поступил звонок ' - - - - - - - - - - - включение и выключение сигнализации - - - - - - - - - - Input #2 , Buffered ' Ответ +CLCC: 1,1,4,0,0,"+7**********",145,"" In_str = Instr(buffered , "+7" ) If Telephone = "registered" Then Telephone = Mid(buffered , In_str , 12 ) Else In_str = Instr(buffered , Telephone ) End If Input #2 , Buffered ' Ответ 2 - первый звонок Input #2 , Buffered ' Ответ 2 - второй звонок If In_str <> 0 Then ' если зарегистрированный номер телефона In_str = Instr(buffered , "1,6,0,0,") ' если сброс If In_str = 0 Then ' если входящий звонок продолжается Waitms 250 Print #1 , "ATA" Input #2 , Buffered ' Ответ Input #2 , Buffered ' Ответ +CLCC: 1,1,0,0,0,"+7**********",145,"" If On_off = 0 Then On_off = 1 Wait 1 Print #1 , "AT+CREC=4,C:\User\1__.amr,1,100" ' передача речевого сообщения Input #2 , Buffered ' Ответ Wait 8 'Время речевого сообщения + добавленное Print #1 , "ATH0" Input #2 , Buffered ' Ответ Else On_off = 0 Wait 1 Print #1 , "AT+CREC=4,C:\User\2__.amr,1,100" ' передача речевого сообщения Input #2 , Buffered ' Ответ Wait 8 'Время речевого сообщения + добавленное Print #1 , "ATH0" Input #2 , Buffered ' Ответ End If End If Else ' если незарегистрированный номер телефона Wait 1 Print #1 , "ATH0" Input #2 , Buffered ' Ответ Bitwait Pinb.0 , Set End If End If Set Portb.1 ' в спящий режим SIM800L Enable Interrupts Enable Int0 Enable Pcint0 Idle ' в спящий режим микроконтроллер Reset Portb.1 ' выход модуля из спящего режима Disable Interrupts Disable Int0 Disable Pcint0 Loop End Источник https://178654.blogspot.com/p/gsm.html
  2. На примере GSM/GPRS Goouuu Tech IOT-GA6-B и ATtiny85. Программа «Звонилка». Программа на BASCOM-AVR. Источник https://178654.blogspot.com/p/uart.html
  3. Схема детектора газа с использованием LM3914N1, HY-B10ZSGY, NE555P В ней NE555P управляет зуммером. https://178654.blogspot.com/p/lm3914n1hy-b10zsgy.html
  4. Я для себя вот такой детектор газа сделал https://178654.blogspot.com/p/lm3914n1hy-b10zsgy.html
  5. Схема детектора газа с использованием LM3914N1, HY-B10ZSGY, NE555P и датчика MQ-4 Источник https://178654.blogspot.com/p/lm3914n1hy-b10zsgy.html
  6. для вычисления параллельного и последовательного соединения индуктивности и резистора http://178654.blogspot.ru/p/blog-page_7.html конвертер производных единиц http://178654.blogspot.ru/p/blog-page_51.html
  7. для вычисления параллельного и последовательного соединения индуктивности и резистора http://178654.blogspot.ru/p/blog-page_7.html конвертер производных единиц http://178654.blogspot.ru/p/blog-page_51.html
  8. для вычисления параллельного и последовательного соединения индуктивности и резистора http://178654.blogspot.ru/p/blog-page_7.html конвертер производных единиц http://178654.blogspot.ru/p/blog-page_51.html
  9. Минипрограмма для вычисления параллельного и последовательного соединения конденсатора и резистора. http://178654.blogspot.com/p/blog-page_21.html Блог http://178654.blogspot.com
  10. Минипрограмма для вычисления параллельного и последовательного соединения конденсатора и резистора. http://178654.blogspot.com/p/blog-page_21.html Блог http://178654.blogspot.com
  11. Минипрограмма для вычисления параллельного и последовательного соединения конденсатора и резистора. http://178654.blogspot.com/p/blog-page_21.html
  12. Эта версия ВЧ - модуля приёмника лучше, но и финальная. Нет смысла по каждому улучшению публиковать. В целом схема не привередливая – легко устанавливается ВЧ генерация, НЧ пилообразная частота, а улучшать её может каждый на своё усмотрение. На холоде не работает, вероятно, из особенности какого-то компонента в НЧ модуле. Так, что реальную дальность определить не удалось.
  13. Хорошая идея и всё переделывать не нужно. Попробую TL431A подойдёт? А также есть 2N6027 Думаю, можно ещё проще сделать до УНЧ использовать предусилитель на транзисторе инвертируемый.
  14. Вот эту схему использовал для всего остального. Плохо, что не знал раньше. Теперь придётся УНЧ переделывать на инвертируемый. Ну хоть теперь знаю.
×
×
  • Создать...