ESP8266-PubSubClient-ограничение символов сообщений

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

https://customer.cloudmqtt.com/signup

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

image

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

image

Далее задаём любое имя брокера, и самое главное – выбираем тарифный план Cute Cat, это бесплатно и подходит для нашей цели

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

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

Ещё, я создал пользователя, которого буду использовать на клиентском устройстве. Переходим во вкладку USERS & ACL, пишем имя нового пользователя (я сделал User1) , пароль и жмём зелёную кнопку + ADD

Смотрите также:  Видеонаблюдение в офисе

Теперь самая важная часть – нужно назначить права пользователю, которого мы только что создали. Листаем ниже до вкладки ACLs , выбираем тип Topic, потом пользователя (в моём случае, User1) и в поле pattern пишем “#” (без кавычек), также отмечаем события Read Access/ Write Access, и снова жмём зелёную кнопку + ADD

Теперь перейдём к написанию программы на аппаратной части. Подготовим наш esp8266, и запустим среду Arduino IDE. Почти все примеры в сети используют библиотеку PubSubClient, но у меня как-раз таки не получилось завести эту либу вместе с cloudMqtt, поэтому я случайно обратился к примеру Adafruit, с которым у меня всё увенчалось успехом. Переходим в менеджер библиотек, вводим в поиске mqtt, и ищем библиотеку Adafruit MQTT Library. Устанавливаем

Ищем в примерах вкладку adafruit, а далее mqtt_esp8266, создаём новый проект на основе этого примера

Первым делом находим в тексте проекта и заполняем поля wi-fi, чтобы подключиться к активной сети интернета

 #define WLAN_SSID       "Keenetic-8322" #define WLAN_PASS       "*************" 

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

 #define AIO_SERVER      "tailor.cloudmqtt.com" #define AIO_SERVERPORT  18989                   // use 8883 for SSL #define AIO_USERNAME    "****xnmc" #define AIO_KEY         "****kHFzzJdw" 

После загрузки скетча, можно открыть терминал и убедиться в работоспособности отправки данных в MQTT. Надпись MQTT connected и успешная отправка в топик “…OK!”, означает что всё в порядке.

Смотрите также:  3д куб

Данные, отправляемые примером (а это постоянный инкремент переменной “х”), это не так интересно, попробуем отправить температуру, а потом отобразить её на телефоне. Как подключить датчик DS18B20 к ESP8266 мы подробно рассматривали в статье, с этим сложностей возникнуть не должно. Нам даже не понадобится преобразовывать значение температуры в текстовую, поэтому функцию сбора температуры можно сократить до:

 void getTemperature() {   DS18B20.requestTemperatures();   tempC = DS18B20.getTempCByIndex(0);   delay(100); } 

Теперь посмотрим, какая команда отвечает за публикацию топика. Изначальное значение photocell я сменил на temperature, ведь мы хотим отправить значение с термометра. /feeds/temperature – это имя топика, на которого можно будет потом подписаться с другого устройства

 Adafruit_MQTT_Publish temperature = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/temperature"); 

Но это ещё не всё, ниже есть ещё один блок, который отвечает за публикацию. Сначала мы видим вывод в терминал, там я тоже поменял строки на температуру, но самое главное поменять переменную здесь, в паблишере – > (! temperature.publish(tempC))

   // Now we can publish stuff!   Serial.print(F("nSending temperature = "));   getTemperature();                            // Считываем температуру перед отправкой на сервер   Serial.print(tempC);   Serial.print("...");   if (! temperature.publish(tempC))            // Здесь указываем переменную, которую хотим отправить   {     Serial.println(F("Failed"));   } else {     Serial.println(F("OK!"));   } 

Прошиваем ESP. и смотрим терминал – видим, что теперь отправляются значения температуры, и они корректно считываются. Осталось самое главное – проверить, приходят ли они на сервер MQTT

Смотрите также:  Программатор usb asp

Теперь переходим на онлайн сервисе во вкладку WEBSOCKET UI, и смотрим наши приходящие сообщения. Если вы видите их в графе, Received messages, значит отправка с ESP8266 происходит корректно

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

2016-04-25 в 8:00, , рубрики: android, arduino, diy или сделай сам, esp8266, mqtt, smart home, Программирование, умный дом

Всем привет! В этой статье будет подробно рассказано и показано как буквально за 20 минут свободного времени настроить дистанционное управление модулем esp8266 с помощью приложения на Android по протоколу MQTT.

Идея дистанционного управления и мониторинга всегда будоражила умы увлеченных в электронике и программировании людей. Ведь возможность в любой момент времени получить или отправить нужные данные, не зависимо от своего местоположения, дает широкие возможности. В своих прошлых статьях ( Статья 1 и Статья 2) я пытался рассмотреть несколько доступных и относительно простых вариантах реализации дистанционного управления микроконтроллерами через интернет. Однако время и весь мир не стоит на месте – прогресс продолжает свое неумолимое движение вперед. За это небольшое время приобрел широкую популярность модуль esp8266 который благодаря низкой цене и встроенному wi-fi стал одним из основных составляющих «Умного дома». На данный момент MQTT является передовым и наиболее популярным протоколом передачи данных между отдельными устройствами в рамках систем «Умного дома». Он обладает рядом преимуществ по отношению к другим протоколам: — низкое потребление трафика; — соединение между клиентом и сервером всегда открыто; — не нагружает интернет канал; — отсутствие задержек в передаче данных; — удобная система подписок на топики; Всё это дает возможность мониторинга и управления в режиме реального времени. Однако MQTT требует наличие своего собственного сервера, который выполняет роль посредника между клиентами сети. Тут есть два выхода либо создавать свой сервер либо использовать сторонние сервисы.

Описываемая система управления состоит из двух основных частей: сервера MQTT (он как правило один) и клиентов, которых может быть довольно много. В нашем случае в качестве клиентов будут выступать приложение на Android и сам модуль esp8266.

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

MQTT сервер.

В нашем случае мы будем использовать крайне удобный сервис www.cloudmqtt.com у которого есть бесплатный тарифный план (Cute Cat), который полностью покроет потребности для реализации небольшой собственной системы «умного дома». Пройдём регистрацию на сайте и получаем необходимые данные для доступа к серверу. При настройке клиентов необходимо использовать обычный Порт ( без SSL и TLS).

Приложение на Android.

Наше приложение будет выступать в качестве пульта управления для микроконтроллера, а так же будет принимать и отображать всю получаемую информацию от esp8266.

Приложение называется IoT MQTT Dashboard и представляет собой готовый mqtt клиент с небольшим количеством очень удобных виджетов. Более подробно о работе с приложением можно посмотреть на видео.

Esp8266.

Ниже приведен скетч с подробными комментариями.

Скетч Esp8266_mqtt.ino // Светодиод подлкючен к 5 пину // Датчик температуры ds18b20 к 2 пину #include #include #include #include #define ONE_WIRE_BUS 2 OneWire oneWire(ONE_WIRE_BUS); DallasTemperature sensors(&oneWire); const char *ssid = "AIRPORT"; // Имя вайфай точки доступа const char *pass = "PASSWORD"; // Пароль от точки доступа const char *mqtt_server = "server"; // Имя сервера MQTT const int mqtt_port = 11140; // Порт для подключения к серверу MQTT const char *mqtt_user = "Login"; // Логи от сервер const char *mqtt_pass = "Pass"; // Пароль от сервера #define BUFFER_SIZE 100 bool LedState = false; int tm=300; float temp=0; // Функция получения данных от сервера void callback(const MQTT::Publish& pub) { Serial.print(pub.topic()); // выводим в сериал порт название топика Serial.print(" => "); Serial.print(pub.payload_string()); // выводим в сериал порт значение полученных данных String payload = pub.payload_string(); if(String(pub.topic()) == "test/led") // проверяем из нужного ли нам топика пришли данные { int stled = payload.toInt(); // преобразуем полученные данные в тип integer digitalWrite(5,stled); // включаем или выключаем светодиод в зависимоти от полученных значений данных } } WiFiClient wclient; PubSubClient client(wclient, mqtt_server, mqtt_port); void setup() { sensors.begin(); Serial.begin(115200); delay(10); Serial.println(); Serial.println(); pinMode(5, OUTPUT); } void loop() { // подключаемся к wi-fi if (WiFi.status() != WL_CONNECTED) { Serial.print("Connecting to "); Serial.print(ssid); Serial.println("..."); WiFi.begin(ssid, pass); if (WiFi.waitForConnectResult() != WL_CONNECTED) return; Serial.println("WiFi connected"); } // подключаемся к MQTT серверу if (WiFi.status() == WL_CONNECTED) { if (!client.connected()) { Serial.println("Connecting to MQTT server"); if (client.connect(MQTT::Connect("arduinoClient2") .set_auth(mqtt_user, mqtt_pass))) { Serial.println("Connected to MQTT server"); client.set_callback(callback); client.subscribe("test/led"); // подписывааемся по топик с данными для светодиода } else { Serial.println("Could not connect to MQTT server"); } } if (client.connected()){ client.loop(); TempSend(); } } } // конец основного цикла // Функция отправки показаний с термодатчика void TempSend(){ if (tm==0) { sensors.requestTemperatures(); // от датчика получаем значение температуры float temp = sensors.getTempCByIndex(0); client.publish("test/temp",String(temp)); // отправляем в топик для термодатчика значение температуры Serial.println(temp); tm = 300; // пауза меду отправками значений температуры коло 3 секунд } tm--; delay(10); }

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

Видео с демонстрацией работы системы управления

Подробная видеоинструкция по настройке системы

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

АРХИВ

MQTT сервер — www.cloudmqtt.com

Ссылка на приложение IoT MQTT Dashboard — play.google.com/store/apps/details?id=com.thn.iotmqttdashboard&hl=ru

Всем спасибо за внимание.

Автор: ivizil

Источник

—>

Эта библиотека предоставляет клиенту делать простые публикации/подписки сообщений с сервера, который поддерживает протоколу mqtt

Для получения более подробной информации о протоколу mqtt, посетите mqtt.org.

Скачать

Последнюю версию библиотеки можно скачать с сайта github.

Документация

Библиотека содержит большое количество примеров эскизов. См. File > Examples > PubSubClient в приложение Arduino.

Полную документацию по API

Совместимое Оборудование

Библиотека использует Ардуино интерфейсом Ethernet для взаимодействия с » data-type=»trSpan» data-value=» The library uses the Arduino Ethernet Client api for interacting with the «>Библиотека использует Ардуино интерфейсом Ethernet для взаимодействия с базовое сетевое оборудование. » data-type=»trSpan» data-value=»This means it Just Works with a growing number of «>Это означает, что он просто работает с растущим числом доски и щиты, в том числе:

  • Локальных Сетей Arduino
  • Платы Arduino Ethernet Щит
  • Arduino Юн – используйте включенными YunClient в место EthernetClient » data-type=»trSpan» data-value=», and «>, и будьте уверены, чтобы сделать Bridge.begin() первый
  • » data-type=»trSpan» data-value=»Arduino WiFi Shield — if you want to send packets greater than 90 bytes with this shield, «>Для Arduino WiFi щит — если вы хотите отправлять пакеты большего, чем 90 байт с этим щитом, включить MQTT_MAX_TRANSFER_SIZE опцию в PubSubClient.h.
  • Конвертер WiFly щит – при использовании этой библиотеки
  • Корпорация Intel Галилео/Эдисон
  • С esp8266

Библиотеки в настоящее время не может быть использовано с оборудованием на основе микросхемы ENC28J60 – » data-type=»trSpan» data-value=» The library cannot currently be used with hardware based on the ENC28J60 chip – «>Библиотеки в настоящее время не может быть использовано с оборудованием на основе микросхемы ENC28J60 – например, Nanode или Nuelectronics щит Ethernet. » data-type=»trSpan» data-value=»For those, there is an «>Для тех, есть альтернативные библиотекидоступен.

Лицензия

Эта библиотека распространяется под лицензией mit.

История Изменения

Полная история изменений доступна на Гитхабе.

2.0
  • Добавить (по умолчанию) mqtt в 3.1.1 поддержка
  • Исправить PROGMEM обработки для Intel Галилео/с esp8266
  • Добавить перегруженных конструкторов для удобства
  • Добавить змеевидных сеттеры для сервера/обратного вызова/клиента/трансляция
  • Добавить государственная функция, возвращающая код возврата connack
1.9
  • Не разделять mqtt в пакеты по несколько вызовов_client->write()
  • API для изменения: все конструкторы теперь требуют экземпляр клиента, чтобы быть переданный.
  • Пример Исправлена, чтобы соответствовать 1.8 изменения API — dpslwk
  • Добавлена поддержка логин/пароль — WilHall
  • Добавлено publish_P — публикует сообщения из PROGMEM — jobytaffey
1.8
  • Интервал проверки активности настраивается вPubSubClient.h
  • Максимальный размер пакета настраивается вPubSubClient.h
  • API для изменения: вернуться boolean скорее, чем int из различных функций
  • API в изменения: параметра длины в сообщение обратного вызова изменяется от int доunsigned int
  • Различные внутренние аккуратные окна по типам
  • Возможность указать адрес сервера с помощью DNS-имени
1.7
  • Улучшена работа функции keepalive
  • Обновленный к Arduino-1.0 API-интерфейс
1.6
  • Добавлена возможность опубликовать сохраненные сообщения
1.5
  • Добавлен конструктор по умолчанию
  • Исправлена ошибка компиляции при использовании с Arduino-0021 или поздно
1.4
  • Фиксированная связь потеряна управляемость
1.3
  • Исправлена ошибка чтения пакета
1.2
  • Исправлена ошибка компиляции при использовании с Arduino-0016 или поздно
1.1
  • Уменьшенный Размер библиотеки
  • Добавлена поддержка для messagesClarified лицензирования – см. LICENSE.txt
1.0
  • Поддерживается только качеством обслуживания (QoS) 0 сообщений
  • Максимальный размер сообщения, включая Заголовок, составляет 128 байт
  • Интервал проверки активности составляет 30 секунд
  • Поддержки не будет Сообщений

Поработав с Blynk захотелось, чего-то более универсального. Blynk отличная штука, но когда начинаешь думать не что я могу сделать, а как это сделать на Blynk — приходит понимание, что нужно изучать что-то более гибкое и возможно — перспективнее. Основные задачи на данный момент — получать информацию с arduino (сенсоров), собирать, анализировать и управлять периферийными устройствами как локально, так и с мобильного устройства (приложения) или web-интерфейса. На одной из последних посещенных конференций по IoT в очередной раз упомянули об MQTT — протоколе обмена данными ориентированном в первую очередь на IoT. (MQTT (Message Queue Telemetry Transport) — упрощённый сетевой протокол, работающий поверх TCP/IP. Используется для обмена сообщения между устройствами по принципу издатель-подписчик). Для обработки полученных данных и управления хотелось использовать что-то от «больших» разработчиков. Решения в данной области предлагают: Amazon с AWS IoT — ещё не добрался до изучения но выглядит интересно Google с Google Cloud Platform — обещает бесплатный триал для изучения, но сразу просит реквизиты банковской карточки, чем и отбил охоту изучать. Microsoft с Azure Iot Suite — что-то вообще не пошло, но нужно будет разобраться… IBM с Bluemix — с него пожалуй и начну, так как попалась очень хорошая статья. И как я понял IBM является основателем MQTT. А если ещё немного поискть, можно найти много интересных примеров для понимания работы MQTT в сфере IoT, особый интерес вызвала ещё эта статья. Процесс изучения начну c «Создание датчика температуры для облачной среды с помощью Arduino Uno и IBM IoT Foundation» Акаунт уже создан Для отладки на локальном уровне, необходимо установить локальный брокер, ставим Mosquitto хотя странно, так как статья от инженера IBM и у них есть свой брокер, но так как пока учусь — делаю все согласно статье. В Ubuntu дистрибутив присутствует в центре программного обеспечения, поэтому с установкой вопросов не возникло Немножко мануала по Mosquitto И запускаем с колючем -v, но что-то пошло не так и стандартный порт 1883 оказался занят По команде lsof -c mosquitto обнаружил, что mosquitto уже запущен, но так как мне нужно запустить его в режиме логирования, убиваем процесс и запускаем снова с ключом -v Теперь брокер Mosquitto ждет поступления команд Для правильной настройки и использования всего потенциала, очень рекомендую читать мануалы http://mosquitto.org/documentation/ особенно это касается файла конфигурации. Также на GitHub есть отличный MQTT Wiki. С брокером закончили и он будет постоянно запущен на домашнем Raspberry Pi3. А теперь самое интересное — заставить arduino отправлять ему информацию. Для этого необходимо скачать и установить библиотеку MQTT для Arduino (на момент написания v2.6). После установки и запуска Arduino IDE можно обнаружить примеры и для разбора возьму mqtt_basic: *************************************************************************  ************************************************************** Но почему-то при попытке скомпилировать получил ошибку: Перепробовав много разных вариантов (на которые и не стоило тратить время), причину ошибки обнаружил и заключалась она в банально неправильном размещении файла библиотеки в архиве разработчика, с папки src файлы PubSubClient.h и PubSubClient.cpp необходимо пеместить в корневую папку библиотеки. Заливаем скетч на Ардуину и видим, что брокер Mosquitto получил новое соединение, а в мониторинге порта получаем сообщения отправленные с приложения на мобильном телефоне (MQTT Dashboard). Следующий шаг — вешаем на ардуину датчик DHT11 и будем с него отправлять температуру и влажность на соответствующие topic. За пример возьму скетч предложенный в статье, с которой все и начиналось, но немного подкорректирую для локального использования: ***********************************************************

#include  #include  #include  #include   byte mac[]    = {0xDE, 0xED, 0xBA, 0xFE, 0xFE, 0xED }; char macstr[] = "deedbafefeed"; byte localserver[] = {192, 168, 0, 3 }; byte ip[] = {192, 168, 0, 77 };  String clientName = String("arduino:") + macstr; String topicName = String("temp");  dht11 DHT11; float tempF = 0.0; float tempC = 0.0; float humidity = 0.0; EthernetClient ethClient; PubSubClient client(localserver, 1883, 0, ethClient);  void setup() {   Ethernet.begin(mac, ip);   Serial.begin(9600);   DHT11.attach(3); }  void loop() {   char clientStr[34];   clientName.toCharArray(clientStr,34);   char topicStr[26];   topicName.toCharArray(topicStr,26);   getData();   if (!client.connected()) {     Serial.print("Trying to connect to: ");     Serial.println(clientStr);     client.connect(clientStr);   }   if (client.connected() ) {     String json = buildJson();     char jsonStr[200];     json.toCharArray(jsonStr,200);     boolean pubresult = client.publish(topicStr,jsonStr);     Serial.print("attempt to send ");     Serial.println(jsonStr);     Serial.print("to ");     Serial.println(topicStr);     if (pubresult)       Serial.println("successfully sent");     else       Serial.println("unsuccessfully sent");   }   delay(60000); }  String buildJson() {   String data = "";   data+=(int)tempC;   return data; }  void getData() {   int chk = DHT11.read();   switch (chk)   {   case 0:      Serial.println("Read OK");      humidity = (float)DHT11.humidity;     tempF = DHT11.fahrenheit();     tempC = DHT11.temperature;     break;   case -1:      Serial.println("Checksum error");      break;   case -2:      Serial.println("Time out error");      break;   default:      Serial.println("Unknown error");      break;   } } **********************************************************

В результате в мобильно приложение MQTT Dashboard получил график динамики температуры. Для получения актуальной информации, а также управления данный метод уже более чем удобен, но для журналирования полученной информации и её дальнейшего анализа с управлением по результатам брокера и клиента будет мало. Для этого нужно выходить в «облако». Чем я и займусь в следующей записи. А пока понаблюдаю как работает брокер и что выводит в логи

Nintendo Switch в 2021-ом году — правда, дефекты, игры!

Я пожалуй впервые столкнулся с чисто японским продуктом и мое представление о японцах как о честных, адекватных, стремящихся к идеалу во всем людях безвозвратно утрачено. От куда оно вообще это представление появилось, из советских времен может быть. Нет, может там у себя, в Японии, сами с собой они такие, но вот с остальным миром…(и тут даже не про экологию). Ладно… всё по порядку объясняю — далее слово японцы заменено на Nintendo. Читать дальше…

Обновляем домашнее файлохранилище с ASRock J3355M

Пришло время менять, неизвестно сколько уже проработавщею, с неизвестно сколькими уже перепаянными беременными конденсаторами мать GA-G31MF-S2 на ASRock J3355M. image

Было: — Мать: Gigabyte GA-G31MF-S2 (на чипе 2007 года Intel® G31 Express Chipset) — Процессор: Intel® Core™2 Duo E8400 (2008 года) — Память: 4Gb DDR2

Стало: — Мать SOC: ASRock J3355M Процессор: Intel® Celeron® J3355 (2016 года) — Память: 8Gb DDR3 Читать дальше…

Почти работающий ИБП щит для Raspberry Pi — UPS HAT V2 [не покупайте]

Мне хватило двух шильдов и двух убитых дисков чтобы понять что все что делает Suptronics в плане бесперебойного питания для Raspberry Pi это адово гавнише! Два шильда x705 и x725 постоянно находятся в статусе заряжаемся, через сутки отрубают питание и разряжаю батарею в ноль — так они убили мне два диска на USB. Почему против Suptronics еще не поднялся вселенский войн не понятно, на странице продуктов в их wiki комментарий один «ваша штука не работает» для x705, для x725, Читать дальше…

Древние технологии — eMule: Установка p2p клиента aMule на Raspberry Pi!

Во времена мощной промокомпании Torrent’ов, когда про них рассказывали из каждого утюга, емульщики стояли в стороне и ржали — на кой где-то регистрироваться если трушный p2p работает без всего этого в натуре, то есть априори! Сейчас конечно с развитием технологий, финансовая необходимость(особенно в России) в p2p способах передачи информации отпала, так что eMule интересен только it-археологам и маркетологам которые его вставляют для галочки в свои продукты (вот как Synology).

image Читать дальше…

Khadas Edge-V MAX в качестве Ubuntu десктопа!

Всё, последний обзор, последняя попытка найти применение для Khadas Edge MAX от самого пафосного, самого дорого, самого смешного китайского производителя! Ребята и вправду смешные — заявляют что это самый мощный минипк для Android TV приставки, при этом не стратифицировали свое устройство, значит ни какой Netflix и прочее работать не будет! Продают официальный корпус для Khadas Edge MAX, но не предупреждают что его надо будет допилить! Всякие доп опции — можно было из них что-то сделать но вот батарея работает только в Android, а на фиг она в таком Android’e — кулер, хорош только если не орет громче телевизора — но это не про официальный кулер от Khadas 🙂 Но это я уже подробно описывал тут Обзор Khadas Edge-V MAX в качестве TV приставки для Netflix! и тут Khadas Edge-V MAX — великий и ужасный, обзор!!

image

Попытаюсь использовать Khadas Edge MAX в качестве десктопа. С переходником HDMI > VGA он не работает, так что нужен монитор с колонками или телевизор с HDMI! Читать дальше…

Автоматическое включение веньтилятров ПК по температуре на Arduino!

Чуть ранее я организовал программный способ включения/выключения вентилятор через реле на Arduino при входе в ОС. Он работает на Ubuntu(выключались), он работал на Windows через PowerShell(включались), но сейчас уже не хочет работать… так за чем нам вообще привязываться к ОС если можно на Arduino повесить датчик температуру!

image

Arduino будет само отслеживать температуру и включать дополнительные вентиляторs. По serial port можно будет включать/выключать вентиляторы принудительно, включать/выключать автоматический режим, смотреть температуры. Читать дальше…

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
А как считаете Вы?
Напишите в комментариях, что вы думаете – согласны
ли со статьей или есть что добавить?
Добавить комментарий