Мониторинг температуры через интернет с помощью GSM-модуля SIM900. Урок 4.

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

Программируем контроллер

После того, как устройство собрано – самое время его «прошить». Для этого нужно выполнить несколько несложных шагов.

Шаг 1: Качаем последнюю версию Arduino IDE с официального сайта Arduino.

Скачиваем Arduino IDE
Рис. 1. Скачиваем Arduino IDE

Выбираем версию программы для вашей операционной системы (рис. 1), скачиваем её и устанавливаем на свой компьютер.

Шаг 2: Качаем библиотеку “OneWire” отсюда.

Скачиваем архив с библиотекой, распаковываем и копируем его содержимое в директорию с установленной  ArduinoIDE в папку libraries. Эта библиотека пригодится для информационного обмена с термодатчиком.

Шаг 3: Регистрируемся на облачном сервисе LS Cloud.

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

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

Заходим на t.lazysmart.ru, проходим стандартную процедуру регистрации и получаем доступ к своему аккаунту.

сервис мониторинга температурыРис. 2. Регистрация на LS Cloud

Для начала работы нужно создать новое устройство.

мониторинг температуры
Рис. 3. Создание нового устройства

Нажимаем на кнопку «Добавить новое устройство» и в появившемся окне вводим любое имя, например «Мой объект».

После добавления, устройство появится в списке в левой части экрана, а в правой части — формы для отображения данных устройства (самих данных пока нет, т.к. устройство ещё ничего не передавало) (рис. 4).

удалённый мониторинг температуры
Рис. 4. Только что созданное устройство

Теперь переходим в настройки прибора и смотрим его идентификационные параметры: логин и пароль.

LS Cloud настройка прибора
Рис. 5. Идентификационные параметры

Эти данные мы внесём в прошивку контроллера. Они нужны, чтобы устройство авторизовалось на сервере при передаче данных.

Шаг 4: Подключаем устройство к компьютеру.

С помощью USB-кабеля подключаем собранное устройство к ПК. При этом в диспетчере устройств должно появиться новое устройство “Arduino Mega 2560”.

Arduino Mega в диспетчере устройствРис. 6. Arduino Mega в Диспетчере устройств

В скобках указан COM-порт для связи с платой контроллера. Его нужно будет указать в настройках подключения Arduino IDE.

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

Шаг 5: Зашиваем программу в контроллер.

Cкачиваем отсюда код программы для Arduino Mega и открываем её в Arduino IDE. Код щедро откомментирован, чтобы в нём можно было разобраться.

Теперь ищем в программе строки (25 и 26), в которых задаются логин и пароль устройства, и прописываем туда данные полученные из настроек прибора на сервисе LS Cloud .

arduino sketch
Рис. 7. Замена логина и пароля

На рис. 7 параметрам LOG и PAS присвоены значения по умолчанию. Меняем их на логин и пароль из настроек прибора (рис. 5).

Перед прошивкой программы проверим настройки параметров загрузки через меню «Инструменты» ArduinoIDE.

Подключение Arduino к компьютеру
Рис. 8. Выбираем плату «Arduino/Genuino Mega or Mega 2560»

 

Настройка COM-порта Arduino
Рис. 9. Указываем COM-порт, который будет использоваться для прошивки контроллера

Теперь можно прошить программу в контроллер. Нажимаем на кнопку   загрузка программы в Arduino    в ArduinoIDE и ждём окончания загрузки.

Готово! Теперь устройство будет передавать данные о температуре на сервер и выполнять полученные от него команды для реле. Можно зайти на сервис LS Cloud и убедиться, что устройство на связи.

После того, как мы убедились, что всё работает, можно отключить нашу систему от компьютера и поставить её на постоянное место работы, например в погреб или теплицу. Питать схему будем от источника (рис. 10), используя тот же USB-кабель, с помощью которого мы подключали его к компьютеру.

powerblock AC 220 5V 2A USBРис. 10. Источник питания 5В 2А

Диагностика неисправностей

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

Для этого необходимо выбрать пункт «Монитор порта» из меню «Инструменты».

Открываем отладочный порт Arduino
Рис. 11. Выбираем «Монитор порта»

Откроется окно, куда будут приходить диагностические сообщения от устройства (рис. 12). Важно указать скорость порта 57600 бод.

Монитор com-порта Arduino
Рис. 12. Диагностические сообщения от устройства

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

Заключение

На этом создание системы дистанционного контроля температуры закончено. Теперь, когда Вы понимаете всю технологию передачи данных от сервера к устройству и обратно, Вы можете добавить в систему другие датчики (движения, влажности, загазованности и т.д.) и исполнительные устройства. Конечно, для этого понадобится модернизировать интерфейс веб-приложения, чтобы дистанционно управлять этими параметрами. Поэтому на очереди у нас серия уроков, где мы расскажем, как устроено веб-приложение и как создать его самостоятельно. Читайте LAZY SMART и вступайте в нашу группу Вконтакте, чтобы не пропустить новую статью.


   5 комментариев


  1. Сергей
      21.06.2019

    Постоянно выдаёт следующее сообщение…
    Turn modem on
    Modem power on
    SIM800L not answer. Reload modem…
    RELOAD…
    Помогите пожалуйста???

    • elyu13
        25.01.2020

      Модем не отвечает,проблема с сим картой, проблема с устройством работы с сим картой или питание, проверить настройки и протестировать и т.д.

  2. Роман
      29.12.2019

    Тоже постоянно выдает

    Turn modem on
    Modem power on
    SIM800L not answer. Reload modem…
    RELOAD…

    Можете помочь?

    Спасибо!

  3. elyu13
      25.01.2020

    Кстати для модема sim800L нужно питание 4V, макс 4,5V.Иначе будет уходить в ошибку

  4. Никита
      23.04.2020

    Добрый день, столкнулся с проблемой что Sim900 не отвечает, сам модуль http://www.kosmodrom.com.ua/el.php?name=SIM900-SHIELD-FOR-ARDUINO .
    переподключал все контакты вручную через перемычки, может с этим проблема? поискав на форумах ничего толкового не находил
    с ардуино работаю впервые, кто бы мог помочь?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *