Mqtt mosquito установка windows

Содержание
  1. Установка MQTT брокера Mosquitto на Raspberry Pi и Orange Pi
  2. 1. Обновляем систему
  3. 2. Устновка брокера и клиента “mosquitto”
  4. 3. Останавливаем сервер для настройки
  5. 4. Настройка
  6. 5.Запускаем сервер MQTT
  7. 6. Проверяем работу MQTT брокера
  8. 7. Статус сервера MQTT
  9. 8. Настройка пароля для MQTT
  10. esp8266 — Сообщество разработчиков
  11. ESP8266 подключаемся к OpenWRT+Mosquitto+mqttwarn и передаем данные на ThingSpeak, EMAIL, Android, iOS, Twitter, CloudMQTT в 100 строчек кода в Arduino IDE
  12. Содержание
  13. Делаем отдельную WiFi сеть для IoT
  14. Настраиваем OpenWRT
  15. Настраиваем MQTT брокер mosquitto
  16. Настройка MQTT-Spy
  17. Пишем прошивку в Arduino IDE, подключаем ESP8266 к mosquitto
  18. Устанавливаем и настраиваем mqttwarn
  19. Передаем данные с ESP8266 на ThingSpeak
  20. Передаем данные c ESP8266 по EMAIL
  21. Передаем с ESP8266 на смартфон PUSH уведомления
  22. Управляем ESP8266 GPIO со смартфона
  23. ESP8266 публикует в Twitter состояние GPIO
  24. Поднимаем Dynamic DNS и делаем bridge с CloudMQTT
  25. Делаем отдельную WiFi сеть для IoT
  26. Настраиваем OpenWRT

Установка MQTT брокера Mosquitto на Raspberry Pi и Orange Pi

Для одноплатных компьютеров на Linux cуществует несколько MQTT брокеров. Одним из самых популярных является Mosquitto. Сегодня мы с вами разберемся, как поставить серверную и клиентскую, а также как проверить работу протокола MQTT. Данная инструкция отлично подходит для Raspberry Pi с установленной системой Raspbian и Orange Pi с системой Armbian.

1. Обновляем систему

Первым делом перед началом установки нам необходимо обновить систему. Подключаеся к нашему Pi по SSH и вводим:

sudo apt-get update
sudo apt-get upgrade

Подробнее посмотреть как подключаться к Pi по SSH и что потом можно делать вы можете в нашей статье.

2. Устновка брокера и клиента “mosquitto”

К сожалению, обычные библиотеки “apt-get” Raspberry Pi (Orange Pi) не содержат последнюю версию Mosquitto software. Поэтому перед установкой нам нужно будет обновить библиотеки. Если на сервере будет установлена не последняя версия брокера, то могут появляться ошибки в процессе работы.

Добавляем ключ и обновляем репозиторий. Вводим эти строчки по очереди. Иногда надо будет вводить пароль от вашего пользователя и нажимать Y для согласия с установкой.

sudo wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
sudo apt-key add mosquitto-repo.gpg.key
cd /etc/apt/sources.list.d/
sudo wget http://repo.mosquitto.org/debian/mosquitto-jessie.list
sudo apt-get update

Устанавливаем MQTT брокер (сервер):

sudo apt-get install mosquitto

Устанавливаем MQTT клиент:

sudo apt-get install mosquitto mosquitto-clients

После установки mosquitto сервер будет автоматически запускаться при загрузке системы.

3. Останавливаем сервер для настройки

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

sudo /etc/init.d/mosquitto stop

4. Настройка

Открываем файл настроек

sudo nano /etc/mosquitto/mosquitto.conf

и заменяем его содержимое на следующее:

# Place your local configuration in /etc/mosquitto/conf.d/
#
# A full description of the configuration file is at
# /usr/share/doc/mosquitto/examples/mosquitto.conf.example

persistence true
persistence_location /var/lib/mosquitto/

log_type error
log_type warning
log_type notice
log_type information

connection_messages true
log_timestamp true

Сохраняем, закрываем программу nano и выходим обратно в терминал (ctrl+o, Enter, ctrl+x).

5.Запускаем сервер MQTT

sudo /etc/init.d/mosquitto start

6. Проверяем работу MQTT брокера

Для проверки работы нашего MQTT брокера нам понадобится MQTT клиента. Это могут быть смартфоны с MQTT клиентами, которые подключены к той же Wi-Fi сети. Но мы воспользуемся более простым способом — подключимся к серверу 2 терминалами параллельно.

Нам необходимо, чтобы первый терминал подписался на топик hello/world, второй терминал отправил в этот топик сообщение и первый терминал его получил.

Итак, в первом терминале, в котором вы делали все настройки, подписываемся на канал hello/world:

mosquitto_sub -d -t hello/world

Открываем второе окно терминала, по SSH подключаемся к нашему серверу и отправляем сообщение в канал hello/world:

mosquitto_pub -d -t hello/world -m «Hello from Terminal window 2!»

Читайте также:  Как удалить папку через консоль linux

В результате в первом окне появится сообщение:

Hello from Terminal window 2!

Поздравляем! Ваш MQTT брокер работает!

7. Статус сервера MQTT

Проверить стаус вашего MQTT брокера вы всегда можете через терминал:

sudo /etc/init.d/mosquitto status

После этой команды в терминале будет показана подробная информация о состоянии вашего сервера.

8. Настройка пароля для MQTT

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

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

sudo mosquitto_passwd -c /etc/mosquitto/passwd

Вместо необходимо указать имя пользователя, которому будет разрешен доступ, например, mqtusr. После выполнения этой команды юзер mqtusr будет добавлен в систему. Дальше необходимо будет ввести ваш пароль от юзера pi, а потом 2 раза пароль для доступа юзера mqtusr к mqtt брокеру. В качестве второго пароля не воодите пароль от пользователи pi, лучше придумайте новый.

Теперь необходимо поменять настройки доступа к системе, для этого необходимо отредактировать файл /etc/mosquitto/conf.d/default.conf на вашем pi. Вы можете использовать для этого любой текстовый редактор, я предпочитаю nano, поэтому в консоли ввожу:

sudo nano /etc/mosquitto/conf.d/default.conf

В открывшейся файл добавляем 2 строчки:

allow_anonymous false
password_file /etc/mosquitto/passwd

Сохраняем и закрываем файл. Для этого в nano нажимаем ctrl+x, выбираем Y и нажимает Enter. Как вы видите в этом конфиге мы прописали в каком файле хранятся юзеры и пароли для подключения к нашему MQTT брокеру, а также мы запретили подключение к серверу всем пользователям без логина и пароля.

Теперь необходимо перезапустить MQTT сервер, для этого вводим в консоли:

sudo systemctl restart mosquitto

Настройка закончена — безопасность вашей системы теперь на высшем уровне!

esp8266 — Сообщество разработчиков

ESP8266 подключаемся к OpenWRT+Mosquitto+mqttwarn и передаем данные на ThingSpeak, EMAIL, Android, iOS, Twitter, CloudMQTT в 100 строчек кода в Arduino IDE

Вы уже поигрались с ESP8266 и теперь вам хочется большего? В этой статье я покажу основные приемы передачи данных куда только возможно. Построим надежную домашнюю WiFi сеть, в которой куча ESP8266 не будет мешать вашим высокоскоростным гаджетам. Мы соединим ESP8266 используя прошивку, сделанную в Arduino IDE, c MQTT брокером mosquitto, будем посылать электронную почту с ESP8266, передадим данные на ThingSpeak, CloudMQTT, будем получать PUSH уведомления на смартфон, ESP8266 будет дергать своими GPIO по команде со смартфона без HTTP серверов и проброски портов. ESP8266 будет отчитываться о действиях в собственном твиттер-аккаунте. Интересно? Если да то, как принято говорить на хабре, добро пожаловать под кат — там вас ждет громадное количество кликабельных скриншотов, полезных ссылок, видео и самый минимум линуксовых команд в терминале под OpenWRT, с которыми справятся даже люди абсолютно не знакомые с linux.

Содержание

Делаем отдельную WiFi сеть для IoT

Настраиваем OpenWRT

Настраиваем MQTT брокер mosquitto

Настройка MQTT-Spy

Пишем прошивку в Arduino IDE, подключаем ESP8266 к mosquitto

Устанавливаем и настраиваем mqttwarn

Передаем данные с ESP8266 на ThingSpeak

Передаем данные c ESP8266 по EMAIL

Передаем с ESP8266 на смартфон PUSH уведомления

Управляем ESP8266 GPIO со смартфона

ESP8266 публикует в Twitter состояние GPIO

Поднимаем Dynamic DNS и делаем bridge с CloudMQTT

Делаем отдельную WiFi сеть для IoT

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

Читайте также:  Transmission 64 bit mac os

Мы будем использовать не обычную WiFi точку доступа из ближайшего магазина и не народный MR3020, а для того, чтобы решение получилось максимально доступно для широкого круга умельцев, а не только для линуксоидов, которые не признают ничего, кроме командной строки в терминале, мы возьмем, практически за те же деньги, роутер от китайского стартапа Gl.iNET, созданный специально для DIY. Вот наша партнерская ссылка для покупки этого устройства на Aliexpress для тех, кто готов поддержать наш сайт одновременно экономя на покупках с нашим партнером Aliexpress.

Я не буду здесь описывать все преимущества этого роутера, распаковывать его из коробки у вас на глазах — для этого уже давно есть неплохие обзоры (вот на муське и еще один). Этот роутер подходит лучше других для нашей задачи потому, что имеет на борту 64Мб оперативки, а нагрузить мы его хотим по полной программе 🙂 Еще приятная новость в том, что на нем предустановлена прошивка OpenWRT, что уменьшает вероятность танцев с бубном для тех, кто не знаком с линуксом вообще.

Для тех, кто побаивается линуксов вообще и OpenWRT в частности, сообщаю, что мы будем работать c OpenWRT в русифицированном WEB интерфейсе. Сам я не обладаю большим опытом работы в linux и фанатом командной строки не являюсь, поэтому и вам постараюсь показать простые приемы, которые, возможно, и не блещут изяществом.

Русифицированный интерфейс OpenWRT

В принципе, все что будет описано в данной статье будет работать и на китайских роутерах за десять баксов, однако малый размер их оперативки существенно сужает возможность применения их в задачах, которые мы будем им ставить. Даже подключив свап раздел на USB флешке мы получим монстра, который постоянно качает в свап и обратно страницы памяти и наши приложения будут летать просто как черепахи. Вот скриншот по свободной памяти на моем роутере в обычном режиме работы:

Свободная и занятая память при работе всех нужных нам приложений

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

Обратите внимание, что у Gl.iNET есть две модели роутеров: 6408A и 6416A, которые имеют на борту 8 и 16 Мб флеш памяти соответственно. Сейчас разницы в цене у них практически нет, так что постарайтесь взять 16-ти мегабайтную модель. Если вы будете повторять все, что будет описано в данной статье, то все равно придется подключать USB флешку для раcширения overlay раздела, потому что размер всех установленных пакетов у меня уже перевалил за 50 Мбайт.

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

Однако в этом замечательном роутере есть и ложка дегтя. При отличной схемотехнике и продуманно скомпонованном железе, китайцы собрали наполовину китайскую OpenWRT, которая обращается к репозитарию пакетов на сайте производителя с битыми ссылками и устаревшими сборками. Кроме того, буквально пару недель назад, вышла новая версия OpenWRT — Chaos Calmer 15.05-rc1, которая включает последнюю версию 1.4.2 MQTT брокера mosquitto в которой исправлены баги именно в тех функциях, которые мы будем активно использовать.

Читайте также:  Все версии windows для загрузки с флешки

Поэтому, особо не парясь, через веб интерфейс будем заливать новую прошивку. Сначала определите модель (по объему флеш памяти) и скачайте с официального сайта OpenWRT либо openwrt-15.05-rc1-ar71xx-generic-gl-inet-6408A-v1-squashfs-sysupgrade.bin либо openwrt-15.05-rc1-ar71xx-generic-gl-inet-6416A-v1-squashfs-sysupgrade.bin и обновитесь. Процесс обновления прошивки я описывать не буду — это легко гуглится, да и эта статья об ESP8266, а не про OpenWRT. Для тех, кто вообще не знаком с OpenWRT, скажу, что нужно искать описание обновления прошивки с OpenWRT на OpenWRT через веб интерфейс самой OpenWRT без сохранения настроек. Во как.

Если что-то пойдет не так — не отчаивайтесь! Ищите в инете инструкцию по прошивке через консоль. Разбираете роутер, подключаете USB-TTL, питание берете внешнее, подключаетесь к роутеру витой парой, поднимаете у себя на компе tftp сервер. Процедура простая и быстрая, дольше будете tftp искать и настраивать. Кстати, тоже самое придется сделать, если в дальнейшем не примонтируете флешку для увеличения доступного места и наустанавливаете кучу пакетов, которые займут все свободное место — OpenWRT в таком случае может и не стартануть. Сам попался как-то раз на такую удочку 🙂

Есть одно неудобство — после установки чистая OpenWRT имеет IP адрес 192.168.1.1, который в нашем случае (установка второго домашнего WiFi роутера) уже обычно бывает занят старым роутером, который нам раздает интернет. Поэтому, для первоначальной настройки, придется физически отключиться от вашей локальной сети и подключиться проводом к порту LAN нового маршрутизатора.

Далее мы будем строить такую сеть:

ESP8266 IoT Home Network

Как видите, мы не будем вообще использовать функции маршрутизации IP пакетов, наш роутер будет работать в качестве Ethernet моста в той же подсети, что и остальные устройства. Это позволит нормально функционировать протоколу mDNS без пробрасывания UDP портов, отменит необходимость прописывать маршруты из локальной сети в сеть IoT, и при этом мы будем использовать DHCP сервер вашего основного маршрутизатора. Однако, самое главное, что мы получим в результате: две независимые WiFi сети. Это позволит нам переводить ESP8266 в режим 802.11b или 802.11g для снижения энергопотребления в случаях, когда не требуется высокая скорость подключения без ущерба в скорости для остальных WiFi устройств, требовательных к скорости подключения к интернет.

В итоге должно получиться что-то вроде этого (кстати, приколитесь в каком радиовакууме я живу)

Настраиваем OpenWRT

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

Перед отключением от локальной сети и интернета (напоминаю, что наш OpenWRT роутер будет иметь адрес 192.168.1.1), я рекомендую приготовить следующие программы:

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

Любой SFTP клиент, мне больше нравится Far Manager — мы будем редактировать файлы на OpenWRT не через редактор vi, который встроен в OpenWRT, но абсолютно неудобен для обычных людей. Хотя, наверное, линукс гуру со мной не согласятся.

Мне было проще подключиться к роутеру через USB-TTL и все настроить в терминале

Первым делом установим соединение с интернетом:

Оцените статью