Перейти к публикации
iT4iT.CLUB

Рекомендованные сообщения

57 минут назад, wildray сказал:

Еще раз уточню, я понимаю для скетча и файлов - необходима основа "прошивка". При компилировании прошивки на том же сервере онлайн - выбираются модуля, которые будут использоваться. Ход действий правильный у меня - прошиваю флешером bin который вы мне последним кинули, потом через ide открываю файл ino (проверяю и заливаю скеч), потом нажимаю "скеч дата аплаодер", и он догружает файлы? Правильно?!?

Вы немного путаетесь в понятиях.В программировании первичен исходный код = скетч, как его называют в среде ардуино.  По исходному коду "бежит" компилятор и делает из него исполняемый код процессора (контроллера),она же - прошивка, она же - программа. И вот этот исполняемый код = прошивка мы загружаем в МК, а МК работает по этой прошивке = программе.

Как то так.

Изменено пользователем EVG
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@wildray последовательность Ваших действий для получения работоспособной метеостанции должна быть следующей:

... перенесено в первый пост темы

  • Like 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

перевернул датчик si7021 из вертикального положения в горизонтальное, чипом вниз. Все равно сегодня 101% относительной влажности был зафиксирован. Пока менял положение - почистил от пыли, пленка белая не повреждена, не отклеена. Странно. Есть еще HTU21Dно так как он без пленочки, то решил его на улицу не выставлять, так как воздух за окном достаточно пыльный.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@Alex_DIY Возможно стоит попробовать другую библиотеку, например, https://github.com/adafruit/Adafruit_Si7021

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

LowPowerLab

return ((125 * humraw) >> 16) - 6;

Adafruit

humidity *= 125;
humidity /= 65536;
humidity -= 6;

return humidity;

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

Порт ADC микроконтроллера оставил переведенным в режиме VDD3P3. Связь с делителем не разрывал, но кинул перемычку с A0 (ADC) на EN (CH_PD или Chip Enabled), в принципе можно на вход питания микроконтроллера VDD 3.3V. Программа без корректирующего коэффициента.

IMG_0631.JPGIMG_0633.JPG

Подключение

Скрытый текст

IMG_0634.JPG

Стоит подумать над этим с делать окончательные выводы по поводу ADC.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Стоило повнимательнее ознакомиться с datasheet. Оказывается это допустимое производителем поведение датчика. То есть пишут(последний абзац 5.1.1), из-за флуктуаций возможена выдача относительной влажности чуть менее 0 или чуть более 100 процентов. Советуют программно ограничить диапазон, чтобы не шокировать, то есть обрезать величины лишнее самим в программе. Потом обрежу , пока просто понаблюдаю насколько "слегка" может выходить из диапазона. Пока максимум 102% регистрировал. 

Так что, кто столкнётся с подобным поведением датчика, то это не является неисправностью датчика. 

Screenshot_2017-12-05-12-58-44-383_com.google.android.apps.docs.png

 

Ну что ж, через порт ADC вы получаете довольно точную величину напряжения. Кстати, ADC наверное критичен максимальному уровню напряжения., то есть выше 3.6 В на него не стоит подавать. Esp не толерантен к 5 В.

Далее, все эти wemos и иже с ними содержат в себе и usb-ttl и DC-DC (5 В - >3.3 В) с 5 В, получаемых по USB. Мониторинг выхода DC-DC convertor? Зачем?) у Вас это число вряд ли когда то будет изменяться. Ну так, ради того, чтобы было разве что. Мониторинг напряжения имеет смысл имеет при автономном питании, чтобы оповестить о замене источника питания, перед тем как он совсем перестанет работать. 

 

Изменено пользователем Alex_DIY

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
12 часа назад, Kitsum сказал:

@LogOFF доброе время суток.

Зачет! Настолько досконально описана логика работы подвала в гараже, автор, наверно с этим знаком не по наслышке !!!!

Логика отличная. Очень понравилось - "если что-то не так" => "то рубим питание". Очень правильно.

Но раз уже так сказать - законченное ответвление проекта - может на веб странице продублировать все 4 показания но по датчику инт, и кружочек например поменять на зеленый когда нагрузка включена?!? - будет законченное решение. План такой, пришел в гараж, (например чтоб мне влезть в подвал - нужно выгонять машину) подключился к есп - посмотрел, ага температура там "нормально" температура здесь - тоже нормально. Что-то выключено или включено.

Конечно по себе, это мнение пользователя подвалом - мне понравилась идея, чтоб между сенсором внизу и сенсором вверху, не было проводов. Расстояние для wifi, 30 см бетона и земли думаю не помеха.

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

То есть  - бытовые условия:

 (конечно, к гадалке не ходи, далее будет в проекте преобладать коммерческий контекст - ну и правильно, ПО тоже должно оплачиваться.)

1- Датчик на улице - поставили и запитали;

2- Датчик в комнате - хотелось бы конечно 2-е комнаты;

3- что-то что показывает погоду (телевизор, смарт, планшет который всегда включен, другая красивая ответка с облаками..... )

- все. Метеостанция готова.  Развить и прикрутить еще в вебе часы, дату (NTP ж есть), почему бы это не показать, + малипусинькую "рассвет-закат" "фаза луны".....

Все это только мнение бытового потребителя "метеостанции" и -"ий".

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@wildray доброе время суток.

20 часов назад, wildray сказал:

может на веб странице продублировать все 4 показания но по датчику инт, и кружочек например поменять на зеленый когда нагрузка включена?!?

Вопрос дизайна, пожалуй, один из самых острых. Над этим стоит подумать, ведь у всех свое представление о нем, а угодить каждому невозможно. Но реализовать Ваше пожелание совсем не сложно. Имеется структура sensor описывающая переменные в которых хранятся данные с датчиков, в том числе и логи. Объявите новые переменные для внутреннего датчика BME280. Далее заполняйте их в функции readSensors, аналогично тому, как это делается с внешним датчиком. Для передачи этих данных в web сервер посмотрите на функцию web_api_sensors. В ней необходимо добавить ваши данные в json объект sensor. Этого будет достаточно, но если потребуется ведение лога, то потребуется провести аналогичные операции с функциями sensorLogWrite и web_api_sensors_log.

20 часов назад, wildray сказал:

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

Скорее всего, в будущем, будет отдельный модуль подключаемый по I2C и позволяющий использовать различные автономные беспроводные датчики на базе NRF. Я думаю, что не стоит нагружать WiFi лишним трафиком т.к мы по прежнему имеем ограничение в количестве TCP соединений. Возможно стоит посмотреть в сторону младшего брата контроллера - ESP32.

20 часов назад, wildray сказал:

Развить и прикрутить еще в вебе часы, дату (NTP ж есть), почему бы это не показать

По большому счету все устройства которыми мы пользуемся для подключения к метеостанции уже имеют на борту часы. А наличие NTP клиента подразумевает постоянное подключение к сети в которой имеется NTP сервер или выход в интернет. Хочу заметить, что это маловероятно при использовании метеостанции в гараже. Но если Вы заметили, то суточный график с датчиков выстраивается с отметками даты и времени, и при этом на ESP8266 нет часов. Тут как раз берется за основу время на устройстве с которого Вы просматриваете этот график, это легко проверить, просто переведя часы на этом устройстве. Даже в самой удаленной точке планеты, при условии доступа к GSM связи, Вы уже получаете точное время.

20 часов назад, wildray сказал:

"рассвет-закат" "фаза луны"

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

to  Kitsum

заказывать NRF? :D

Цитата

Скорее всего, в будущем, будет отдельный модуль подключаемый по I2C и позволяющий использовать различные автономные беспроводные датчики на базе NRF. Я думаю, что не стоит нагружать WiFi лишним трафиком т.к мы по прежнему имеем ограничение в количестве TCP соединений. Возможно стоит посмотреть в сторону младшего брата контроллера - ESP32.

последнее наверно - "старшего брата"?!?

"дизайн" - это дааа, тут автор, то бишь ВЫ - как хочет так и делает (замечу, судя по уже готовому решению, полет фантазии у Вас более чем нормальный!!!)

по поводу последнего - это мое мнение, оно не навязывается Вам, не нужно его удовлетворять и подстраивать что-то под меня, и не нужно ему поддаваться. :ph34r: То что уже есть и проделано, уже можно реализовать и использовать, так сказать "релиз кандидат!". Я смотрел на первой странице даже идеи измерителя осадков пробегали (мне особенно понравилась реализация с использованием герконов).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@wildray под младшим братом я подразумевал возраст :) С NRF поиграемся немного позже. Сейчас необходимо завершить другие идеи с счетчиками воды, MQTT сервером (mqtt.it4it.club) и исправить косяки в метеостанции. Также хочется попробовать ESP32, но это тоже будет позже. Возможно кто-то поделится своими наработками.

IMG_0655.JPG

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 11.12.2017 в 14:20, wildray сказал:

 (конечно, к гадалке не ходи, далее будет в проекте преобладать коммерческий контекст - ну и правильно, ПО тоже должно оплачиваться.)

что-то мне подсказывает (могу ошибаться) что лицензия программного обеспечения Arduino, Creative Commons Attribution ShareAlike 3.0 не подразумевает (запрещает) коммерческое использование... ))

Изменено пользователем EndWar

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@Alex_DIY , а в каком таки разделе форума находиться данный проект "Метеостанция на ESP8266 от it4it.club"..?! :D

Изменено пользователем EndWar

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@Alex_DIY , рофлишь..?! Лицензия на использование среды разработки Arduini IDE... на этом закончим флуд - спор ради спора, мне это не интересно... 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@EndWar таки, Arduino IDE и Creative Commons Attribution ShareAlike 3.0 имеют столько же общего, как Метеостанция на ESP и раздел форума )))

The text of the Arduino getting started guide is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. 

Текст инструкции идет под лицензией.

Таки интересно, что говорит  Homes-smart , используя GNU библиотеки, не раскрывая своих исходных кодов и продавая свои прошивки за деньги?:)) Которые Вы у него приобретали :P

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@Alex_DIY , я не понимаю, что вы хотите мне доказать..?! Лицензия СС это прежде всего договор со своей совестью, только и всего... Как вы можете обвинять людей (Homes-smart) не зная точно какие они имеют лицензии. 

3 часа назад, Alex_DIY сказал:

Текст инструкции идет под лицензией.

"под лицензией идёт", как я понимаю, всё программное обеспечение и среда разработки Ardino IDE

Это моё последнее сообщение тут на тему ©

Изменено пользователем EndWar

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@EVG , слегка изменили метеостанцию, с @mag21 , для DS18B20 + отправка данных на thingspeak.com. Библиотека DallasTemperature в нашем коде даёт возможность использовать два датчика на одной шине OneWire... ESP8266_WS_iT4iT.CLUB_DS18b20+Thingspeak.com.

Жалобы, предложения, пожелания, конфеты, пряники, всё беру... ))

Изменено пользователем EndWar

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
16 часов назад, EndWar сказал:

слегка изменили метеостанцию, с @mag21 , для DS18B20 + отправка данных на thingspeak.com. Библиотека DallasTemperature в нашем коде даёт возможность использовать два датчика на одной шине OneWire... ESP8266_WS_iT4iT.CLUB_DS18b20+Thingspeak.com.

Жалобы, предложения, пожелания, конфеты, пряники, всё беру... ))

Я немного притих ), жду работающие датчики от китайца.
Подробнее отвечу по-позже.

ps: тоже добавлял поддержку  DS18B20 в этот проект , но схематично - вывод в консоль делал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@EVG , ну @mag21  говорит, что всё работает, у меня слишком другое железо чтобы проверить... ))

Изменено пользователем EndWar

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 11.12.2017 в 02:40, Kitsum сказал:

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

Еще раз, огромное спасибо!

Изменено пользователем LogOFF
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Чёт я не понял, у меня одного сегодня показания в веб по нулям стали.?!

Изменено пользователем EndWar
что это было..?!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
13 минуты назад, EndWar сказал:

Чёт я не понял, у меня одного сегодня показания в веб по нулям стали.?!

У меня всё норм. Вероятно ну одного....)

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

что значит в вэб?  загадочные фразы.

В коде прошивки нет никаких таймбомб, уж я ее изучил от и до. Так что это проблемы, либо сторонних сервисов на которые вы замкнули работу прошивки - таких как narodmon (с ним проблем не было у меня, работал как обычно сегодня), thingspeak, либо софтовый/хардварный сбой Вашего устройства.

  • Haha 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@alexd6969 , спасибо. Обновление win 10, вероятно... только на это могу грешить... где то в три часа дня появилось уведомление о том, что скачано обновление, и до восьми вечера  показания от модуля приходили, но не обрабатывались должным образом и не выводились только лишь на индикаторы в веб (от англ. web interface - веб-интерфейс рус., для не понятливых)

Скрытый текст

5a3c1b90395f2_2017-12-2123-27-44-GoogleChrome(2).jpg.2bb94c06fa4a92872be24552e4af0e85.jpg

при этом все программные и аппаратные (софтовый/хардварный) средства микроконтроллера работали в штатном режиме т.е. с заданным интервалом читались показания датчиков, отправлялись на все ресурсы, включая MQTT (Mosquitto Broker), выводились на OLED монитор, и вообще никаких сбоев, зависаний самого контроллера не было мной обнаружено, исправно читалась файловая система, данные в меню настройки>система (как и во всех других вкладках) отображались корректно 

Скрытый текст

5a3c20f7c4a09_2017-12-2123-58-35-GoogleChrome.jpg.2db124cebd831875220372e29a0b9a65.jpg

и вообще ВСЁ было нормально... а индикаторы по нолям (нечистая сила))) !!! Испробовал все браузеры на ПК и единственный Edge в средствах разработчика, в консоли постоянно выдавал ошибку "SCRIPT12030: WebSocket Error: Network Error 12030, Подключение к серверу было неожиданно прерваноНу и как началось так и закончилось, я просто ничего не делал, всё наладилось само собой... Поиск ошибки выдаёт одну страницу на форуме разработчика какого-то серверного по без решения проблемы... Варианты (адекватные, не про замыкания прошивки и таймбомбы).?!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Пожалуйста, войдите для комментирования

Вы сможете оставить комментарий после входа



Войти сейчас

  • Похожие публикации

    • Автор: Kitsum
      Хотите помочь проекту или спонсировать новый?
      Yandex.Money PayPal.me Тема проекта
      Arduino IDE + Project + Libraries + tools: https://yadi.sk/d/jseefFB50NMhAg
    • Автор: Kitsum
      Просмотреть файл [esp8266] Библиотека CMD, реализует настройку микроконтроллера и управление вашей программой через терминал.
      Основная задача библиотеки, это прием пользовательских команд через UART интерфейс, их обработка и выполнение пользовательского кода, связанного с той или иной командой.
      Данная библиотека позволяет реализовать:
      Управление микроконтроллером Любую настройку, будь то WiFi, другие библиотеки или часть Вашей программы Вызывать Ваши задачи (функции) из терминала по команде и передавать им требуемые параметры Использовать контроллер в качестве шлюза между датчиками и программами на PC Внимание: любая команда, передаваемая в терминал обязана заканчиваться символом перевода строки "\n".
      Подключение библиотеки
      #include <cmd.h> Инициализация объекта, к которому мы будем обращаться для добавления команд. В качестве параметра объекту необходимо передать указатель на объект Serial или любой другой схожий по типу интерфейс.
      cmd command(&Serial); В функции Setup описываем какие команды требуется обрабатывать. Например, по команде "test" вызывать пользовательскую функцию с именем "myFunctionName". Имя пользовательской функции может быть абсолютно любым.
      void Setup() { Serial.begin(115200); command.add("test", myFunctionName); } Пользовательская функция будет вызываться каждый раз, когда по интерфейсу Serial поступит команда "test". Если команда будет передана с параметрами, то эти параметры будут переданы в качестве аргументов пользовательской функции.
      В функции loop должна находится команда вызова обработчика.
      void loop() { command.handleEvents(); } Пользовательская функция обязана соответствовать ряду требований:
      Не возвращать никакого результата (быть объявленной с типом void) Принимать в качестве первого аргумента переменную с типом byte в которой будет храниться число равное количеству переданных параметров Принимать в качестве второго параметра переменную с типом char** в которой будет храниться указатель на массив со всеми указателями (char*) на переданные параметры void myFunctionName(byte argc, char** argv) { /* ... */ } Функция всегда должна иметь такой вид, даже если не подразумевается, что ей будут передаваться какие-либо параметры.
      Чтобы перебрать все переданные параметры и вывести их в консоль, можно воспользоваться следующим примером
      void myFunctionName(byte argc, char** argv) { if (0 < argc) { for (uint8_t i = 0; i < argc; i++) { Serial.printf("%i. %s\n", i, argv[i]); } } } Пример вызова пользовательской функции без параметров и с ними
      # test No parameter was passed # test p1 p2 p3 p4 p5 0. p1 1. p2 2. p3 3. p4 4. p5 Помните, что параметры представлены в виде указателей и работать с ними нужно как с обычными переменными не получится т.к указатель содержит не значение переменной (переданный параметр), а указатель на ту область памяти микроконтроллера в которой это значение находится.
      Чтобы сравнить два значения, например, параметр под индексом 0 (идет первым в списке) с каким-либо значением в программе, воспользуйтесь функцией strcmp, которая возвращает целочисленное значение, указывающее на лексическое расхождение строк. Если строки равны, то возвращаемое значение равно 0.
      if (!strcmp(argv[0], "wifi")) { Serial.println(F("Первый аргумент WiFi")); } else { Serial.println(F("Первый аргумент НЕ WiFi!!!")); } Для копирования значения указателя в другую переменную с типом char можно воспользоваться функцией strcpy
      char myVar[20]; strcpy(myVar, argv[0]); if (myVar == "123456") { Serial.prinln(F("ok")); } Также можно обернуть указатель объектом String и получить весь функционал этого объекта, который будет содержать значение параметра
      String param1(argv[0]); // String param1 = argv[0]; Serial.printf("argv[0] length: %i\n", param1.length()); Serial.printf("argv[0] is integer?: %s\n", param1.toInt() ? "YES" : "NO"); if (param1 == "qwerty") { Serial.println(F("Hello QWERTY!")); } С библиотекой идут несколько примеров, в том числе и пример конфигурации WiFi в режиме STA.
      Автор Kitsum Добавлен 05.12.2018 Категория Библиотеки  
    • Автор: Kitsum
      Просмотреть файл [esp8266] Библиотека smartBlink, реализует умное управление штатным светодиодом, что позволяет добавить индикацию состояния вашей программы или микроконтроллера.
      Основная задача библиотеки, это добавление индикации состояния Вашей программы или микроконтроллера. Отображение состояния производится посредством светодиода. Что самое важное, работа библиотеки через прерывание, это позволяет ей поддерживать индикацию даже в то время, когда выполняется длительный код основной программы. Например, Вы можете использовать её для отображения в каком режиме сейчас работает WiFi микроконтроллера, STA или AP и т.д. Или ход выполнения какой-либо операции, например, передача данных на внешний сервер.
      Подключение библиотеки
      #include <smartBlink.h> Чтобы инициализировать управление светодиодом необходимо создать объект, через который мы буем задавать режимы работы индикации.
      smartBlink::smartBlink(byte gpio, bool on = LOW); Объекту необходимо передать два параметра, первый это номер порта, на котором находится светодиод, а второй это уровень логического сигнала, который заставит светодиод работать. Сигнал может быть низким (LOW) или высоким (HIGH), это зависит от схемотехники подключения светодиода.
      Например, штатный светодиод модуля ESP12, использующий GPIO2 (порт 2) можно объявить следующим образом.
      #define led2_pin 2 #define led2_on_signal LOW smartBlink led2(led2_pin, led2_on_signal); Теперь можно в основной программе использовать метод устанавливающий какой режим индикации использовать.
      smartBlink::setMode(mode_t mode); Например, зададим режим светодиода led2 в котором светодиод будет давать одну короткую вспышку раз в секунду.
      led2.setMode(smartBlink::mode_flash1); Режимов работы может быть несколько.
      led2.setMode(smartBlink::mode_off); led2.setMode(smartBlink::mode_flash1); led2.setMode(smartBlink::mode_flash2); led2.setMode(smartBlink::mode_flash3); led2.setMode(smartBlink::mode_flash4); led2.setMode(smartBlink::mode_burn); led2.setMode(smartBlink::mode_inhalf); Чтобы вернуть предыдущий режим индикации для ранее объявленного светодиода led2 используйте следующий метод
      led2.previous(); Благодаря работе библиотеки через прерывания по таймеру, индикация будет работать даже в тех случаях, когда выполняется долгий код.
      С библиотекой идут несколько примеров.
      Автор Kitsum Добавлен 10.12.2018 Категория Библиотеки  
    • Автор: Kitsum
      Основная задача библиотеки, это добавление индикации состояния Вашей программы или микроконтроллера. Отображение состояния производится посредством светодиода. Что самое важное, работа библиотеки через прерывание, это позволяет ей поддерживать индикацию даже в то время, когда выполняется длительный код основной программы. Например, Вы можете использовать её для отображения в каком режиме сейчас работает WiFi микроконтроллера, STA или AP и т.д. Или ход выполнения какой-либо операции, например, передача данных на внешний сервер.
      Подключение библиотеки
      #include <smartBlink.h> Чтобы инициализировать управление светодиодом необходимо создать объект, через который мы буем задавать режимы работы индикации.
      smartBlink::smartBlink(byte gpio, bool on = LOW); Объекту необходимо передать два параметра, первый это номер порта, на котором находится светодиод, а второй это уровень логического сигнала, который заставит светодиод работать. Сигнал может быть низким (LOW) или высоким (HIGH), это зависит от схемотехники подключения светодиода.
      Например, штатный светодиод модуля ESP12, использующий GPIO2 (порт 2) можно объявить следующим образом.
      #define led2_pin 2 #define led2_on_signal LOW smartBlink led2(led2_pin, led2_on_signal); Теперь можно в основной программе использовать метод устанавливающий какой режим индикации использовать.
      smartBlink::setMode(mode_t mode); Например, зададим режим светодиода led2 в котором светодиод будет давать одну короткую вспышку раз в секунду.
      led2.setMode(smartBlink::mode_flash1); Режимов работы может быть несколько.
      led2.setMode(smartBlink::mode_off); led2.setMode(smartBlink::mode_flash1); led2.setMode(smartBlink::mode_flash2); led2.setMode(smartBlink::mode_flash3); led2.setMode(smartBlink::mode_flash4); led2.setMode(smartBlink::mode_burn); led2.setMode(smartBlink::mode_inhalf); Чтобы вернуть предыдущий режим индикации для ранее объявленного светодиода led2 используйте следующий метод
      led2.previous(); Благодаря работе библиотеки через прерывания по таймеру, индикация будет работать даже в тех случаях, когда выполняется долгий код.
      С библиотекой идут несколько примеров.
  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...