Бюджетный GSM термометр на Arduino Nano


Добрый день! Очередной обзор самодельного устройства из дешевых китайских электронных компонентов, в этот раз GSM-термометр. Как обычно, дёшево, себестоимость устройства примерно 850 ₽ или 13$. Сборка так же не составит труда для тех кто хотя бы пару раз в жизни держал паяльник :) Заинтересовало? Прошу под «cut»!

Начнём с технического задания, устройство должно:
1. Отслеживать температуру системы отопления, уведомлять смс сообщением или голосовым вызовом при превышении или понижении температуры ниже заданных границ.
2. Отслеживать наличие или отсутствие сети 220В, уведомлять при отсутствии или восстановлении.
3. Работать автономно не менее 24 часов.
4. Полностью управляться через смс сообщения.

Для сборки нам понадобится:
1. Arduino Nano v3 ATmega328P — 180 ₽.
2. GSM модуль SIM800L — 240 ₽.
3. Контроллер заряда-разряда для Li-ion аккумулятора TP4065 — 30 ₽.
4. Датчик DS18B20 — 80 ₽.
5. Светодиод RGB с общим анодом — 1шт * 10 ₽.
6. Резисторы 2,2 кОм, 3,3 кОм, 4,7 кОм, 10 кОм, 20 кОм — 5 ₽.
7. Выключатель — 15 ₽.
8. Корпус для PowerBank 4x18650 — 190 ₽.
9. Аккумулятор 18650 — 190 ₽.
10. Зарядное устройство 5В 1,5А — из личных запасов.

Не обязательно, но очень желательно:
11. Полевой транзистор IRLML6402 — 5 ₽.
12. Диоды SS26 — 5 ₽.
13. GSM антенна — 80 ₽.

Могу предположить что возникнут вопросы о работе устройства в сети GSM. Почему бы не использовать GPRS/3G/4G? Во-первых GSM — надёжно, во-вторых есть места очень плохим покрытием, при котором голосовая связь и смс сообщения ещё работают но GPRS-трафик передаётся не стабильно. Поэтому выбор пал именно на этот стандарт. В плане надёжности отдаю предпочтение Arduino, хотя устройство можно было бы собрать и на ESP8266, но в последней не могу быть уверен на все 100%.

За основу GSM-термометра была взята GSM-сигнализация из этого обзора, которая после «финальной» прошивки в течение года отработала без сбоев. Из прошивки «выпилено» всё лишнее и добавлен датчик температуры DS18B20. Диапазон измерения температуры датчика от -55°C до 125°C, даташит на русском языке можно взять по ссылке.

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

Схема.

Простая схема для сборки.


Потроха.



Внешний вид.


Используемые порты Arduino Nano v3
D5 — шина данных датчика температуры DS18B20 — желтый провод.
D6 — подключен к RST входу модема, для перезагрузки в случае потери сети.
D7 — подключен к делителю напряжения от внешнего источника питания +5В. Верхнее плечо 2,2 кОм, нижнее 3,3 кОм.
Делитель напряжения


D8 — модем TX
D9 — модем RX
D10 — красный светодиод
D11 — синий светодиод
D12 — зеленый светодиод

Прошивка
Программное обеспечение XLoader для прошивки Arduino Nano/Uno берём тут или на гугл диске вместе с прошивкой. Прошивку в виде hex — файла для Arduino Nano/Uno берём тут или на гихабе. Исходник прилагается.
Инструкция по прошивке
— подключаем Arduino в USB-порт
— выбираем нужный hex-файл
— выбираем нужный тип Arduino Nano или Uno
— выбираем COM порт, который создался при подключении Arduino к USB
— скорость 57600
— нажимаем Upload

Для тех кто будет шиться из исходника
В файл SoftwareSerial.h (C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial\src\SoftwareSerial.h) необходимо внести изменения
было так:

#define _SS_MAX_RX_BUFF 64 

стало так:

#define _SS_MAX_RX_BUFF 192


Команды управления
Внимание! Команды выделенные жирным шрифтом могут быть выполнены только с основного номера, так как отвечают за конфигурацию устройства. Команды можно отправлять через смс сообщения или вводить в командной строке монитора порта Arduino IDE.

Команды управления не чувствительны к регистру:
AddPhone — Добавить номер телефона. Всего может быть добавлено не более 9 номеров + 1 основной номер который автоматически сохраняется в память при первом звонке на устройство после сброса на заводские установки командами ResetPhone, FullResetили MemTest. То есть кто первый позвонил на устройство после его сброса на заводские установки тот и «главный», этот номер заносится в первую ячейку памяти и его невозможно изменить или удалить через смс.
Пример команды:
AddPhone:2+71234567891risp
AddPhone:3+71234567892s
AddPhone:4+71234567893sp
AddPhone:5+71234567894r
Синтаксис команды:
AddPhone — команда
: — разделитель
5 — записать в пятую ячейку памяти
+71234567890 — номер телефона
s — Параметр «SMS» — будет отправлено sms сообщение при срабатывании датчиков
r — Параметр «Ring» — будет совершен голосовой вызов при срабатывании датчиков
p — Параметр «Power» — будет отправлено sms сообщение при включении/отключении внешнего питания
i — Параметр «Info» — будет отправлено sms сообщение о включении или отключении оповещения при изменении температуры
При отсутствии параметров «s», «r», «p»,«i» телефон заносится в память, но никак не используется.

DeletePhone — Удалить номер телефона.
Пример команды:
DeletePhone:+71234567891
Синтаксис команды:
DeletePhone — команда
: — разделитель
+71234567891 — номер телефона

EditMainPhone — Изменить параметры «s», «r», «p», «i» основного телефона, этот номер занесён в первую ячейку памяти.
Пример команды:
EditMainPhone:spri
Синтаксис команды:
EditMainPhone — команда
: — разделитель
srpi — параметры

RingTime — Длительность тревожного голосового вызова, параметр может иметь значение от 10 до 255 секунд.
Пример команды:
RingTime:40
Синтаксис команды:
RingTime — команда
: — разделитель
40 — длительность вызова составит 40 секунд, после чего будет вызван следующий абонент.

ModemID — Принудительная установка модели используемого модема. Возможные значения: 0 — автоопределение модема, 1 — M590, 2 — SIM800l, 3 — A6_Mini.
Пример команды:
ModemID:2
Синтаксис команды:
ModemID — команда
: — разделитель
2 — ID модема.

NetCheckTime — Интервал проверки регистрации модема в сети оператора в минутах, параметр может иметь значение от 1 до 60 минут. При значении 0 проверка отключена.
Пример команды:
NetCheckTime:10
Синтаксис команды:
NetCheckTime — команда
: — разделитель
10 — каждые 10 минут будет производиться поочерёдная проверка уровня сигнала сети или проверка регистрации модема в домашней сети оператора, то есть весь цикл проверки будет занимать 20 минут. В случае отсутствия сигнала или регистрации в домашней сети модем будет перезагружен.

TempCheckTime — Интервал автоматического обновления температуры, параметр может иметь значение от 1 до 60 минут.
Пример команды:
TempCheckTime:10
Синтаксис команды:
TempCheckTime — команда
: — разделитель
10 — каждые 10 минут будет производиться снятие показаний с датчика температуры.

LowTemp — Нижний порог температуры при достижении которого будет отправлено оповещение. Параметр может иметь значение от -50 до 125 и не может превышать или равняться значению параметра HighTemp.
Пример команды:
LowTemp:25
Синтаксис команды:
LowTemp — команда
: — разделитель
25 — температура

HighTemp — Верхний порог температуры при достижении которого будет отправлено оповещение. Параметр может иметь значение от -50 до 125 и не может быть меньше или равняться значению параметра LowTemp.
Пример команды:
HighTemp:60
Синтаксис команды:
HighTemp — команда
: — разделитель
60 — температура

WatchPowerTime — Время в минутах по истечении которого будет отправлено смс сообщение об отключении внешнего источника питания. Если внешнее питание будет восстановлено до истечения установленного времени, то сообщение не будет отправлено.
Пример команды:
WatchPowerTime:5
Синтаксис команды:
WatchPowerTime — команда
: — разделитель
5 — 5 минут до отправки смс сообщения

WatchPowerOn1 — включить контроль внешнего питания, смс сообщение об отключении внешнего питания будет отправлено при условии что включено оповещение при изменении температуры (GuardOn).

WatchPowerOn2 — включить контроль внешнего питания, смс сообщение об отключении внешнего питания в любом случае будет отправлено

WatchPowerOff — выключить контроль внешнего питания

BalanceNum — Изменение номера запроса баланса и обработка длины ответа запроса. Значение по умолчанию для Beeline: #100#L22.
Пример команды:
BalanceNum:#103#L24
Синтаксис команды:
BalanceNum — команда
: — разделитель
#103# — номер запроса баланса
L24 — Длина (len) пересылаемого ответа 24 символа, обрезаем спам из запроса баланса.

Reboot — перезагрузка устройства (только Arduino)

ResetConfig — сброс настроек на заводские установки

ResetPhone — удаление из памяти всех телефонных номеров

FullReset — сброс настроек, удаление из памяти всех телефонных номеров, восстановление значения по умолчанию команды BalanceNum.

GuardOn — включить оповещение при изменении температуры
GuardOff — выключить оповещение при изменении температуры

Info — проверить состояние, в ответ на это сообщение будет отправлено sms с информацией о текущей температуре, нижней и верхней границах контроля температуры, о частоте автоматического обновления температуры, и о том с какого номера было включено или выключено оповещение при изменении температуры и текущее состояние.

TestOn — включается тестовый режим.
TestOff — выключается тестовый режим.

LedOff — выключает светодиод режима ожидания.
LedOn — включает светодиод режима ожидания.

Money — запроса баланса.

ClearSms — Удалить из памяти все sms

ListPhone — вывод в монитор порта списка сохранённых в памяти телефонов

Memtest — тест энергонезависимой памяти устройства, все настройки устройства будут сброшены, аналогично команде FullReset.

ListConfig — вывод в монитор порта текущей конфигурации устройства.

Световая индикация
Светится синим — температура ниже или равна нижней границе контроля, произведено оповещение, оповещение включено.
Светится зелёным — температура между нижней и верхней границей, оповещение включено.
Светится красным — температура выше или равна верхней границе контроля, произведено оповещение, оповещение включено.

Мигает синим — температура ниже или равна нижней границе контроля, оповещение отключено.
Мигает зелёным — температура между нижней и верхней границей, оповещение отключено.
Мигает красным — температура выше или равна верхней границе контроля, оповещение отключено.

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

Светятся все светодиоды — возможно неисправен датчик температуры, необходима проверка.


Пусконаладочные работы или как этим пользоваться?!

Основным моментом после сборки является проверка EEPROM памяти устройства, для этого необходимо выполнить из консоли команду MemTest. Для доступа к консоли можно использовать Putty или монитор порта в Arduino IDE. В настройках необходимо указать нужный COM-порт и скорость порта 9600.

В результате выполнения команды вы должны увидеть следующие строки сообщающие о том, что тест EEPROM пройден успешно, устройство будет автоматически перезагружено и будут восстановлены настройки по умолчанию.
Лог консоли - MemTest

memtest
EEPROM: 1024B
Test passed.

GSM Temperature Alarm 2018.12.03-01

Deleting eepromconfig data.
Load default eepromconfig data.

Read eepromconfig:

RingTime: 40
Test: 0
Led: 1
Guard: 1
NetCheckTime: 0
TempCheckTime: 10
LowTemp: 10
HighTemp: 70
WatchPower
 Mode: 1
 Time: 0
ModemID: Autodetect

Delete balance data.
Load default balance data.

Balance number: #100#
Length to return: 22

Deleting phone data.
Load default phone data.

Read array phone:
№ -> Phone -> s -> r -> p -> i
1 ->  -> 0 -> 0 -> 0 -> 0
2 ->  -> 0 -> 0 -> 0 -> 0
3 ->  -> 0 -> 0 -> 0 -> 0
4 ->  -> 0 -> 0 -> 0 -> 0
5 ->  -> 0 -> 0 -> 0 -> 0
6 ->  -> 0 -> 0 -> 0 -> 0
7 ->  -> 0 -> 0 -> 0 -> 0
8 ->  -> 0 -> 0 -> 0 -> 0
9 ->  -> 0 -> 0 -> 0 -> 0
10 ->  -> 0 -> 0 -> 0 -> 0

Detected ModemID: 2
Guard ON at boot.

Temperature: 47.81


Для дальнейшей настройки необходимо зарегистрировать основной номер, с которого в дальнейшем будет производиться настройка, для этого достаточно совершить голосовой вызов на номер устройства. Номер с которого был совершен вызов будет добавлен в первую ячейку памяти устройства, так же этому номеру автоматически будут добавлены параметры «s», «r», «p», «i», которые в случае необходимости можно изменить командой EditMainPhone.
Лог консоли - регистрация основного номера

Ring from: +7905xxxxxxx
Primary phone: +7905xxxxxxx

GSM Temperature Alarm 2018.12.03-01

Read eepromconfig:

RingTime: 40
Test: 0
Led: 1
Guard: 1
NetCheckTime: 0
TempCheckTime: 10
LowTemp: 10
HighTemp: 70
WatchPower
 Mode: 1
 Time: 0
ModemID: Autodetect

Balance number: #100#
Length to return: 22

Read array phone:
№ -> Phone -> s -> r -> p -> i
1 -> 7905xxxxxxx -> 1 -> 1 -> 1 -> 1
2 ->  -> 0 -> 0 -> 0 -> 0
3 ->  -> 0 -> 0 -> 0 -> 0
4 ->  -> 0 -> 0 -> 0 -> 0
5 ->  -> 0 -> 0 -> 0 -> 0
6 ->  -> 0 -> 0 -> 0 -> 0
7 ->  -> 0 -> 0 -> 0 -> 0
8 ->  -> 0 -> 0 -> 0 -> 0
9 ->  -> 0 -> 0 -> 0 -> 0
10 ->  -> 0 -> 0 -> 0 -> 0

Detected ModemID: 2
Guard ON at boot.

Temperature: 47.88


Далее выставляем пределы температур и интервал опроса датчика температуры, теперь эти действия так же можно выполнить с помощью смс сообщения.
Лог консоли - настройка температуры

lowtemp:25
LowTemp is: 25

hightemp:50
HighTemp is: 50

TempCheckTime:5
TempCheckTime is: 5

Temperature: 47.94

Проверяем настройки командой info из консоли и через смс сообщение.
Лог консоли - вывод команды info

info
Temperature: 47.81
Current temperature: 47.81
Low: 25
High: 50
TempCheckTime: 5 min
Guard ON at boot.

СМС сообщение - вывод команды info

Основные настройки закончены, устройство готово к работе. В случае необходимости можно добавить ещё не более девяти номеров оповещения. Так же номера можно дублировать, при этом со всех дублей при добавлении будут автоматически сняты все признаки кроме «r» — оповещение голосовым вызовом.

Оповещение.

При изменении температуры выше или ниже заданных пределов, на номера с признаком «s» — будут отправлены смс сообщения с информацией о текущей температуре. Далее устройство совершит голосовые вызовы на все номера с признаком «r» и перейдёт в режим наблюдения с соответствующей световой индикацией. Следующее оповещение будет произведено только после нормализации температуры и последующим уходом температуры за указанные пределы. В случае отключения внешнего питания устройства на все номера с признаком «p» будет отправлено соответствующее уведомление. Номера с признаком «i» будут получать информационные сообщения о включении или отключении оповещения (следить или следить и оповещать), и номера телефона с которого было произведено действие.

Голосовой вызов на устройство с номера ранее занесённого в память переключит режим работы. Если включено оповещение и поступит вызов, устройство будет в переведено в режим наблюдения без оповещения, и наоборот. Голосовой вызов на устройство во время тревожного оповещения отменит оповещение голосовыми вызовами по всем ещё не оповещённым номерам.

Аппаратные баги
Если устройство зависает при отключении питания, смотрим сюда, полное обсуждение тут.
Если устройство «не понимает» смс команды, читать тут.

Список изменений
2018.12.03-01 — первая прошивка.

2018.12.09-01 — Добавлена проверка состояния датчика температуры. Если при включении устройства с датчика считывается температура 0.00 или во время работы с датчика температуры два раза подряд считывается температура 0.00, то будет отправлено смс оповещение и совершены тревожные голосовые вызовы, так же будут светиться все три светодиода. Если с датчика будет получена температура отличная от 0.00, устройство продолжит работу в штатном режиме. Спасибо dmitriynet.

2018.12.22-01 — Изменён принцип проверки состояния датчика температуры. Если при включении или во время очередного опроса датчика устройство не может его обнаружить, то будет отправлено смс оповещение и совершены тревожные голосовые вызовы, так же будут светиться все три светодиода. Если с датчика будет получена температура, устройство продолжит работу в штатном режиме. Спасибо dmitriynet.

2019.01.07-01 — Исправлен баг из-за которого неправильно вводилось отрицательное значение температуры. Спасибо magteplo.


На этом пока всё. Спасибо за внимание! :)
Планирую купить +90 Добавить в избранное +116 +201
+
avatar
+6
Разъяснили бы убогим назначение того, что «необязательно, но очень желательно», завернутого в изоленту. Принцип действия, схемотехнику. А то лень напрягать головной мозг. Это в женщине должна быть загадка, а в обзоре — не нужно!
+
avatar
  • kvolk
  • 04 декабря 2018, 13:38
+8
Разъяснили бы назначение
Из схемы можно выкинуть D1,D2,D3 и Q1. Но аккумулятор долго в таком режиме не протянет. Будет постоянно разряжаться примерно до 4В и заряжаться до 4,2В. У меня самсунг 18650 в таком режиме протянул всего лишь год, хотя банка была из разобранного ноутбука.

Если с диодами и полевым транзистором, то аккумулятор зарядится до 4,2В и не будет «использоваться» устройством до тех пор, пока не отключится внешнее питание.



Про антенну надо рассказывать? :)
+
avatar
  • ambuddy
  • 04 декабря 2018, 13:45
+1
SS26, посмотрел, называется Диод Шоттки на 2А. Но что он делает, так и не понял))
+
avatar
  • kvolk
  • 04 декабря 2018, 13:51
+3
Каждый понижает напряжение примерно на 0,2В. чтобы на модем приходило примерно 4,2В-4,4В. При напряжении на модеме больше 4,5В он начинает спамить в порт о превышении напряжения.

ЗЫ Можно взять один шоттки на 2А SS26 и один кремниевый RL207 на 2A. На кремниевом падение напряжения 0,6В — 0,8В. SS26 ставится после блока питания, RL207 перед ардуиной.
+
avatar
  • Serg32
  • 04 декабря 2018, 19:40
+7
Тяжело воспринимается когда нет классической электрической принципиальной схемы и тем более подписей к соединительным проводам, остается догадываться по платам.
+
avatar
  • kvolk
  • 06 декабря 2018, 00:20
+1
Тяжело воспринимается...
Дополнил.
+
avatar
  • Q2W
  • 04 декабря 2018, 19:47
0
Будет постоянно разряжаться примерно до 4В и заряжаться до 4,2В.
А платка, через которую аккум подключается и зарядка идёт, не должна разруливать это?
Как только напряжение на аккумуляторе упадёт ниже 4.2, не должна ли начаться зарядка?
+
avatar
  • kvolk
  • 04 декабря 2018, 20:12
0
… не должна разруливать это?
Она и разруливает, как только заканчивается процесс заряда на клеммах 4,2В, начинается процесс разряда примерно до 4,05В — 4,1В, и снова запускается процесс заряда. И так примерно каждый час-два, в зависимости от состояния аккумулятора.
+
avatar
  • Q2W
  • 05 декабря 2018, 13:24
0
Да и пущщай, наверняка таких циклов аккум очень много выдержит.
+
avatar
  • kvolk
  • 05 декабря 2018, 13:35
+1
Некоторые Sanyo это очень не любят, особенно те которые выковыряны из Б/У ноутбучных аккумуляторов, начинают греться, контроллер не отключает заряд. С Самсунгами такой проблемы не замечал.
+
avatar
  • AndyBig
  • 04 декабря 2018, 20:13
+2
Здесь вообще что-то странное по питанию… Начиная со странного включения P-канального мосфета и заканчивая странным ограничением напряжения для всей схемы, а не одного GSM-модуля :)
+
avatar
  • kvolk
  • 04 декабря 2018, 20:37
0
Что странного, аргументируйте пожалуйста, мне очень интересно. Схема работает на протяжение двух лет, бесперебойно, что не так-то?
+
avatar
  • AndyBig
  • 04 декабря 2018, 20:40
+1
Что странного, аргументируйте пожалуйста, мне очень интересно.
Сначала уточняющий вопрос, просто для понимания на каком уровне объяснять… Вы знаете как работают полевики? Как они управляются?
+
avatar
  • kvolk
  • 04 декабря 2018, 20:50
-1
Давайте вернёмся к аргументам по схеме питания. Объясняйте на том уровне, на каком считаете нужным, я Вас пойму. Пожалуйста, начинайте.
+
avatar
  • AndyBig
  • 04 декабря 2018, 20:56
+2
Тогда объясняю на уровне Вашей схемы: Вам нужно добавить резистор между красненьким проводком, идущим от диодов на мосфет и синеньким проводком, идущим от TP4056 на ардуину.
Вам, кстати, указывали на это в том Вашем топике, на который Вы выше дали ссылку. С объяснением.
+
avatar
  • kvolk
  • 04 декабря 2018, 21:35
0
Вам нужно добавить резистор...
Да о нём говорилось ранее в предыдущем обзоре, спасибо, поправил.

Еще что-то можете сказать?
+
avatar
  • AndyBig
  • 04 декабря 2018, 21:44
+1
Могу: ограничение напряжения тут нужно только GSM- модулю, так зачем переводить лишнюю энергию в тепло на диодах?
+
avatar
  • kvolk
  • 04 декабря 2018, 21:55
0
Много в тепло переведётся при токе 20-50мА?
+
avatar
  • AndyBig
  • 04 декабря 2018, 23:42
+1
Немного, но переведется :)
+
avatar
  • rx3apf
  • 04 декабря 2018, 23:53
+1
Не соглашусь с подходом. Оставить «балласт» только в цепи модема — не лучшая идея, поскольку при микротоках падение напряжения на диодах будет существенно меньше, и на модем, находящийся в выключенном состоянии или в спячке, при сетевом питании может попасть ощутимо больше максимально допустимого (да и источник питания доверия не внушает, не удивлюсь, если у него на ХХ и 5.5V и даже больше окажется). Этот узел реализован не лучшим образом.
+
avatar
  • AndyBig
  • 05 декабря 2018, 06:55
+1
при микротоках падение напряжения на диодах будет существенно меньше
Только не для этих диодов, для этих SS26 минимальное падение 0.2-0.3 вольта :)
Этот узел реализован не лучшим образом.
Согласен, организация питания тут вообще не вызывает положительных эмоций :)
+
avatar
  • kvolk
  • 06 декабря 2018, 08:22
0
организация питания тут вообще не вызывает положительных эмоций :)
Чем можно стабилизировать напряжение в пределах 3,6-4,2В? Я не нашел, возможно плохо искал. Решение не лучшее, но всё же рабочее и простое.
+
avatar
  • AndyBig
  • 06 декабря 2018, 10:11
0
Да можно и диодами, ничего страшного в этом случае нет. Просто я бы ограничил ими напряжение только для GSM. Ну и затвор полевика не был подтянут к земле.
+
avatar
0
MP1584EN?
+
avatar
  • rx3apf
  • 04 декабря 2018, 20:51
+4
Вообще-то Вы попросту бросили затвор MOSFET в воздухе, полагаясь на утечки диодов…
+
avatar
  • AndyBig
  • 04 декабря 2018, 20:54
+1
Абсолютно верно. Только про токи утечки он, скорее всего, не знает :)
ЗЫ: и эти же токи утечки создадут на затворе немалый потенциал.
+
avatar
0
Прошу пардону за глупый вопрос

Если с диодами и полевым транзистором, то аккумулятор зарядится до 4,2В и не будет «использоваться» устройством до тех пор, пока не отключится внешнее питание.
А если напряжение в сети не будет пропадать — аккумулятор будет заряжаться, когда напряжение просядет до 4В?
+
avatar
  • kvolk
  • 03 января 2019, 16:41
0
Если внешнее питание пропадать не будет, то аккумулятор зарядится до 4,2В и разряжаться не будет. Это же резервное питание.
+
avatar
0
А как же саморазряд?
+
avatar
  • kvolk
  • 03 января 2019, 17:57
0
За этим следит контроллер заряда/разряда. Раз в пару месяцев/пол года/год зарядит до полного, если будет саморазряд.
+
avatar
0
Спасибо.
+
avatar
-3
И всё это завёрнуто изолентой и запихано в корпус навалом? Матерь божья…
+
avatar
  • kvolk
  • 04 декабря 2018, 13:52
+5
Изоленту?! Нет, только термоусадка. Хотя синяя изолента была бы в разы надёжнее.
+
avatar
  • DennisT
  • 04 декабря 2018, 13:51
0
На сколько времени хватает аккумулятора?
+
avatar
  • kvolk
  • 04 декабря 2018, 13:51
0
Часов 50-60.
+
avatar
+2
Да уж… неплохая схемка, чтобы спалить GSM -модуль sim800L. Rx и Tx без согласования уровней, про питание вообще молчу. Этот компонент — самый главный и самый капризный во всей схеме, и с ним больше всего танцев с бубном будет.
+
avatar
  • exeland
  • 04 декабря 2018, 14:37
0
Норм там по напряжению, судя по pdf диапазон питания 3.4-4.4В, рекомендуемое 4.0 В.
The single 3.7V Li-ion cell battery can be connected to SIM800 VBAT pins directly
+
avatar
0
претензии потом тоже будете Adobe Acrobat Reader-у предьявлять? :) По моей практике использования с десяток sim800L -это настолько нестабильные модули, что непонятно, их вообще проверяют после производства? Одни работают только на 11500, другие на 9600. Питание с током -вообще индивидуально. Если один модуль работает с 3,9 В. и макс. током при наборе в 700 мА, то другой аналогичные вообще меньше 4 Вольт даже не откликается. Третьему надо не меньше 1,5 Ампера.
+
avatar
  • kvolk
  • 04 декабря 2018, 15:18
+1
Загляните в соседнюю тему, там долго не могли понять почему модем сыпет мусо, пока не убрали согласование уровней. Мои модемы не мрут, что я делаю не так? Попробуте сменить продавца, чтоли. И онткрою вам секрет, большинсво сим800л б/у.

Не хотите сим800л ставьте м590 или а6_мини, устройство их тоже поддерживает.
+
avatar
0
не хотите это, ставьте то. :) Весьма информативно, право :)
Кстати, с чего это вы взяли, что «большинство sim800L» — б/у?
+
avatar
  • rx3apf
  • 04 декабря 2018, 16:16
+2
За $3...4, смонтированные на плату — б/у, можно и не сомневаться. И вот такие да, могут, например, «откликаться» только на определенной скорости (в устройстве-«доноре» отключили автодетект и залочили. У SIMCOM автодетект скорости работает своеобразно, чтобы не было проблем, лучше отключать). Что до питания — источник обязан обеспечивать до 2A в пике. Независимо от среднего потребления в сеансе.
+
avatar
0
ну вы и не сомневайтесь :) Для вас тогда все модули — тоже б/у :)
Кстати, микросхемы «камнем» называете?
+
avatar
  • kvolk
  • 04 декабря 2018, 19:26
0
100% новые идут только A6_Mini, Sim800l практически все Б/У, о M590E даже говорить не стоит все Б/У.

Кстати, микросхемы «камнем» называете?
Это Вы сейчас чем блеснуть решили? :)
+
avatar
0
Доказательства будут, что «практически» все gsm-модули Б/У?
Ничем, в отличие от Вас, я блестеть не буду, я просто хочу убедится в уровне. А то «запитка», «выпрямлять руки» — это жаргон гопника-телемеханика, нежели профессионала.
Сдаётся мне, вы кроме описания модуля не имели счастья с ним долго работать. Но, это, как говорится, на вашей совести. Работает, и ладно. У меня тоже сигнализация проработала 2 недели, потом внезапно модем стал перезагружаться сам по себе. И питание в норме, и ток достаточный. Причина оказалась не в «кривых руках», а в модуле.
+
avatar
  • kvolk
  • 04 декабря 2018, 20:33
0
Доказательства будут, что «практически» все gsm-модули Б/У?
Мне купить Вам микроскоп и произвести анализ?
… я просто хочу убедится в уровне. А то «запитка», «выпрямлять руки» — это жаргон гопника-телемеханика, нежели профессионала.
Я имею к этому отношение?
Сдаётся мне, вы кроме описания модуля не имели счастья с ним работать.
Во-первых на фото именно sim800l, значит с ним я всё же работал, посмотрите в предыдущие обзоры и даты их публикации, там тоже использую эти модемы.
+
avatar
0
У меня на работе есть микроскоп. И не я утверждал, что все gsm-модули б/у, а Вы. Следовательно, у Вас должны были быть аргументы и без покупки по этому случаю микроспока. Иначе, это всё балабольство.
Т.е., доказательств того, что модули продаются Б/У у Вас нет или основываются на «в Интернете посоны пишут». Я прав? Или у Вас таки есть доказательства? :)
+
avatar
  • kvolk
  • 04 декабря 2018, 21:42
0
И не я утверждал, что все gsm-модули б/у, а Вы.
Я не говорил что ВСЕ модули б/у, их большинство. Сами модули БУ, текстолит на который они посажены — новый.
+
avatar
0
Хорошо, как Вы их определяете, какой (допустим, модуль) б/у, а какой нет? Микроскопа у Вас нет.
Только по тому, что они стоят пару долларов, а не пару десятков долларов?
+
avatar
  • kvolk
  • 04 декабря 2018, 22:57
0
На глаз, блин… Есть у меня микроскоп.
+
avatar
  • rx3apf
  • 04 декабря 2018, 20:42
0
При чем тут «камни» — совершенно не понятно. Что до выпрямления рук — это все из той же оперы, что и пляски с бубном, так что Ваши претензии не принимаются (а «паразитная запитка» — вполне общепринятый жаргонизм, если кто не в курсе). А вот криворуких «экспериментаторов» я наблюдал немало (на электрониксе) — люди не соблюдают элементарнейшие правила проектирования, а потом жалуются на «кривые модули» (правда, инженерные семплы да, не без греха).
+
avatar
0
Ну раз Вам не понятно, тогда прояснилась для меня ситуация. :) Я не про других спрашивал.
+
avatar
  • rx3apf
  • 04 декабря 2018, 21:24
0
Мне непонятно было в данном контексте. А вообще да, жаргонизмы «чип», «кристалл» и тот же «камень» вполне популярны и в среде профессиональных разработчиков. Все хорошо к месту, злоупотребление жаргоном тоже неуместно.
+
avatar
-1
первые два названия -да, согласен ( один -это перевод, второй — содержание). Камень — это уровень гопника птушного, который максимум умеет копировать схемы. В советские время за слово «камень» в институте на кафедре микроэлектроники запросто можно было вызвать гнев преподавательского состава, не дай бог это было кому сказать в лаборатории или при профессорском составе.
Извиняюсь за занудство. Но до сих пор не переношу «камень», когда говорят о микроэлектронике…
+
avatar
  • rx3apf
  • 04 декабря 2018, 23:26
0
Дополнительная информация
Не припомню, чтобы в советские времена кто-нибудь использовал слово «камень» применительно к микроэлектронным компонентам, пусть даже в металлокерамических корпусах. На моей памяти это началось где-то в середине 90-х, когда пошли i486 в металлокерамике. Ну да, «камень» и есть, что ж в этом такого? Когда сдохнет — точно камень. Хоть и с ногами…
+
avatar
  • kvolk
  • 04 декабря 2018, 19:32
+1
не хотите это, ставьте то. :) Весьма информативно, право :)

Да, это ведь удобно когда есть выбор. Устройство само определяет тип модема sim800l, m590 или A6_Mini, и в зависимости от модема выбирает нужный режим работы.
+
avatar
  • rx3apf
  • 04 декабря 2018, 15:48
+2
Что касается питания, то да, модуль, предназначенный для работы от одного Li-ion элемента, обязан стабильно работать в диапазоне 3.6...4.2 (и если не работает, то надо выпрямлять руки). Но что до интерфейса — в том же даташите приведены нормы на уровни, и хотите спокойной жизни — соблюдайте (паразитная запитка еще никому на пользу не шла). Если резистивный «преобразователь уровней» не работает — опять же надо выпрямлять руки.
+
avatar
  • Aostspb
  • 04 декабря 2018, 22:37
0
обязан стабильно работать в диапазоне 3.6...4.2
У меня все лето SIM800L проработал будучи напрямую подключенным к литиевому элементу: все через TP_шку от солнечной панели заряжалось…
+
avatar
  • exeland
  • 04 декабря 2018, 14:28
0
Светодиодам 20кОм достаточно, не тускло? На макетке бы выглядело аккуратнее.
+
avatar
  • AndyBig
  • 04 декабря 2018, 14:41
0
Да, как-то по 0.1-0.2 мА на светодиод не выглядит достаточным :)
+
avatar
  • rx3apf
  • 04 декабря 2018, 15:52
+1
«Сверхяркий» без рассеивающего компаунда и при таком токе весьма бьет по глазам, надобно отметить. Красному кристаллу может быть и маловато, но синий и зеленый довольно «едкие».
+
avatar
  • kvolk
  • 04 декабря 2018, 16:30
+1
Зелёный самый ад, в сигнализации на 10 кОм освещал весь коридор ночью, даже свет включать не надо было.
+
avatar
  • kvolk
  • 04 декабря 2018, 15:11
0
Вполне, вам же не надо освещать помещение ночью, для себя выбрал 20кОм, если хотите ярче ставьте 10 кОм. С 20 видно свет даже днём.
+
avatar
  • AndyBig
  • 04 декабря 2018, 14:40
+4
Я понимаю, что «пианист играет как умеет», но вот эта «схема» — просто мрак :)
+
avatar
  • kvolk
  • 04 декабря 2018, 15:14
-1
Можно конкретики по схеме?
+
avatar
  • AndyBig
  • 04 декабря 2018, 15:22
-1
Мрак не в самой принципиальной схеме, а в ее исполнении. С первого взгляда — какое-то спагетти из разноцветных проводов, очень трудно читается.
+
avatar
  • nochkin
  • 04 декабря 2018, 17:36
0
Автор забыл уточнить, что это схема соединений, а не принципиальная схема.
С принципиальной было бы понятнее, конечно.
+
avatar
  • AndyBig
  • 04 декабря 2018, 18:00
+1
Автор забыл уточнить, что это схема соединений, а не принципиальная схема.
Я это и без уточнений автора вижу :)
+
avatar
  • kvolk
  • 04 декабря 2018, 18:02
+7
Автор забыл уточнить, что это схема соединений, а не принципиальная схема.
А где я утверждал что это принципиальная схема?
С принципиальной было бы понятнее, конечно.
У Вас остались вопросы по 3 диодам и одному транзистору? Задавайте, я отвечу.

Такая схема для представления была выбрана по нескольким причинам:
1. Те, кто пару раз держал паяльник в руках по этой схеме с большой вероятностью соберут (повторят) устройство.
2. Разные цвета на схеме для того, чтобы человек который ничего не понимает в схемах, в том числе и принципиальных, не смотал в клубок все провода и запаял их вместе, такое я уже встречал.
3. Те, кто знает что такое принципиальная схема так же без труда смогут её себе нарисовать если появится в этом необходимость Пруфы.
+
avatar
  • nochkin
  • 04 декабря 2018, 19:38
+1
Собрать можно по любой схеме. Но понять что ты собираешь проще по принципиальной схеме.
Зачем перерисовывать её? Мы же не reverse engineering тут делаем.

А где я утверждал, что у меня вопросы по диодам?
+
avatar
  • Dimon_
  • 04 декабря 2018, 15:34
+8
Андрей, я тут уже как-то высказывался о поколении, которое из принципиальных схем только рисунки во фритзинге понимает, а уж про ЕСКД молчу. Так меня тогда заминусили…
+
avatar
  • AndyBig
  • 04 декабря 2018, 15:41
+4
Я больше того скажу — это изображена даже не принципиальная схема, а монтажная :) Боюсь, что о принципиальных схемах многие ардуинщики нынче вообще не имеют представления :)
Но даже вот такие монтажные схемы можно же аккуратнее рисовать :)
+
avatar
  • Dimon_
  • 04 декабря 2018, 15:48
+3
Тут дело даже не в том. Я уже говорил об этом. Когда смотришь на принципиальную схему — можешь зрительно увидеть ошибки или недочёты какие-то. Это воспринимается, читается.
Где-то np-переход, допустим, шунтируется, где-то каскад в воздухе повис, где-то полярность диода неправильная (условно).
А если смотреть на вот такие монтажные эскизы — ничего не заметишь; да, это наглядно, но совсем не читаемо.
+
avatar
  • AndyBig
  • 04 декабря 2018, 15:54
+1
А если смотреть на вот такие монтажные эскизы — ничего не заметишь; да, это наглядно, но совсем не читаемо.
Не то что не заметишь, а вообще не узнаешь :)
+
avatar
  • SEM
  • 04 декабря 2018, 15:48
+10
Обзор написан для повторения любым, кто хоть раз хватался рукой за горячий паяльник, так написано до «ката».
Специально для таких нарисована схема «припаяй кусок провода вот сюда, второй конец вот сюда», разные цвета — чтобы не перепутали, выложена прошивка в виде файла и простая прога по её заливке в микроконтроллер.
Кому и нафига (мягко говоря) тут нужна «схема по ЕСКД»?
+
avatar
  • AndyBig
  • 04 декабря 2018, 15:59
+3
Кому и нафига (мягко говоря) тут нужна «схема по ЕСКД»?
Да не нужна она тут никому. Просто даже в этом примитивном рисунке с проводками черт ногу сломит, так все запутанно нарисовано :)
Человек, привыкший к принципиальным схемам, нарисует более понятно, чтобы не нужно было чуть ли не как в детских головоломках карандашом каждый поводок отслеживать :)
+
avatar
  • SEM
  • 04 декабря 2018, 16:32
-3
Просто даже в этом примитивном рисунке с проводками черт ногу сломит, так все запутанно нарисовано
Сужу по себе, на этой схеме мне сразу всё понятно, по крайней мере по той где убраны диоды.
С пояснениями автора понятно и что там делают диоды.
Отслеживать куда что и зачем пошло, елозя пальцем по линиям, нужно именно на ч/б «схеме по ЕСКД».
+
avatar
  • AndyBig
  • 04 декабря 2018, 16:55
+9
Видимо, Вы так же далеки от нормальных схем, как и автор :)
+
avatar
  • Dimon_
  • 04 декабря 2018, 17:00
+5
Андрей, не спорьте с ним. Два года назад это всё уже было, тред на два экрана. У человека конкретно на это пунктик. «Я этого не знаю — значит, это никому не надо, лишние знания. А что я понимаю — то, значит, и есть правильно. А вы себе только мозги ТОЭ сушите».
+
avatar
  • AndyBig
  • 04 декабря 2018, 17:09
+5
Ну, частично он прав — в том, что такие рисунки нужны для тех, кто «раз хватался за паяльник», но аккуратность и порядок ведь никто не отменял и в этих рисунках :)
А почему их нет? Потому не привыкли к той аккуратности, к которой приучают нормальные схемы. Эпоха DIY в стиле «повторяй за мной — хренак-хренак и готово» :)
+
avatar
  • Dimon_
  • 04 декабря 2018, 17:18
+5
Он просто не хочет признать, что повторение самоделки по рисункам из фритзинга — это именно «обезьянье» повторение. Да, устройство, скорее всего, будет работать. Но сам повторяющий будет смотреть на свою самоделку и предполагать, что внутри у деталей — магия и волшебный дым.

Человек же, понимающий принципиальные схемы, без проблем повторит самоделку и без фритзинга. Возможно, (и скорее всего), его монтажная схема будет не похожа на монтажную схему автора девайса, но работать устройства будут одинаково.
Разница именно в этом: хотя бы общее понимание процессов (подчеркну: я не говорю о глубоком погружении в тему, именно об общем понимании) внутри повторяемой самоделки или слепом копировании по рисункам.
Принципиальные схемы именно это и дают.
+
avatar
  • SEM
  • 04 декабря 2018, 17:31
+3
Он просто не хочет признать
Да?
mySKU.me/blog/ebay/68818.html#comment2924089

Да, устройство, скорее всего, будет работать.
Это плохо? Мне кажется — что это цель и автора, и тех кто будет повторять его самоделку.
+
avatar
  • SEM
  • 04 декабря 2018, 17:25
+6
«Я этого не знаю — значит, это никому не надо, лишние знания. А что я понимаю — то, значит, и есть правильно. А вы себе только мозги ТОЭ сушите».
Вы судите по себе, поэтому всё переврали. Всё немного не так.
Собирают — по монтажной схеме, хотя бы с этим согласны?
Перевести схему по ЕСКД в монтажную могут меньше 0.1% (читателей MySku, про тех кто не читает лучше не вспоминать к ночи). Для остальных картинка со «схемой по ЕСКД» будет просто мусором, мешающим чтению обзора.
Отсюда простой вопрос — зачем автору чертить и выкладывать сюда схему по ЕСКД? Для удовольствия двух человек (ну, трёх, если «кирича» считать)? А за пивом для вас не сбегать?
+
avatar
  • SEM
  • 04 декабря 2018, 17:18
+3
Видимо, Вы так же далеки от нормальных схем, как и автор
И что в этом плохого?
Близки ли вам темы хеджирования фьючерсов опционами? МСФО9? Корзина ОФЗ? MSSQL и Oracle? Вряд ли, и в этом тоже нет ничего плохого.
+
avatar
  • AndyBig
  • 04 декабря 2018, 18:01
+4
Близки ли вам темы хеджирования фьючерсов опционами?
Нет, и поэтому я не высказываю свое категоричное суждение по этим темам.
И что в этом плохого?
Именно то и плохо, что Вы спорите о вещах, от которых весьма далеки :)
+
avatar
  • kvolk
  • 04 декабря 2018, 18:29
+5
… Вы спорите о вещах, от которых весьма далеки :)
Вы тоже в каждой теме отмечаетесь :) Специалист широкого профиля, так сказать, от купальников до паяльников :)
+
avatar
  • AndyBig
  • 04 декабря 2018, 18:34
+4
Но по тем вопросам, в которых я ноль, я не пытаюсь спорить :)
+
avatar
  • kvolk
  • 04 декабря 2018, 18:47
0
Но по тем вопросам, в которых я ноль, я не пытаюсь спорить :)
Специалисты широкого профиля априори не могут быть «нолями» в любом вопросе :)
+
avatar
  • SEM
  • 05 декабря 2018, 09:22
0
Именно то и плохо, что Вы спорите о вещах, от которых весьма далеки
Ошибаетесь, я не спорю о схеме «по ЕСКД» (в которой, будем считать для упрощения, не разбираюсь).
Я не согласен («спорю») с тем, что эта схема необходима в обзоре.
С утверждением что она интересна менее чем 0.1% читателей вы согласны или нет?
Если «нет» — то как вы оцениваете этот процент?
+
avatar
  • AndyBig
  • 05 декабря 2018, 09:27
0
Я не согласен («спорю») с тем, что эта схема необходима в обзоре.
А с кем Вы спорите об этом? Кто утверждает, что в обзоре необходима схема по ЕСКД?
+
avatar
  • kvolk
  • 04 декабря 2018, 18:40
+2
Видимо, Вы так же далеки от нормальных схем, как и автор :)
Пожалуйста, если у Вас есть время и желание покажите нам как надо, добавлю в обзор и укажу Ваше авторство для этой схемы.

Понимаете в чём проблема, если рисовать принципиальную схему, то тогда придётся полностью отрисовывать модуль TP4056, диоды, мосфет, и тогда тот, кто «пару раз держал паяльник» просто пройдёт мимо, и даже не будет пытаться пробовать собрать это устройство.
+
avatar
  • Limpopo
  • 04 декабря 2018, 18:53
0
Аналогичная просьба к Dimon_ — выложите правильную схему по ЕСКД, пожалуйста.
Очевидно, что обе схемы будут правильные и в точности одинаковые…
+
avatar
  • AndyBig
  • 04 декабря 2018, 19:53
+3
если у Вас есть время и желание покажите нам как надо
Вы и сами можете перерисовать свою картинку более аккуратно, но, видимо, даже у Вас нет времени и желания заниматься этим, а уж у меня — и подавно :)
тогда придётся полностью отрисовывать модуль TP4056
И это было бы очень полезно — нарисовать этот модуль в виде модуля, указав назначение его выводов. Потому что вот сейчас, например, я никак не понимаю где там что и почему земля делителя тянется аж к этому модулю, да и вообще почему подключение питания разнесено по всем четырем его выходам.
+
avatar
  • kvolk
  • 04 декабря 2018, 21:06
0
почему земля делителя тянется аж к этому модулю,
К контактным площадкам плюса и минуса источника внешнего питания подключен делитель напряжения, выход которого подключен к D7 пину Ардуины.

… да и вообще почему подключение питания разнесено по всем четырем его выходам.
Питание подаётся через разъём MicroUSB или через контактные площадки, специально выделил цветом.

Вы ранее видели этот модуль?
+
avatar
  • AndyBig
  • 04 декабря 2018, 21:11
+3
Я вижу, что минус входа и выхода тут един, так же как и плюс выхода и батареи. Этот общий минус питания идет и на ардуину в том числе. Поэтому я все еще не понимаю зачем тянуть его отдельно к делителю, а не взять с той же ардуины дабы минимизировать длину проводов в измерениях. И зачем раскидывать соединения по всем шести выводам, когда их тут фактически только четыре. Это лишнее усложнение рисунка.
+
avatar
  • kvolk
  • 04 декабря 2018, 21:31
0
Затем что это не принципиальная схема. И затем чтобы батарею при сборке припаяли на своё посадочное место.
+
avatar
  • AndyBig
  • 04 декабря 2018, 21:40
0
Затем что это не принципиальная схема. И затем чтобы батарею при сборке припаяли на своё посадочное место.
У батареи на этой плате нет посадочного места. А какая схема — без разницы, главное, что ее можно упростить и сделать более читаемой, а не создавать винегрет из разноцветных линий.
+
avatar
  • kvolk
  • 04 декабря 2018, 21:44
0
Нет, ну это понятно, что именно Вам схема не нравится. Вы это уже донесли до всей аудитории. Хотите сделать иначе — карты в руки.
+
avatar
  • AndyBig
  • 04 декабря 2018, 21:47
+3
Я Вам говорю, что картинку можно упростить, сделать более наглядной и удобочитаемой для тех кто захочет повторить. Не хотите — так и скажите «меня это не волнует», на меня спихивать не надо :) Я ее повторять не собираюсь :)
+
avatar
  • kvolk
  • 06 декабря 2018, 00:03
+1
Не хотите...
Хочу. Сделал.
+
avatar
  • AndyBig
  • 06 декабря 2018, 07:05
0
Ну вот, совсем другое дело. Спасибо :)
+
avatar
  • Aostspb
  • 04 декабря 2018, 22:42
0
И зачем раскидывать соединения
Резисторы делителя удобнее повесить где-то на плате. Ну, вот автору так показалось удобнее… Мне, кстати, тоже.

Правда, при срабатывании защиты и разрыве «минуса» — могут быть нюансы. У меня в похожем месте стоит оптопара, просто показывающая наличие напряжения «с той стороны».
+
avatar
  • kvolk
  • 04 декабря 2018, 23:07
0
Нарисовать мне было удобнее так. На самом деле у меня осталось одна вытравленная плата на которой расположен делитель, диоды и мосфет. На ней только затвор притянуть к нулю надо, это было не учтено изначально. Припаять сверху резистор не составит труда.
+
avatar
  • AndyBig
  • 04 декабря 2018, 23:50
+2
Нарисовать мне было удобнее так.
Ну вот это другой разговор :) А не как сначала — «так удобнее для неопытных повторителей» :)
+
avatar
  • kvolk
  • 07 декабря 2018, 23:43
0
Обновил, печатка модуля в гугл диске.
+
avatar
  • Razario
  • 30 сентября 2021, 12:49
0
Добрый день. Илья, а эта плата актуальна или надо немного изменить? ( перенести затвор полевого транзистора на точку соединения д2 и д3)
+
avatar
  • kvolk
  • 30 сентября 2021, 12:58
0
У меня и так работает, попробуйте перенести. Видимо многое зависит от качества транзисторов.
+
avatar
  • AndyBig
  • 04 декабря 2018, 23:48
0
Резисторы делителя удобнее повесить где-то на плате.
Я про картинку, а не про физическое расположение компонентов в коробке :)
Но даже физически — брать землю где-то там далеко отдельным проводом, когда она вот рядом — совершенно безграмотно. Это оправдано только в редких специфических случаях.
+
avatar
  • Dimon_
  • 04 декабря 2018, 16:07
+2
Кому и нафига (мягко говоря) тут нужна «схема по ЕСКД»?
Вашу точку зрения мы помним, не повторяйтесь.
+
avatar
  • SEM
  • 04 декабря 2018, 16:33
+3
Да-да, собирают устройство по монтажной схеме, а не по «ЕСКД».
+
avatar
  • Dimon_
  • 04 декабря 2018, 16:51
+2
А минус-то мне влепили за что? Просто от бессилия?
+
avatar
  • SEM
  • 04 декабря 2018, 17:13
+2
«Минус, как и плюс, ещё нужно заслужить». Вы — не заслужили. Кто-то другой поставил…
+
avatar
  • Serg32
  • 04 декабря 2018, 19:50
+1
А разве монтажная схема не входит в ЕСКД? Или я отстал от жизни?
Смотря кто собирает, и да монтажники собирают по монтажной схеме.
+
avatar
  • kvolk
  • 06 декабря 2018, 00:01
+1
но вот эта «схема» — просто мрак :)
Немного поправил схему. Мрак убрал под спойлер, вдруг всё таки кому-то пригодится :)
+
avatar
  • AndyBig
  • 06 декабря 2018, 07:05
0
Теперь гораздо лучше и понятнее :)
+
avatar
  • SEM
  • 06 декабря 2018, 09:01
+1
Немного поправил схему. Мрак убрал под спойлер, вдруг всё таки кому-то пригодится
Мне кажется — вы перепутали «мрак» и «нормальную схему», убрали под спойлер не ту схему. И назвали спойлер «Альтернативная схема» вместо «Простая схема для сборки».
+
avatar
  • kvolk
  • 06 декабря 2018, 09:25
0
Согласен, спойлер был лишним :)
+
avatar
+5
Как обычно, дёшево, себестоимость устройства примерно 850 ₽ или 13$
почему бы не добавить еще 0.5$ и не разместить все на макетке…

+
avatar
  • kvolk
  • 04 декабря 2018, 15:13
+1
В этот корпус с макеткой не поместится,
+
avatar
  • exeland
  • 04 декабря 2018, 15:19
0
это только так кажется.)
+
avatar
  • kvolk
  • 04 декабря 2018, 17:03
+1
Приложите линейку и Вам перестанет казаться.
+
avatar
0
GSM -модуль будет на соплях висеть.
+
avatar
  • AndyBig
  • 04 декабря 2018, 20:18
0
Сейчас там все так висит и ничего :)
+
avatar
  • kvolk
  • 04 декабря 2018, 20:47
0
Лежит, всё уложено в корпус и закрыто крышкой.
+
avatar
  • AndyBig
  • 04 декабря 2018, 20:49
+1
Ну хорошо, пусть будет лежит на соплях :)
+
avatar
+1
На правах шутки: Мало Вы, батенька, в морской бой играли, мало!
А ведь, если по-другому расположить элементы на вашей фотографии — модуль туда уместится :) Контроллер параллельно шахте для акку, понижающий сдвинуть на место, где сейчас контроллер — и gsm-модуль аккурат влеезет в нижний правый угол.
+
avatar
  • 68k
  • 05 декабря 2018, 11:40
+1
Мало Вы, батенька, в морской бой играли, мало!
В Тетрис тогда уж.
+
avatar
+9
Кому как нравится… Я обычно собираю как автор, а затем, при желании, причесываю… Желание возникает крайне редко — работает, да и ладно… Опять же при причесывании устройство иногда отказывается работать…
+
avatar
  • Davinci
  • 04 декабря 2018, 17:00
0
Главное правило — работает, не трогай)
+
avatar
0
Именно…
+
avatar
0
В свое время служил в ВМФ СССР… Понятное дело — в БЧ-7 (РТС)… Фраза: «Не трогай технику — она не подведет...» впиталась в кровь…
+
avatar
  • AndyBig
  • 04 декабря 2018, 20:18
+1
Нашли с какой техникой сравнить :)
+
avatar
0
Ответ неправильный…
+
avatar
  • AndyBig
  • 04 декабря 2018, 20:23
0
Ну разумеется :)
+
avatar
  • magteplo
  • 04 декабря 2018, 15:15
0
под м590 много придется переделываьт?
+
avatar
  • kvolk
  • 04 декабря 2018, 15:22
+1
Ничего не надо переделывать, устройство поддерживает м590, sim800l, a6_mini. Rst не подключайте только.
+
avatar
  • Dimon_
  • 04 декабря 2018, 15:35
0
Дык в аппаратном ресете весь смысл…
+
avatar
  • kvolk
  • 04 декабря 2018, 16:24
0
У M590 нет пина ресета. :) Есть только boot который надо на GND посадить через 10 кОм, но есть ещё одна проблема — найти симку под 590-й модем, скорее всего все новые симки на нём уже не запустятся. Так что сим800л или а6_мини, и подключайте ресет, всё будет работать. Хотя можно и реализовать управление 590-ым модемом, но они уже не актуальны.
+
avatar
  • SEM
  • 04 декабря 2018, 16:41
0
А Siemens MC35i с ардуиной работать без кучи согласующих элементов будет?
RX, TX, земля, питание своё (например 12В).

aliexpress.com/item/SH-MC35I-for-siemens-MC35I-gsm-gprs-modem-hot-selling/556908579.html
+
avatar
  • kvolk
  • 04 декабря 2018, 16:56
0
Понятия не имею, прошивка заточена только под три вышеуказанных модема.
+
avatar
  • SEM
  • 04 декабря 2018, 17:35
0
Всегда думал что все модемы поддерживают минимальный набор стандартных команд, «набрать номер», «положить трубку». А т.к. данная схема не запрашивает номер соты, уровень сигнала и т.п. — то и работает только с простыми командами, возможно даже имеющими корни в проводных модемах, типа «ATхххх»…
+
avatar
  • kvolk
  • 04 декабря 2018, 18:00
+1
Всегда думал что все модемы поддерживают минимальный набор стандартных команд, «набрать номер», «положить трубку».
Абсолютно верно, но вот ответы на эти команды могут различаться. Например сим800л при определении номера отдаёт его со знаком +, а м590 без знака (или наоборот). Поэтому и пришлось добавить в прошивку определение модема, и в зависимости от модема писать разные обработки ответов.
+
avatar
  • SEM
  • 05 декабря 2018, 09:37
0
Например сим800л при определении номера отдаёт его со знаком +, а м590 без знака (или наоборот).
Шайтанама!
Но для моих экспериментов наверно «и так сойдёт» — я хотел сделать сигналку для бесплатного извещения об открытии двери, просто звонок на зашитый номер, просто увидеть на телефоне входящий от контакта «Дверь». Без управления по SMS и т.п.
MC35i валяется, спас от выбрасывания в помойку при списании (новый, из коробки не доставали).
Внушает больше доверия, чем новые модули с китайских сайтов.
+
avatar
  • kvolk
  • 05 декабря 2018, 09:47
+1
Шайтанама!
Вот нашел старые логи отладки.
A6_Mini входящий звонок:
+CLIP: "7905XXXXXX",145,,,,1

M590 тоже без + отдаёт.

SIM800L входящий звонок:
+CLIP: "+790XXXXXX",145,"",0,"",0

Внушает больше доверия, чем новые модули с китайских сайтов.
Так же и с чисткой СМС


// ----- Удаление SMS
void clearsms() {
  mySerial.print ( F ("AT+CMGD="));
  if (ModemID == 1) mySerial.println( F ("0,4"));
  if (ModemID == 2 || ModemID == 3) mySerial.println( F ("4"));
  Serial.println( F ("SMS removed"));
}

Нормально они работают, sim800l начинает глючить при напряжении 3.3В, примерно часов через 50-60 автономной работы, в зависимости от состояния аккумулятора, три запараллелить и будет неделя автономности. У меня есть устройства и на sim800l и на m590, работают стабильно. Только m590 не понимает новые симкарты.
+
avatar
  • rx3apf
  • 04 декабря 2018, 21:19
+1
Пока задача ограничивается голосовыми вызовами и CSD — да (и то могут быть нюансы с модификаторами). А вот с SMS может быть и сложнее…
+
avatar
  • SEM
  • 05 декабря 2018, 09:38
0
Спсб, учту.
+
avatar
0
проверял на новых симках мтс и теле2 все норм работат, а почему не должно?
+
avatar
  • kvolk
  • 06 января 2019, 22:17
0
У меня симки 4G от Билайн категорически отказываются работать.
+
avatar
  • rx3apf
  • 04 декабря 2018, 16:29
+2
Дернуть питание (предварительно гарантированно исключив паразитную запитку по интерфейсу) — это надежнее…
+
avatar
  • arbatjc
  • 04 декабря 2018, 15:50
+2
Как увидел провода, то сразу подумал, что сейчас начнут в комментах…
интересный проект, взял на заметку, за обзор жирнейший плюс! Спасибо

UPD Хотел уточнить, вы пишите:
Прошивку в виде hex — файла для Arduino Nano/Uno берём тут.
А какой там из двух архивов?

Разобрался, они там уровнем выше.
+
avatar
  • Zhenya88
  • 04 декабря 2018, 16:09
+3
XOD — интересный проект для тех у кого нет времени на изучение кода для ардуино, визуальное програмирование.
xod.io/ru/docs/guide/sd-log-example/ — пример создания схожего датчика на этой платформе
+
avatar
0
Так же необходимо следить за питанием насосов системы отопления от сети 220В, в случае его отключения насосы останавливаются и температура теплоносителя может стремительно увеличиваться.
Группа быстрого реагирования в комплекте с прошивкой имеется? :)
+
avatar
  • kvolk
  • 04 декабря 2018, 17:02
0
Устройство используется исключительно как средство дополнительного информирования, стандартный контроль никто не отменял.
+
avatar
  • Davinci
  • 04 декабря 2018, 16:56
0
Можно еще удешевить. Вместо корпуса взять мыльницу или подходящую коробочку. И вместо 18650 батарею со старого телефона
+
avatar
  • Serg32
  • 04 декабря 2018, 19:52
+1
Ещё круче было бы сразу взять старый телефон и подключить к нему термометр :)
+
avatar
  • Q2W
  • 04 декабря 2018, 20:01
0
Но как?
+
avatar
0
это фантазии. Во-первых, нет протокола обмена данными между телефоном и внешними устройствами. Подключение к Rx и Tx к телефону ровным счётом ничего не даст. Телефон не реагирует на общеизвестные команды, кроме древних 15-летних. Неговоря уже, где взять питание, если акку дохлый.
+
avatar
  • kvolk
  • 04 декабря 2018, 20:42
0
Во-первых, нет протокола обмена данными между телефоном и внешними устройствами.
В качестве GSM-звонилки вполне можно использовать старый сименс.
+
avatar
0
Я об этом и упомянул, древние «кирпичи» 15летней давности… Всё что посвежее — не подходит. Разве что, использование при входящем питания на вибромоторчик, но это всё игры… ток никакой.
+
avatar
  • kvolk
  • 04 декабря 2018, 23:11
0
При такой цене на сим800л и а6мини, даже нет смысла думать об использовании телефонов.
+
avatar
  • kirich
  • 04 декабря 2018, 23:33
+1
можно использовать старый сименс.
Вспомнилось —
xxx: мой телефон крякнул :-(
xxx: все. я теперь не мобильная. сссукаааааааа. ну не прет так сразу во всем ]:->
yyy: че с ним? ))
xxx: он уже не жилец((((. у него белый свет… в конце тунеля
xxx: экран белым светиться… ни че не вижу…
yyy: знач будешь ходить со старым сименсом :-P
xxx: откуда у меня появится старый сименс?
yyy: у всех есть старые сименсы :-D
С другой стороны, я до сих пор сам пользуюсь сименсом, наверное самые неубиваемый аппарат.
+
avatar
  • Davinci
  • 05 декабря 2018, 00:07
0
как вариант, только надо смарт и отслеживать не температуру, а подключение к зарядному. программу, которая при пропаже заряда начнет слать смс.
+
avatar
  • Davinci
  • 04 декабря 2018, 16:59
0
Кстати тоже такая задача есть, но у нас котел не длительного горения, на час или два максимум и на нем стоит группа безопасности, для сброса давления больше 3 бар.
Так же необходимо следить за питанием насосов системы отопления от сети 220В, в случае его отключения насосы останавливаются и температура теплоносителя может стремительно увеличиваться.
+
avatar
+4
Автору плюс однозначно. Вещь полезная, а самое главное, дешёвая и есть уже 2 человека желающих её реализации, с небольшими доделками. А по поводу как собрано, нарисовано и т.д. я для себя решаю так: Нужно компактно — перевожу в более удобную форму и содержание, нет — оставляю как есть. Скажу больше ЕСКД — это здорово, но мне отбили напрочь желание заниматься для себя подобным впредь
+
avatar
  • Alexazzz
  • 04 декабря 2018, 19:30
0
Здравствуйте. Скажите пожалуйста для того, кто с паяльником и ардуино не дружит. Можно ли где то купить такое готовое устройство?
+
avatar
  • kvolk
  • 04 декабря 2018, 19:34
+2
Любой "тыжпрограммист" на коленке спаяет такое устройство, попробуйте найти такого человека.
+
avatar
  • vlesun
  • 04 декабря 2018, 19:38
0
Спасибо за статью. Как раз собирался подобное собрать, ну только добавить еще экран для наглядности, ну и датчиков побольше. Отдельное спасибо за схему питания. Я ее себе по другому представлял, а теперь есть над чем подумать.
+
avatar
  • Aostspb
  • 04 декабря 2018, 22:56
0
спасибо за схему питания. Я ее себе по другому представлял, а теперь есть над чем подумать.
На самом деле — тут тоже не все оптимально. Было бы правильнее включать ардуиной сеть на зарядку, если напряжение питания батареи просело ниже X вольт. Ну и, по-хорошему, со спящим режимом надо такие вещи делать…
+
avatar
  • kvolk
  • 04 декабря 2018, 23:14
0
Было бы правильнее включать ардуиной сеть на зарядку, если напряжение питания батареи просело ниже X вольт.
Как Вы себе это представляете? Устройство постоянно разряжает и заряжает аккумулятор?
Зачем это если устройство питается от сети, и запитывается от аккумулятора только при отсутствии внешнего питания?
Ну и, по-хорошему, со спящим режимом надо такие вещи делать…
Зачем спящий режим если мы в 99% времени питаемся от сети?
+
avatar
  • Aostspb
  • 05 декабря 2018, 11:28
0
Как Вы себе это представляете?
При достижении некоего значения на батарее — включаем симистор запускающий блок питания/зарядку.
Зачем спящий режим если мы в 99% времени питаемся от сети?
Вот я тоже так подумал, и сделал питание от солнечной панели со спящим режимом. Пока солнечный свет есть — всё без сети работает, с ноября по февраль — нужно будет сетевое питание.
+
avatar
  • kvolk
  • 05 декабря 2018, 12:12
0
При достижении некоего значения на батарее — включаем симистор запускающий блок питания/зарядку.
Зачем, если в штатном режиме у нас аккумулятор всегда заряжен, и «ждёт» отключения внешнего питания.
+
avatar
  • Davinci
  • 05 декабря 2018, 00:11
+1
Можно еще поставить привод заслонки и при пропаже напряжения, прикрывать подучу воздуха, так горение за 10-20 минут прекратится и температура не достигнет критической отметки. Учитывая, что котел длительного горения, там оно не интенсивное и температура быстро увеличиваться не будет, без циркуляции теплоносителя. Только доп питание потребуется и сервопривод
+
avatar
  • mike888
  • 05 декабря 2018, 11:41
0
Не проще поставить бесперебойник, если нередко отрубается электричество? Насос жрёт немного, с 90А аккумом такой www.a-electronica.ru/strazh-3000-ups.html работает 12 часов без проблем, всяко хватит на решение вопроса с котлом
+
avatar
  • sskmy
  • 05 декабря 2018, 17:49
0
А зачем оно с СМСками, а не с интернетом? На месте нет вайфая?
ааа, «типа на даче»
+
avatar
  • pugachov
  • 05 декабря 2018, 18:55
0
Гровите? Тогда мы к вам!
+
avatar
+1
А если отпадет датчик температуры, как сделать проверку подключенного датчика?
+
avatar
  • kvolk
  • 08 декабря 2018, 14:47
0
Если датчик отпадает, он не возвращает ничего. В софте реализована проверка значения от датчика. Значение должно быть от -50 до 125. Иначе ошибку вернёт.
+
avatar
  • kvolk
  • 08 декабря 2018, 21:43
0
Если датчик отпадает, он не возвращает ничего.
+
avatar
  • kvolk
  • 08 декабря 2018, 21:25
0
Если датчик отпадает, он возвращает 0.00. Возможно косвенно реагировать на отвал датчика, если в течение некоторого времени при опросе датчика он возвращает значение 0.00 — сигнализировать о возможной ошибке датчика.
+
avatar
0
у меня если отпадает датчик то возвращает значение -0,06. Уже получается проверку не проходит
+
avatar
  • kvolk
  • 19 декабря 2018, 11:55
0
Спасибо, пересмотрю метод выявления неисправности датчика.
+
avatar
0
Может как то так реализовать

  if ( !ds.search(addr)) {
    Serial.println("No more addresses.");
    Serial.println();
    ds.reset_search();
    delay(250);
    return;
  }
+
avatar
  • kvolk
  • 19 декабря 2018, 14:53
0
да, как то так.
+
avatar
  • kvolk
  • 22 декабря 2018, 13:46
0
Спасибо, поправил.
+
avatar
  • kvolk
  • 09 декабря 2018, 11:23
0
Спасибо, поправил.
+
avatar
  • kvolk
  • 09 декабря 2018, 11:24
0
2018.12.09-01 — Добавлена проверка состояния датчика температуры. Если при включении устройства с датчика считывается температура 0.00 или во время работы с датчика температуры два раза подряд считывается температура 0.00, то будет отправлено смс оповещение и совершены тревожные голосовые вызовы, так же будут светиться все три светодиода. Если с датчика будет получена температура отличная от 0.00, устройство продолжит работу в штатном режиме.
+
avatar
0
Еще не могу понять, как работает функция NetStatus(). В ней есть функция проверки запроса регистрации и проверки уровня сигнала сети. Но если модем завис и не находит сеть в течении установленного времени он должен перезагрузиться, должна выполнится функция RebootModem(). Не могу найти в коде где она выполняется.
+
avatar
  • kvolk
  • 09 декабря 2018, 18:34
0
… должна выполнится функция RebootModem(). Не могу найти в коде где она выполняется.
В void loop.
Дополнительная информация


...
    } else if (val.indexOf( F ("+CREG:")) > -1) {  //Если пришла инфа о регистрации в сети
      Serial.println(val);
      if (val.indexOf(": ") > -1) {
        CREG2 = (val.substring(String(val.indexOf(",")).toInt() + 1)).toInt();
        Serial.println(CREG2);
        if (CREG2 != 1) RebootModem(); //Если модем не в домашней сети перезагрузить модем
      }
    } else if (val.indexOf( F ("+CSQ:")) > -1) {  //Если пришел уровень сигнала сети
      Serial.println(val);
      if (val.indexOf(": ") > -1) {
        CSQ1 = (val.substring(String(val.indexOf(": ")).toInt() + 2, String(val.indexOf(",")).toInt())).toInt();
        Serial.println(CSQ1);
        if (CSQ1 == 99) RebootModem(); //Если нет сети перезагрузить модем
      }
    }

...
+
avatar
  • Ode2
  • 09 декабря 2018, 17:38
0
Из обзора Почему бы не использовать GPRS/3G/4G? Во-первых GSM — надёжно, во-вторых есть места очень плохим покрытием, при котором голосовая связь и смс сообщения ещё работают но GPRS-трафик передаётся не стабильно. Поэтому выбор пал именно на этот стандарт. то есть это не пакетная передача данных? Это CSD поминутный, раз это как вы говорите не GPRS
+
avatar
  • kvolk
  • 09 декабря 2018, 18:40
0
Имелось ввиду именно голосовые вызовы и смс.
+
avatar
0
Подскажите пожалуйста как реализовать проверку включенного модема в void setup? В sim800c нет ресета, есть powerkey (включается /выключается). Если модем уже включен и откликается провести инициализацию, если нет дернуть пин.
+
avatar
  • kvolk
  • 09 декабря 2018, 23:34
0
проверку включенного модема в void setup
То есть при включении микроконтроллера? На модем питание подаётся отдельно?

Если модем уже включен и откликается провести инициализацию, если нет дернуть пин.
Отправить АТ и получить ответ от модема, провести инициализацию. Ответ не получен — дёрнуть пин, отправить АТ проверить ответ.

Или в цепь питания модема поставить мосфет и им включать/выключать модем.
+
avatar
0
То есть при включении микроконтроллера? На модем питание подаётся отдельно?
Да. А кратковременная подача минуса на powerkey включает или выключает его
+
avatar
  • kvolk
  • 10 декабря 2018, 10:17
0
Из даташита я так этого и не понял. Надо пробовать.
+
avatar
0
Я уже попробовал, больше чем на 1сек. нужно подать минус на powerkey, модуль включается еще раз подал модуль выключился
+
avatar
0
Я думаю это так должно выглядить. С кодом поможете?
void InitModem() {
  
  delay(2000);  //Время на инициализацию модуля
  Serial.begin(9600);  //Скорость порта
  mySerial.begin(9600);
  for ( uint8_t i = 0; i < 10; i++ ) {
    mySerial.println( F ("AT"));
    delay(200);
  }
/* сюда нужно вставить проверку отклика модема на команду AT
if ( val != OK ) {
   digitalWrite(ModemResetPin, HIGH);
  delay(1200);
  digitalWrite(ModemResetPin, LOW);
  delay(200);
 }
  */
  mySerial.println( F ("ATI"));
  delay(10);

  mySerial.println( F ("AT+CLIP=1")); //Включаем АОН
  delay(100);
  mySerial.println( F ("AT+CMGF=1")); //Режим кодировки СМС - обычный (для англ.)
  delay(100);
  mySerial.println( F ("AT+CSCS=\"GSM\"")); //Режим кодировки текста
  delay(100);
  mySerial.println( F ("AT+CNMI=2,2")); //Отображение смс в терминале сразу после приема (без этого сообщения молча падают в память)
  delay(100);
  if (LedTestOn == 1) {
    mySerial.println( F ("ATE1"));
  }
  else mySerial.println( F ("ATE0"));
  mySerial.println( F ("ATE0"));
}
+
avatar
  • kvolk
  • 10 декабря 2018, 14:36
0
Так вот же она уже готовая:
Дополнительная информация
mySerial.println( F ("ATI"));
  delay(10);
  if (mySerial.available()) {  //Если GSM модуль что-то послал нам, то
    while (mySerial.available()) {  //сохраняем входную строку в переменную val
      ch = mySerial.read();
      val += char(ch);
      delay(20);
    }
    if (ModemID == 0) {
      if (val.indexOf( F ("M590")) > -1) ModemID = 1;
      if (val.indexOf( F ("SIM800")) > -1) ModemID = 2;
      if (val.indexOf( F ("A6")) > -1) ModemID = 3;
      Serial.print(F("Detected ModemID: "));
      Serial.println(ModemID);
    }
    val = "";
  }

Если на ATI откликается — значит не висит. Тупо сделать проверку val на какое-то значение, если val пустое — перезагрузить модем.
+
avatar
0
Не работает (((
Дополнительная информация

void InitModem() {
  
  delay(2000);  //Время на инициализацию модуля
  Serial.begin(9600);  //Скорость порта
  mySerial.begin(9600);
  for ( uint8_t i = 0; i < 10; i++ ) {
    mySerial.println( F ("AT"));
    delay(200);
  }
   mySerial.println( F ("ATI"));
  delay(10);
  if (mySerial.available()) {  //Если GSM модуль что-то послал нам, то
    while (mySerial.available()) {  //сохраняем входную строку в переменную val
      ch = mySerial.read();
      val += char(ch);
      delay(20);
    }
  // if (val.indexOf( F ("RING")) > -1) {
   if ((val.indexOf( F ("SIM800")) > -1)){
      digitalWrite(ModemResetPin, LOW);
   } else {
      digitalWrite(ModemResetPin, HIGH);
      delay(1500);
      digitalWrite(ModemResetPin, LOW);
      Serial.print( F ("Start Modem "));
      delay(2000);  //Время на инициализацию модуля
      Serial.begin(9600);  //Скорость порта
      mySerial.begin(9600);
      for ( uint8_t i = 0; i < 10; i++ ) {
        mySerial.println( F ("AT"));
        delay(200);
  }
   }
 
  //  val = "";
  }

  
  mySerial.println( F ("AT+CLIP=1")); //Включаем АОН
  delay(100);
  mySerial.println( F ("AT+CMGF=1")); //Режим кодировки СМС - обычный (для англ.)
  delay(100);
  mySerial.println( F ("AT+CSCS=\"GSM\"")); //Режим кодировки текста
  delay(100);
  mySerial.println( F ("AT+CNMI=2,2")); //Отображение смс в терминале сразу после приема (без этого сообщения молча падают в память)
  delay(100);
  if (LedTestOn == 1) {
    mySerial.println( F ("ATE1"));
  }
  else mySerial.println( F ("ATE0"));
  mySerial.println( F ("ATE0"));
}


Сильно не пинайте )))
+
avatar
  • kvolk
  • 11 декабря 2018, 11:34
0
Буфера может не хватает softwareserial. Пропишите 256.

Дополнительная информация

void InitModem() {

  delay(2000);  //Время на инициализацию модуля
  Serial.begin(9600);  //Скорость порта
  mySerial.begin(9600);
  at;
  mySerial.println( F ("ATI"));
  delay(10);
  if (mySerial.available()) {  //Если GSM модуль что-то послал нам, то
    while (mySerial.available()) {  //сохраняем входную строку в переменную val
      ch = mySerial.read();
      val += char(ch);
      delay(20);
    }
    if ((val.indexOf( F ("SIM800")) > -1)) {
      Serial.println(val);// Для отладки, вывод в консоль переменной val
      digitalWrite(ModemResetPin, LOW);
    } else {
      Serial.println(val);// Для отладки, вывод в консоль переменной val
      digitalWrite(ModemResetPin, HIGH);
      delay(1500);
      digitalWrite(ModemResetPin, LOW);
      Serial.print( F ("Start Modem "));
      delay(2000);  //Время на инициализацию модуля
      at;
    }
    val = "";
  }


  mySerial.println( F ("AT+CLIP=1")); //Включаем АОН
  delay(100);
  mySerial.println( F ("AT+CMGF=1")); //Режим кодировки СМС - обычный (для англ.)
  delay(100);
  mySerial.println( F ("AT+CSCS=\"GSM\"")); //Режим кодировки текста
  delay(100);
  mySerial.println( F ("AT+CNMI=2,2")); //Отображение смс в терминале сразу после приема (без этого сообщения молча падают в память)
  delay(100);
  if (LedTestOn == 1) {
    mySerial.println( F ("ATE1"));
  }
  else mySerial.println( F ("ATE0"));
  mySerial.println( F ("ATE0"));
}

void at() {
  for ( uint8_t i = 0; i < 10; i++ ) {
    mySerial.println( F ("AT"));
    delay(200);
  }
}
+
avatar
  • motspb
  • 10 декабря 2018, 15:20
0
Подскажите кто знает, как можно переделать на Ni-Mh аккумуляторы? Li-ion боится морозов, а я хочу подобное сделать на дачу, которая отапливается только перед приездом…
+
avatar
  • kvolk
  • 10 декабря 2018, 15:32
0
Посмотрите в тему с охранной сигнализацией, в обзоре ссылка есть. Там в комментариях были схемы.
+
avatar
  • motspb
  • 10 декабря 2018, 16:13
0
все перерыл, нашел только схему для резервного питания от 12в аккумулятора, это не совсем то…
Неужели никто не делал с Ni-Mh?
+
avatar
  • Ossss
  • 11 декабря 2018, 11:47
0
Мб в сторону LiFePO4 посмотреть варианты? Диапазон рабочих температур: от -30°C до +55°C, рабочее напряжение: 3.0-3.3 В
+
avatar
  • motspb
  • 11 декабря 2018, 14:30
0
Спасибо, посмотрю, однако, боюсь это очень редкий зверь, видимо, придется менять концепцию на применение кислотных аккумуляторов…
+
avatar
  • Novohyd
  • 12 декабря 2018, 17:58
0
Посоветуйте, какие транзисторы и диоды можно вместо этих воткнуть, а то запасы скудные, а до ближайшего магазина 100км.
Выходов порядочно остается, можно под релюхи приспособить, свет на фасаде и прочие мелочи.
+
avatar
0
При добавлении 2го и последующих номеров телефон записывается не полностью, обрезается

+CMT: "+380671111111","","18/12/13,13:48:24+08"
addphone:2+380681111
SMS from: +

+CMT: "+380671111111","","18/12/13,13:58:13+08"
addphone:3+380680000
SMS from: +



Вот такое выдает терминал. Добавлял с телефона. С терминала добавляется корректно.
Проверил работу на этой прошивке и сигнализации. Результат одинаковый
+
avatar
  • kvolk
  • 13 декабря 2018, 21:52
0
Шились из хекса или исходника?
Попробовал добавить через смс, всё хорошо, добавилось полностью:
Дополнительная информация
+CMT: "+7905XXXXXXX","",«18/12/13,21:53:36+12»
Addphone:3+380671111111

SMS from: +7905XXXXXXX
Phone added.

listphone
Read array phone:
№ -> Phone -> s -> r -> p -> i
1 -> 7905XXXXXXX-> 1 -> 1 -> 1 -> 1
2 -> 7961XXXXXXX -> 1 -> 1 -> 1 -> 1
3 -> 380671111111 -> 0 -> 0 -> 0 -> 0
4 -> -> 0 -> 0 -> 0 -> 0
5 -> -> 0 -> 0 -> 0 -> 0
6 -> -> 0 -> 0 -> 0 -> 0
7 -> -> 0 -> 0 -> 0 -> 0
8 -> -> 0 -> 0 -> 0 -> 0
9 -> -> 0 -> 0 -> 0 -> 0
10 -> -> 0 -> 0 -> 0 -> 0
+
avatar
0
Шился с исходника. Дело в том, что на сигнализации та же проблема. Пол года назад все добавлялось и работало. Сейчас нет. Фулрезет не помагает. Работает только основной номер. Сигналка шилась с хекса. Отправлял другое сообщение на терминал в режиме teston, обрезает ровно на 22 символа
+
avatar
  • kvolk
  • 13 декабря 2018, 23:41
0
Прошейтесь хексом и проблема исчезнет. Буфер увеличьте, в обзоре есть пункт для тех кто будет шиться из исходников.
+
avatar
0
Увеличил я и буфер. Все делаю по инструкции. Тут вопрос в другом. почему сигналка с прошлого вашего обзора работала, а теперь та же фигня. Нет нигде ограничений на количество символов в смс?
+
avatar
  • kvolk
  • 14 декабря 2018, 08:53
0
Прошейтесь хексом и проверьте, функционал управления номерами остался неизменным, у Вас модем правильно определяется?
+
avatar
0


Так выглядит «teston». Обрезает 3 цифры телефона
+
avatar
0
Люто плюсую автору. тк очень своевременно для меня натолкнулся на статью. все руки не доходили сесть и причесать разбросанные по коробкам тестовые макетки. нужен был именно термометр как он есть. но не для котла а для холодильной камеры на предприятии торговли. да и GSM включалки -перделки в авто для вебаст и тд давно ваялялись в состоянии — полудоделок. с помощью автора наконец то допишу все.

зы — в последней версии скетча баг: первый присвоенный номер пишется в массив с знаком +. после чего мега пытается отправить смс на номер ++792… с добавленными вторым и тд номерами такого не происходит тк в масссиве они хранятся без знака +
… долго тупил над этим — не хотела слать sim смс в ответ. пришлось ее из монитора всю перещупать. на нее косил. в итоге все работает кроме первого номера. добавил этот же номер вторым — шлет нормально ответы.

зызы — кто будет шиться из под ХР — ставьте в свойствах LD запуск в режиме 98win. у меня крашилось изза этого сперва. IDE — 1.6.13

+
avatar
  • kvolk
  • 14 декабря 2018, 13:37
0
первый присвоенный номер пишется в массив с знаком +
Модем какой используете?
Дополнительный + может появиться только в случае если неправильно определён модем в системе, или модем прописан вручную, или был заменён модем.

Выполните команду FullReset и снова позвоните на устройство.

ЗЫ Модем можно изменить вручную, в обзоре есть команды.
+
avatar
0
Модем менял вручную. Сим800 пока пробовал. Завтра попробую стереть. Отпишусь.
+
avatar
0
да все верно. сбросил масссив тф — перезвонил — мастер-номер встал корректно. теперь новая боль — пытаюсь получить баланс — с смс не отправляет обратно. из монитора — работает. номер корректный значит. длину поставил 8 символов.
+
avatar
0
да номер баланса мегафона на латинице — *100*0#
+
avatar
  • kvolk
  • 15 декабря 2018, 21:53
0
ListConfig покажите. И лог при отправке смс с командой money. Предварительно включите режим TestOn.
+
avatar
0
Еще один глюк правда в сигналке. Не добавляется 3 й номер с основного телефона
Дополнительная информация

GSM Alarm 17.08.10 fix-01

Read eepromconfig:

RingTime: 40
Test: 0
Led: 1
Guard: 1
SleepTime: 15
AlarmPinTime: 60
WatchPower
 Mode: 1
 Time: 0
GuardButton: 0
DelayBeforeGuard: 0
ExtDevice
 Level: 1
 Time: 1
SensorLevel
 Main: 0
 Second: 1
DelayBeforeAlarm
 Main: 0
 Second: 0
 PCF: 0
PCFForce: 0
ModemID: Autodetect

Balance number: #100#
Length to return: 22

Read array phone:
№ -> Phone -> s -> r -> p -> i
1 -> 380500200000 -> 1 -> 1 -> 1 -> 1
2 ->  -> 0 -> 0 -> 0 -> 0
3 ->  -> 0 -> 0 -> 0 -> 0
4 ->  -> 0 -> 0 -> 0 -> 0
5 ->  -> 0 -> 0 -> 0 -> 0
6 ->  -> 0 -> 0 -> 0 -> 0
7 ->  -> 0 -> 0 -> 0 -> 0
8 ->  -> 0 -> 0 -> 0 -> 0
9 ->  -> 0 -> 0 -> 0 -> 0
10 ->  -> 0 -> 0 -> 0 -> 0

I2C devices not found
Detected ModemID: 2
Guard ON at boot


+CMT: "+380500200000","","18/12/14,19:12:38+08"
AddPhone:2+380679400000s

SMS from: +380500200000
Phone added.

listphone
Read array phone:
№ -> Phone -> s -> r -> p -> i
1 -> 380500200000 -> 1 -> 1 -> 1 -> 1
2 -> 380679400000 -> 1 -> 0 -> 0 -> 0
3 ->  -> 0 -> 0 -> 0 -> 0
4 ->  -> 0 -> 0 -> 0 -> 0
5 ->  -> 0 -> 0 -> 0 -> 0
6 ->  -> 0 -> 0 -> 0 -> 0
7 ->  -> 0 -> 0 -> 0 -> 0
8 ->  -> 0 -> 0 -> 0 -> 0
9 ->  -> 0 -> 0 -> 0 -> 0
10 ->  -> 0 -> 0 -> 0 -> 0

Ring from: +380679400000
Guard OFF. Phone +380679400000
Sent! +380500200000 -> Guard OFF. Phone +380679400000

+CMT: "+380500200000","","18/12/14,19:21:14+08"
AddPhone:3+380952500000s

SMS from: +380500200000
Error, not set main phone.




+
avatar
0
Извините что дрочил мозги. Заработало все. Прошился из XP, полет нормальный. В 8,1 были глюки
+
avatar
  • kvolk
  • 22 декабря 2018, 13:46
0
2018.12.22-01 — Изменён принцип проверки состояния датчика температуры. Если при включении или во время очередного опроса датчика устройство не может его обнаружить, то будет отправлено смс оповещение и совершены тревожные голосовые вызовы, так же будут светиться все три светодиода. Если с датчика будет получена температура, устройство продолжит работу в штатном режиме.
+
avatar
  • Novohyd
  • 28 декабря 2018, 11:58
0
Функция отправки смс не гарантирует надежную отправку. Нужно, как минимум, отследить ответ модема. Delay() -зло. У 800- ки бывают клины на эту тему. Одно некорректно отправленное смс — и модем не будет ничего отправлять далее до ресета. Я в общем круге через millis крутил, отмечая этапы отправки в переменной и по таймеру. При неудачной отправке отправлял модем в reset
+
avatar
  • kvolk
  • 07 января 2019, 15:02
+1
2019.01.07-01 — Исправлен баг из-за которого неправильно вводилось отрицательное значение температуры.
+
avatar
  • Limpopo
  • 28 января 2019, 12:13
+1
kvolk, спасибо за проект. Можно добавить к существующему функционалу еще несколько термометров? Например
t-обратки, t-помещения, t-снаружи.
+
avatar
  • kvolk
  • 28 января 2019, 14:37
0
Можно добавить к существующему функционалу еще несколько термометров?
Быстрой реализации обещать не могу, но в лист задач запишу.
+
avatar
0
Поддерживаю, было бы супер.
Вопрос к автору… А исходничка, случайно, в .flp нет?
+
avatar
  • kvolk
  • 28 января 2019, 14:38
0
А исходничка, случайно, в .flp нет?
Всё есть. Лежат скетчи к каждой версии там же где и прошивки.
В .flp нет.
+
avatar
  • vvn22
  • 17 февраля 2019, 18:13
0
Не работает. СМС как бы доставляются, дозвон идёт. Но после перестановки СИМ-карты из устройства в смартфон, приходит пачка этих же СМС и пачка уведомлений, что «звонили с такого-то номера». Шился из среды 1.6.7. UNO на CH340 Китай.
Тест ЕЕПРОМ проходит. Статистику из порта видно, Температуру измеряет верно. Listphone пишет нули. СИМ-карта МТC 4G,
+
avatar
  • vvn22
  • 17 февраля 2019, 20:52
0
Пробовал сим карты TELE2 и Мегафон. Мегафон работает в старом кнопочном аппарате 2007 года, т.е. вопрос 2/3/4G похоже не стоит.
+
avatar
  • vvn22
  • 19 февраля 2019, 23:59
0
Победил. Получается, что SIM800L по умолчанию установлен на 115200. Добавил в секции void InitModem()

mySerial.begin(115200);
mySerial.println(«AT+IPR=9600»);

начал откликаться на AT-команды. Хотя в даташите вроде бы присутствует фраза autobouding?
+
avatar
  • kvolk
  • 24 февраля 2019, 14:58
0
Видимо сам модем криво определяет скорость
+
avatar
  • bornigan
  • 27 февраля 2019, 12:39
0
Поясните, почему на принципиальной схеме + аккумулятор соединен с + выхода с платы питания, а на схеме разводки аккумулятор подключен отдельно, как в принципе и положено? В которой из схем ошибка?
+
avatar
  • kvolk
  • 27 февраля 2019, 15:55
0
Да вот почему, на фото обвёл фиолетовым:
+
avatar
0
Огромное спасибо за проект.
Даже не представляю сколько времени занимает создание таких проектов. И за то что не пожадничали и не пожалели времени на редактирование и обнародовании в интернете.
И еще вопрос — если местный оператор присылает баланс на кирилице, то не получится запросить счет?
+
avatar
  • kvolk
  • 27 февраля 2019, 15:52
0
Даже не представляю сколько времени занимает создание таких проектов.
На основной проект охранной сигнализации ушло больше года, начиная от первой версии и до финальной. Именно на этот ушла неделя или две, потому что практически всё было взято из того проекта.

если местный оператор присылает баланс на кирилице...
Позвоните в поддержку оператора и уточните какой номер для запроса баланса с ответом на латинице.
+
avatar
0
Звонил уже только на кирилице.
Феникс Донецк.
+
avatar
0
Повторил Ваше устройство.
Модуль sim800 оказался очень капризным к напряжению питания. При питании по собраной схеме 4,14 вольт часто зависал и терял сеть. Пришлось ставить ещё два диода шотки в его цепь питания. Получилось 3,73 вольта, при этом напряжении работает стабильно.
А да и еще на всякий случай поставил электролит на 6800 микрофарад.
+
avatar
0
+
avatar
0
Единственное что не получилось получить ответ о балансе на счету, оператор поддерживает только кирилицу.
Еще раз спасибо.
+
avatar
0
А нет погорячился, вспылил, был не прав!
Проработала сигнализация несколько часов и перестала ловить сеть. Светодиод на сим модуле мигал три раза с длительными паузами.
Это сигнал того что питание не в порядке. Померял питание 3,73вольта.Поставил по питанию сим модуля dc-dc преобразователь, но изменения напряжения ничего не дали. Думал уже что накрылся модуль. Случайно отсоединил
Вход сим800, и о чудо модуль впоймал сеть. Как оказалось нужно не только ограничивать напряжение питания модуля но и амплитуду входного сигнала с ардуино на сим. Простой делитель из двух сопротивлений исправил ситуацию. Модуль заработал стабильно.
Почему одни модули работают с 5 вольтовым сигналом а другие нетХЗ.
Но по даташиту и на вход сим модуля нельзя подавать больше 3,1 вольта. Так что все закономерно.
+
avatar
  • kvolk
  • 05 апреля 2019, 17:31
0
Как запитана ардуина и модем? Оба после тп4056 или ардуина сразу от 5В а модем от модуля?
+
avatar
0
Здравствуйте. меня тоже смутил этот момент. Я подрисовал к схеме делитель, но не уверен что правильно это сделал. Не могли бы вы поделиться своим вариантом?
+
avatar
0
Оба после
+
avatar
  • kvolk
  • 11 апреля 2019, 17:49
0
Проверяйте пульсации блока питания, попробуйте его заменить. Очень похоже на то что модулю не хватает питания для регистрации в сети, что в это время он сыпет в ком порт?
+
avatar
0
Уде 6 дней работает стабильно. Я думаю можно попробовать даже дополнительные диоды по питанию убрать, и посмотреть как будет работать.
+
avatar
0
Здравствуйте!
Собрал все по схеме. Система конфигурится через COM. Но дозвониться не могу по номеру SIM-карты. В интернете пишут, что модем нуждается в предварительных настройках, и предлагают для этого пользоваться монитором порта и специальный скетч. Вопрос: нужно ли мне это делать, или функции этого скетча уже реализованы? Если да, то как это сделать? Дело в том, что по схеме nano заберет питание +5 c USB, а сим-модуль — с nano, что для него много. И еще: разъясните зачем нужен делитель на D7 подключать? Какова его роль?
Отличие моей схемы: диод с общим катодом (посадил на GND, пины в скетче инвертировал), и RX вход сим-модуля подключил через делитель 2,2-3,3, дабы попасть в интервал напряжений High-уровня, согласно даташиту. Может ли это влиять на работоспособность устройства?
+
avatar
0
Уже не актуально. Все заработало!!!
+
avatar
  • Razario
  • 09 декабря 2021, 09:17
0
Добрый день. Такая же проблема. Как решили?
+
avatar
0
Команда Money очень хороша и нужна. Жаль, что он работает только в режиме консоли. Было бы хорошо, если бы эта команда была доступна с телефона администратора, и администратор получил бы ответ о доступных средствах. Как это сделать?
+
avatar
  • kvolk
  • 08 июня 2019, 12:19
0
Работает и через смс тоже.
+
avatar
0
У меня не работает. Я отправляю Money с телефона и не получаю ответа. В мониторе порта:

+CMT: "+4850931xxxx",,«19/06/08,11:30:59+08»
Money
SMS from: +4850931xxxx

и больше ничего.

Если я введу Money с консоли, то:

Money

USSD query:
+CUSD: 0,«Pozostalo Ci 1,00zl do wykorzystania do 2019-09-05 23:59:59.»,15

OK

что правильно.
+
avatar
  • kvolk
  • 08 июня 2019, 12:44
0
Включите режим TestOn и отправьте смс. Тип модема вручную меняли? Шились из исходников или из хекса?
+
avatar
0
Я сделал TestOn.
Я отправил смс — Money, не получил ответа.
В мониторе порта:

TestOn

OK

OK

OK

OK

OK

Temperature: 28.50

+CMT: "+4850931xxxx",,«19/06/08,12:03:18+08»
Money

SMS from: +4850931xxxx
+cmt: "+4850931xxxx",,«19/06/08,12:03:18+08»money
AT+CUSD=1,"*101#",15

ERROR

У моего оператора запрос баланса "*101 #"
Тип модема определяется автоматически.
И из хекса и из исходников получаю то же самое
+
avatar
0
Вы ничего не предлагали. Что случилось? Я что-то оскорбил или нехватка времени?
Далее я искал решение, я сделал много попыток. SIM800L никак не отправляет ответ на запрос MONEY. Я проверил это на двух модемах.
То же относится и к модему M590E, без ответа.
Я нашел старый модем SIM300DZ. После автоматического распознавания все заработало, но ответы были с ошибками, появились «китайские иероглифы». Я выбрал модуль M590 вручную (на модеме SIM300DZ), и все стало работать как надо. Все остальные команды также выполняются правильно.
Почему это происходит, я не могу понять. Может быть, это более понятно для вас? Что вы думаете об этом?
+
avatar
0
Добрый день. Кто нибудь пробовал добавить в код СМС уведомление о том, что модем зарегистрировался в сети (в домашней сети)? Пробовал разные варианты, но знаний не хватает. Прописал загорание светодиода, когда он поймал сеть, но вот чтобы потом послал смс не выходит. Может кто подсказать?
Вот так происходит LED уведомление о том, что модем в сети:
void DetectGSM() {
  mySerial.println("AT+CREG?");
        if (mySerial.find("+CREG: 0,1")){
          digitalWrite(gsmmodem, HIGH);
          }
          else {
            digitalWrite(gsmmodem, LOW);
            }
}
+
avatar
  • advmos
  • 24 октября 2019, 15:53
0
Здравствуйте!

По ссылке mySKU.me/blog/ebay/68818.html находится статья про Бюджетный GSM термометр на Arduino Nano. Где можно скачать прошивку? По ссылке

drive.google.com/open?id=1Gf6bAJbHKi0jBLE26TaKaCOBukQOFGka

можно найти только два файла PowerModule.lay6 и Xloader.zip. В архиве исходника и hex файла нет.
Содержание архива:
avrdude.conf
avrdude.exe
devices.txt
libusb0.dll
license.txt
XLoader.exe

Спасибо!
+
avatar
  • demonk
  • 24 октября 2019, 16:45
+1
Там же еще и папка «Прошивки» есть
+
avatar
  • advmos
  • 24 октября 2019, 20:26
0
Спасибо! Уже разобрался!
+
avatar
  • vladwel
  • 13 декабря 2019, 13:18
0
День добрый.
Подскажите плиз, купил датчик DS18B20 но у него на др конце мини USB. Мои познания в электронике примерно ниже начинающего, как узнать где в этом выходе ± и data подключены? резать не хочется провод. Есть мультиметр дома.
+
avatar
  • kvolk
  • 13 декабря 2019, 13:50
0
Дайте ссылку на датчик.
+
avatar
  • vladwel
  • 13 декабря 2019, 14:32
0
Ссылку модератор не разрешит наврено, выше дал сылку но она на проверке еще. на конце обычный микро USB.

+
avatar
  • kvolk
  • 13 декабря 2019, 17:13
0
Что, правда за 500 рублей купили DS18B20?
+
avatar
  • vladwel
  • 13 декабря 2019, 19:05
0
Вообще не вру :)) а че нет то? рядом не было дешевле и быстрее. За 400 с чем-то купил, но их же датчик. Расппайку дал саппорт, спасибо за внимание.
+
avatar
0
у меня ругается на температурный датчик — error sensor. сам датчик рабочий — проверял отдельно… куда копать — подскажите пожалуйста. в чем может быть дело?
+
avatar
  • leon_00
  • 29 февраля 2020, 20:05
0
всем привет! С кодом не дружу, но по схеме собрать смог. Не использовал батарею, диод, датчик заряда и тд. Питание на ардуино подаю через понижающий DC/DC. Земля общая. Работает странно. Сразу после подключения все ок, через время перестает отсылать смс, в том числе в мониторе порта деньги не проверяет. В мониторе видно, что звонки обрабатывает и отсылает смс, но их нет( Подскажите что?
+
avatar
  • Yanken
  • 06 октября 2020, 07:45
0
Добрый день. Я собрал это устройство и автору огромный респект! Это очень нужное устройство, которое реально необходимо, например, для загородного дома. Я столкнулся с проблемой и никак не могу ее решить, надеюсь на помощь автора-разработчика или участников форума. Мое устройство работает, но не отвечает на смс команды. С консоли ПК все операции выполняются, все тесты проходят, а вот при отправке смс info приходят странные символы, на которые устройство не отвечает. Подскажите, что это может быть и где искать проблему. Удивительно, но пару раз на запрос info пришло ответное сообщение, но стабильности нет. Я попробовал нагреть термодатчик, чтобы сработало аварийное предупреждение — в ответ пришло смс и даже звонок на номер, а вот на команду info устройство не отвечает.
+
avatar
  • kvolk
  • 06 октября 2020, 13:05
0
В конце строки «сыпет мусор», проблема общения между ардуиной и модемом. Ответное смс не приходит из-за того, что не удаётся распознать полностью строку выделить из неё номер телефона и команду которая приходит в сообщении.
Необходимо проверить кодировку в которой отправляются смс сообщения с вашего телефона.
+
avatar
  • Yanken
  • 06 октября 2020, 13:29
0
Заработало!!!
Проблема была в согласовании уровней. На форуме я прочитал рекомендации, согласно которым необходимо согласовать уровни выхода Tx ардуино и Rx модема, поэтому связь Tx --> Rx сделал через делитель напряжения 2.2 кОм/3.3 кОм. После соединения напрямую все заработало. Отдельно хочу отметить, что не прошло и суток с момента возникновения проблемы до момента ее решения. Я написал письмо разработчику (Илья, kvolk) и он сам связался со мной и сообщил в чем может быть проблема. Я очень благодарен Илье за этот проект. В прошлом году у меня в загородном доме отключился котел отопления, который должен был поддерживать автоматически заданную температуру дома. Это привело к тому, что дом замерз, лопнули все батареи и вышел из строя окончательно сам котел. Ущерба от этой ситуации было порядка 75 т.р., может быть и больше. Сейчас, применив проект Ильи, я спокоен за систему отопления и даже если что-то произойдет, можно будет приехать раньше, чем там все замерзнет и решить проблему. Еще раз огромное спасибо разработчику!!!


+
avatar
  • kvolk
  • 06 октября 2020, 13:50
0
Не за что! В очередной раз убеждаюсь что в согласовании уровней между sim800l и arduino нет необходимости. Аккумулятор ультрафайер — огонь, неплохо бы его заменить на что нибудь брендовое. Я бы не рискнул его использовать, а если собрали без полевого транзистора Q1, то тем более.
+
avatar
  • Yanken
  • 06 октября 2020, 13:55
0
Q1 установлен. Аккумулятор можно заменить, если нужно. Илья, расскажите, что с этим аккумулятором не так? Почему бы Вы не рискнули его применять? Пожароопасный?
+
avatar
  • kvolk
  • 06 октября 2020, 14:35
0
Это китайское поделие лучше не использовать, под термоусадкой ультрафайр может быть всё что угодно.
+
avatar
  • Yanken
  • 06 октября 2020, 14:42
0
Понятно, спасибо. Буду с ним осторожен, а в будущем заменю на что-то получше.
+
avatar
  • Yanken
  • 06 октября 2020, 14:08
0
Илья, хочу задать Вам вопрос. После того, как все заработало, я решил проверить, как работает режим оповещения о пропадании питания. Я отключил сетевое напряжение 220 В и следил за поведением устройства. На ардуино было видно, что взморгнули лампочки Rx/Tx (может быть одна лампочка, все быстро происходило и трудно было различить). Т.е. устройство попыталось отправить смс, но сообщение на телефон не пришло. Само устройство зависло. Я отправил команду info, обратного сообщения не последовало, попробовал отправить команду reboot, перезагрузка не произошла. Я полностью отключил питание (сетевое и аккумуляторное). После этого устройство заработало. Я попробовал еще раз проделать то же самое и ситуация повторилась. Не сталкивались с подобным? Я опасаюсь ситуации, когда прибор может зависнуть и его некому будет перезагрузить. На данный момент прибор виснет при пропадании питания. Возможно, я еще не очень разобрался во всех настройках. Заранее спасибо за ответ.
+
avatar
  • kvolk
  • 06 октября 2020, 15:10
0
Проверьте питание, добавьте конденсатор в цепь питания. Замените аккумулятор.
+
avatar
  • Yanken
  • 06 октября 2020, 15:15
0
Попробую. Спасибо.
+
avatar
  • kvolk
  • 07 октября 2020, 21:21
0
Проблема решена?
+
avatar
  • Yanken
  • 08 октября 2020, 00:09
0
К сожалению, нет. Расскажу Вам о своих экспериментах, возможно, они наведут Вас на мысль. Первое, что я сделал. Я проверил напряжения питания модулей в режиме работы от сети и от аккумулятора. Питание от сети — 4.35 В. Питание от аккумулятора — 4.14 В. Потом я убедился, что устройство может работать в режиме питания от аккумулятора. Я включил устройство от аккумулятора, дал ему загрузиться, отправил команду info — пришел ответ с температурой. Все работает. Я подключил питание от сети. Выключил питание от сети. Лампочка Тх на ардуино коротко моргнула, но смс на телефон не пришло. В такой ситуации с устройством что-то происходит, так как оно перестает отвечать на команды, ему требуется полная перезагрузка. Я отправляю ему сообщения info, reboot и устройство не отвечает и не реагирует. Работоспособность восстанавливается только после перезагрузки питанием. Я проделал все это многократно, давая время на то, чтобы все загрузилось и устаканилось. После этого я подключил монитор порта. В тот момент, когда я отключил сетевое питание, при подключенном кабеле USB — сообщение об отключении питания было отправлено. Обратное включение в сеть также сопровождалось соответствующим оповещением. Я измерил напряжение на модулях в режиме подключенного кабеля USB — 4.65 В. В такой конфигурации (с подключенным кабелем USB) все работает. Автономно — не работает. Я попробовал зашунтировать конденсатором питание модулей, потом зашунтировал входное питание 5В (до диодов). Тоже нет результата. Попробовал зашунтировать электролитом танталовый конденсатор на модуле SIM800L, то же самое сделал непосредственно на выводах платы ардуино. Результата это не дало. Как вывод — автономно устройство не детектирует отключение сетевого питания. При подключенном кабеле USB к ПК все работает. Думаю дальше, что с этим делать…
+
avatar
  • kvolk
  • 08 октября 2020, 00:21
0
Какое напряжение на входе D7 arduino? Какое напряжение на выходе источника питания? На какой вход ардуины подаётся питание +5в или vin? Какой источник питания используется?
99,9% проблема с питанием.
+
avatar
  • Yanken
  • 08 октября 2020, 07:18
0
На входе D7 ардуино приблизительно 3.1 В. На выходе источника питания стабилизированные 5В, источник питания — импульсный преобразователь 5В @ 2А. Питание с него подается на вход "+5V".
+
avatar
  • kvolk
  • 08 октября 2020, 07:41
0
Отключите мониторинг питания и проверьте будет зависать или нет. Q1 притянули резистором к земле?
+
avatar
  • Yanken
  • 08 октября 2020, 07:51
0
Проверю, отпишусь… Q1 затвором притянут к земле.
+
avatar
  • kvolk
  • 08 октября 2020, 11:42
0
Только отключите программно, для этого есть команда WatchPowerOff
+
avatar
  • Yanken
  • 08 октября 2020, 11:50
0
Хорошо, я именно так и собирался сделать.
+
avatar
  • Yanken
  • 08 октября 2020, 23:19
0
При выключенном мониторинге питания устройство зависает при пропадании сетевого питания.
+
avatar
  • kvolk
  • 08 октября 2020, 23:24
0
Такого быть не должно, проверяйте схему подключения, источник питания, пульсации, аккумулятор, транзистор Q1. У меня несколько таких устройств, такой проблемы нет ни на одном из них.
+
avatar
  • kvolk
  • 08 октября 2020, 23:34
0
Уберите транзистор и диоды, посмотрите что будет.
mySKU.me/blog/ebay/68818.html#comment2923826
Если ситуация не изменится меняйте блок питания.

При подключенном usb такого нет потому, что доппитание идёт с usb порта.
+
avatar
  • Yanken
  • 08 октября 2020, 23:44
0
А как мы можем убрать диоды, ведь они задают необходимое падение напряжения. Без них на модуль SIM800 пойдет 5В, что выше допустимого по даташиту.
+
avatar
  • kvolk
  • 08 октября 2020, 23:53
0
Диоды задают 4,2В с выхода блока питания, а на выходе модуля TP4056 и так 4,2В.
+
avatar
  • Yanken
  • 09 октября 2020, 07:43
0
У модуля ТР4056 есть возможность задать зарядный ток с помощью резистора. Вопрос, если сильно уменьшить зарядный ток, например до 10% от емкости аккумулятора, возможно это в разы увеличит его срок службы? Я сейчас говорю про конфигурацию питания без диодов и без полевого транзистора.
+
avatar
  • Yanken
  • 09 октября 2020, 00:20
0
Убрал диоды и транзистор и все заработало! Проблема локализовалась, что-то не так у меня с управляющим транзистором…
+
avatar
  • kvolk
  • 09 октября 2020, 06:41
0
Полевой транзистор IRLML6402 или какой-то аналог?
+
avatar
  • Yanken
  • 09 октября 2020, 07:28
0
Да, он самый, точно как на схеме.
+
avatar
  • kvolk
  • 09 октября 2020, 08:55
0
Может быть какой-то то диод глючный? Попробуйте заменить источник питания, не рекомендую убирать транзистор и диоды из схемы.
+
avatar
  • Yanken
  • 09 октября 2020, 09:37
0
Диоды проверил, транзистор тоже. С источником питания тоже вроде все в порядке. С ним же все работает и проблема возникает при переключении питания. Надо осцилл заводить. Спасибо за участие, я подумаю, что делать с этим дальше.
+
avatar
  • Yanken
  • 09 октября 2020, 11:30
0
Я не понимаю, почему не нужно убирать диоды и транзистор из схемы? Чем плохо прямое подключение модуля TP4056? Ведь он для этого и предназначен, чтобы заряжать литиевый аккумулятор и обеспечивать питанием нагрузку. Я планирую уменьшить зарядный ток аккумулятора, думаю, что это может увеличить его ресурс.
+
avatar
  • Yanken
  • 09 октября 2020, 12:00
0
Точнее сказать, я понимаю Вашу идею. Вы хотели, чтобы в рабочем режиме питание было только от источника питания и ни каплей тока от аккумулятора. Прямое подключение отбирает часть тока от аккумулятора и заряжать его придется чаще, нежели он был бы отключен от процесса и работал бы только на саморазряд. Действительно ли эти частые циклы заряда так пагубны для аккумулятора?
+
avatar
  • kvolk
  • 09 октября 2020, 12:11
0
и заряжать его придется чаще
Да, примерно раз в час, в два часа. Ваш ультрафаер лучше в таком режиме не использовать.
mySKU.me/blog/ebay/68818.html#comment2925440

В очередной раз повторюсь, попробуйте взять любое «брендовое» зарядное устройство для телефона. У меня в устройствах используются оригинальные от Sony и Xiaomi и такой проблемы нет.
Какой источник питания у вас используется?
+
avatar
  • Yanken
  • 09 октября 2020, 13:14
0
По поводу источника питания — трудно сказать, что это за БП и откуда он. За годы радиолюбительской жизни набралось много всего. Какой-то импульсник на 2А, на 5В. Точно от какого-то устройства, кажется, планшета, но точно уже не скажу. В любом случае, Илья, спасибо Вам за помощь и консультации. Я убедился, что ПО отлично работает и железо тоже работает. Сейчас есть маленькие проблемы с переключением питания, уверен, что это либо «возбуд», либо пульсации БП, возможно, еще что-то. Я с этим разберусь, это аппаратная проблема и решается по сути без участия разработчика, главное, что в ПО лезть не надо и там что-то менять. В выходные я уезжаю, как вернусь, обязательно продолжу работу над прибором. Когда решу проблему — обязательно отпишусь! Еще раз спасибо за помощь и участие!
+
avatar
  • kvolk
  • 09 октября 2020, 21:39
0
Какой-то импульсник на 2А, на 5В.
Попробуйте заменить конденсаторы на выходе блока питания, возможно они неисправны.
+
avatar
  • Yanken
  • 12 октября 2020, 10:03
0
С конденсаторами все в порядке, я их проверил.
+
avatar
  • kvolk
  • 08 октября 2020, 00:35
0
Загляните в эту тему.
mySKU.me/blog/ebay/43282.html#comment1995965
+
avatar
  • Yanken
  • 08 октября 2020, 07:23
0
Спасибо, посмотрю.
+
avatar
  • Yanken
  • 12 октября 2020, 08:11
+1
Еще раз добрый день!
Мне удалось разобраться в сути проблемы и решить ее. Используемый полевой транзистор irlml6402 имеет пороговое напряжение затвора от -0,4 до -0,95 В (согласно datasheet), соответственно, при пропадании сетевого питания требуется некоторое время, пока напряжение опустится до уровня открытия полевого транзистора, и пока идет этот переходный процесс, ардуино и все другие модули питаются пониженным напряжением, которое и приводит к зависанию. В моем случае провал питающего напряжения происходит до приблизительно 2.8 В и длительность провала составляет порядка 0,5 с. Потом открывается полевик и питание подается от аккумулятора. Этот переходный процесс и приводит к зависанию модуля ардуино. Видео переходного процесса можно увидеть на видео ниже.



Несколько слов по поводу емкостей. Я попробовал устанавливать емкости в цепи питания ардуино, чтобы подавить этот провал питания, суммарная емкость составляла до 5500 мкФ (2200 + 3300 мкф), но даже такая емкость не смогла подавить переходный процесс. Если емкость убрать совсем, как это указано на принципиальной схеме, то работает все так же, но на осциллографе видны всплески питания во время работы модуля зарядки TP4056. Чтобы подавить эти пульсации я решил оставить емкость 2200 мкф, подключенной к цепи питания ардуино. Это мало на что повлияло, но пульсации от модуля зарядки стали проходить значительно меньше. Теперь по поводу емкости, которая является выходной для блока питания 5В. Там должен быть компромисс, с одной стороны эта емкость должна быть достаточной для подавления пульсаций БП, с другой стороны, не нужно делать ее избыточной, чтобы при пропадании сетевого питания напряжение 5В падало до нуля максимально быстро. Чем быстрее мы опустим напряжение 5В до 0, тем быстрее откроется полевой транзистор. Именно из этих соображений я сделал следующие доработки.
Во-первых, я подключил нагрузочный резистор 150 Ом на шину питания 5В. Этот резистор дает дополнительные 33 мА нагрузки и значительно быстрее разряжает выходную емкость блока питания при пропадании сетевого напряжения.
Во вторых, затвор полевого транзистора я перенес на точку соединения диодов D2 и D2, это тоже сдвигает порог открытия транзистора на 0,25 В ранее, чем было до этого. Видео переходного процесса после доработки представлено ниже.



После проведенных доработок мое устройство заработало стабильно. Еще раз спасибо за чудесный проект и участие.
Ниже добавил фото процесса переключения с некоторыми пояснениями. Всем удачи!
+
avatar
  • kvolk
  • 12 октября 2020, 10:23
0
А транзистор не будет быстрее открываться если R7 поставить на 1кОм?
+
avatar
  • Yanken
  • 12 октября 2020, 10:44
0
В данном случае R7 не только притягивает затвор к земле, но и является линией разряда напряжения с шины 5В (D1 --> R7 или в моем случае D1 --> D2 --> R7). Транзистор будет открываться быстрее, так как разрядный ток шины питания 5В увеличится. Вопрос в том, хватит ли этого, чтобы транзистор успел открыться до того момента, когда напряжение упадет до предельного для ардуино. Это можно проверить только экспериментально.
+
avatar
  • kvolk
  • 12 октября 2020, 11:32
0
затвор полевого транзистора я перенес на точку соединения диодов D2 и D2
D2-D3?
+
avatar
  • Yanken
  • 12 октября 2020, 11:44
0
да, D2 и D3. Опечатка закралась.
+
avatar
+1
Урраа! Зззаработало! Огромное спасибо Yanken. Устройство то и дело зависало при переключении питания. Поменял много БП, кондёры разные, gsm модули и пр… Отчаялся. Начал искать осцилограф. Заглянул в ветку, а тут решение. Перекинул проводок и всё… заработало стабильно. Уже на страже дома.
+
avatar
  • Yanken
  • 20 ноября 2020, 16:08
0
Не за что! Очень рад, что тема живет и мои эксперименты пригодились не только мне.
+
avatar
0
Я в прошлом году собрал данное устройство. Так вот летом и осенью несколько месяцев было включено на работе, тестировал. С наступлением холодов установил на дом, где требуется контроль температуры. Через несколько дней заткнулось и не подавало признаков жизни. Тоже выяснил что зависала ардуино. Лечилось полной перезагрузкой ардуины. Поскольку мои познания в элетронике не настолько сильны, поставил циклический таймер на перезагрузку ардуины. Каждые три часа перезагружает, ничего лучше не придумал. Вот такой вот я рукожоп. Теперь думаю переделать по Вашему методу, или не трогать пока работает. Самое интересное что пока тестировал много раз пропадало напряжение, и сигнализация не висла, слала сообщения. Шамана с бубном надо.
+
avatar
  • Razario
  • 03 сентября 2021, 19:05
0
Добрый день. Возможно ли подключить два датчика температуры? (Контроль t в помещении и на улице )
+
avatar
  • kvolk
  • 04 сентября 2021, 09:51
0
Возможно, но придется дописать код.
+
avatar
  • Razario
  • 07 сентября 2021, 08:45
0
Добрый день. Для загрузки hex файла нужно создавать папку avrdude и далее через командную строку? Xloader отказался работать (.ps: просьба не ругаться, только начал осваивать эту тему.
+
avatar
  • kvolk
  • 07 сентября 2021, 11:25
0
Xloader отказался работать
Решите эту проблему, это 100% рабочий вариант.
+
avatar
  • Razario
  • 07 сентября 2021, 19:52
0
Загрузил hex файл (2019г), схему еще не собирал. При проверке через монитор порта выдает:

GSM Temperature Alarm 2019.01.07-01

Read eepromconfig:

RingTime: 40
Test: 0
Led: 1
Guard: 1
NetCheckTime: 0
TempCheckTime: 10
LowTemp: 10
HighTemp: 70
WatchPower
Mode: 1
Time: 0
ModemID: Autodetect

Balance number: #100#
Length to return: 22

Read array phone:
№ -> Phone -> s -> r -> p -> i
1 -> -> 0 -> 0 -> 0 -> 0
2 -> -> 0 -> 0 -> 0 -> 0
3 -> -> 0 -> 0 -> 0 -> 0
4 -> -> 0 -> 0 -> 0 -> 0
5 -> -> 0 -> 0 -> 0 -> 0
6 -> -> 0 -> 0 -> 0 -> 0
7 -> -> 0 -> 0 -> 0 -> 0
8 -> -> 0 -> 0 -> 0 -> 0
9 -> -> 0 -> 0 -> 0 -> 0
10 -> -> 0 -> 0 -> 0 -> 0

Guard ON at boot.

Error sensor.

Я на верном пути? загружал при помощи gcUploader
+
avatar
  • kvolk
  • 07 сентября 2021, 20:27
0
Да, всё верно, датчика нет, об этом устройство и сообщает в консоль.
+
avatar
  • Razario
  • 07 сентября 2021, 20:35
0
Спасибо! Буду дальше разбираться))
+
avatar
  • paramen
  • 19 сентября 2021, 09:28
0
Столкнулся со следующей ситуацией: при отправке с телефона команды «Money» не приходит ответ.

Лог следующий:
AT+CUSD=1,"#100#",15
OK
USSD query: 
+CUSD: 2

AT+CUSD=0
OK


Причина такого поведения найдена. GSM модуль не может сразу после приема SMS выполнять команды USD. Требуется задержка. В исходника данный факт предусмотрен, но отключен.

// ----- Команды запроса баланса
void balance(uint8_t from_console) {
  if (from_console == 1) ConsoleEvent = 1;

  delay(1000);

  mySerial.print(F("AT+CUSD=1,\""));
  mySerial.print(BalanceNumber);
  mySerial.println("\",15");
}


Хочу добавить: Использую модем SIM800C
+
avatar
  • gogaon
  • 28 октября 2021, 19:49
0
Всем добрый день автору огромное спасибо. Сигнализация работает второй год без отказа. Помогите прикрутить. Одну реле к этому проекту. Просто не сильно хватает знаний. За рание спасибо.

if (inputString.indexof(«ON_1») > -1){ // Проверяем полученные данные, если ON 1 включаем реле 1 digitalWrite (relay 1, LOW);

delay (1200);

digitalWrite (relay 1, HIGH);

sms (String («Relay 1 — ON»), String("+7xxxxxxxxxx"));} // отправка SMS

if (inputString.indexOf(«OFF_1») > -1){ // Проверяем полученные данные, если ON 1 включаем реле 1 digitalWrite (relay_1, LOW);

delay (4200);

digitalWrite (relay_1, HIGH);

sms (String («Relay 1 — OFF»), String("+7xxxxxxxxxx"));} // отправка SMS