Об одном из миллиона способов практического применении этой потрясной штуки.
Будет небольшая история создания, «самописные» программа для Андроид, вэб-морда и сайт на сервере, немного олова и много капсаицина.
Так сложилось, что я люблю что-нибудь выращивать, люблю острый перец и люблю что-нибудь мастерить. В этом устройстве соединились все три эти страсти.
Должен сказать, что я не IT-шник ни по образованию, ни по профессии, поэтому прошу спецов делать скидку и побольше критиковать, критику я люблю, помогает развиваться.
Гидропоника.
Ну об этом можно писать бесконечно. Все наверняка слышали о том, что это такое, многое сами применяют. Способ и устройств её реализации тьма, сначала я выращивал в кокосовом волокне, поливая питательным раствором, но позже захотелось большего контроля параметров, большего объема раствора, меньшего ухода и в конце концов большей технологичности.
Сделал вот такую простейшую установку.
В горшке керамзит, периодически маломощной погружной помпой проливается сверху раствором, находящемся в нижнем баке.
Контроллер.
Требования к контроллеру были следующие:
— мониторинг климата (температура, влажность)
— управление светодиодными лампами, причем двумя каналами, отдельно красными диодами, отдельно синими
— запись статистики.
Вариант №1.
Вначале использовалась Arduino Mega2560, которая была обвешана:
— датчик температуры и влажности DHT-21
— датчик давления bmp180
— двухканальное реле
— графический дисплей вот такой
— инфракрасный приемник для управление с пульта (взял от китайского прожектора), удобная штука, раз подключил — и имеешь кучу настраиваемых кнопок
— модуль записи SD-card
— модуль люксометра
— буззер
Отработало устройство без нареканий. Выполнило свою главную задачу — познакомило меня с Ардуиной.
Вариант № 2.
Давно меня терзали мысли перевести интерфейс (отображение информации и управление) Ардуины в Андроид-телефон, уж больно он разросся, но как подумаешь, что для этого Java штурмовать придется, желание делать это как-то сразу пропадало.
И вот набрел случайно на совершенно потрясную штуку —
MIT App Inventor 2.
Написание Андроид-программы для людей, совсем не знакомых с программированием. Очень похоже на хорошо мне знакомый Scratch (с дочкой занимаюсь).
Среда разработки — онлайн в браузере.
Как и во «взрослой» Android Studio, написание состоит из двух частей, в первом окне с помощью драг&дропа набрасываем компоненты, вторая — написание логики. Просто до неприличия.
В общем стряхнул я пыль с давно валявшегося HC-05 уже практически через полчаса в телефон пошла первая информация с Ардуины.
Подключается он по Serial, все стандартно, передаю данные с Ардуины в таком виде:
<24.5, 40, 200, 14:10:08, 12, 10, 1, 1>
Данные, разделенные запятыми, т.н. CSV-формат. Температура, влажность, текущее время, люксы, количество часов красных диодов, и то же для синих, включен ли красный, и синий. Ну и по краям символы начала и конца строки, чтоб можно было проверить ее целостность.
Сначала накидали компонентов:
Подключаемся, MAC-адрес сразу прописал, чтоб не заморачиваться с поиском-выбором устройств. Повесил на таймер, срабатывающий через полсекунды после старта программы.
Раз в секунду считываем все байты, стоящие в очереди и отправляем на обработку в функцию trim_start.
Поскольку полученные данные могут быть повреждены, в функции trim_start делаем простейшую проверку (проверяем наличие символов начала и конца строки, чтобы символ начала шел впереди символа конца)
Разбиваем строку на элементы и наполняем ими массив data_list.
И затем раз в секунду разносим наши данные по нужным компонентам (в температуре и влажности вычисляем угол поворота стрелки)
Ну и параллельно проверяем и меняем состояние кнопок (включено/выключено, ставит соотв. картинку).
Отправлять данные в Ардуину будем в следующем формате:
R_12>
Первый символ, что именно меняем (R-для красных диодов, B-для синих, T-для времени).
Вот к примеру для красных (формируем строку для отправки и выставляем флаг transmit, показыающий, что есть что оправить):
Собственно отправка:
Теперь принимаем их в Ардуине:
char reb_array[20] ;
int lll=0;
while (Serial1.available() > 0) { //если пришли данные
reb_array[lll]=Serial1.read(); // считываем байты и заполняем ими массив reb_array
lll++;
}
Далее парсим строку и в зависимости от первой буквы меняем нужные переменные:
char * pch;
pch = strtok (reb_array,"_");
String pp = (String)pch;
if(pp == "R"){ pch = strtok (NULL, ">");
String r1=(String)pch;
time_red_duration = r1.toInt();}
if(pp == "B"){pch = strtok (NULL, ">");
String r1=(String)pch;
time_blue_duration=r1.toInt();}
Вот итоговый вид программы
Сверху два «спидометра» температуры и влажности, ниже люксометр, далее кнопки красных и синих диодов (выполняют три функции: 1 — показывают включены или нет, 2-текущий режим, 3-при нажатии принудительно включают/выключают их). Ниже время, далее слайдеры установки режима работы диодов. И в самом низу кнопка установки времени на Ардуине, т.е. его синхронизации со временем телефона (у меня сгорел модуль часов, поэтому после каждого включения приходилось вручную его устанавливать, теперь я лишен этой «радости»).
В общем архиудобная штука, теперь нет необходимости тулить громоздкое каскадное меню для отображения и управление (они уже сейчас занимают около 60% кода в Ардуине), намного удобнее, можно проверять, управлять дистанционно, значительно красивше, здорово экономит время при написании кода, возможно деньги (управляющие элементы и дисплей теперь не обязательно покупать и тулить к устройству), громадный простор для фантазии (построение графиков, передача в интернет, сложная логика на стороне телефона и т.д. и т.п.).
Аналогичным образом её можно использовать и при подключении по WiFi, не только блютуз.
Позже чуть подредактировал, стало так
Вариант №3.
Был приобретен герой обзора. В принципе это то же самый ESP8266, но уже распаянный, с программатором на борту (340-й), microUSB-входом, стабилизатором питания и практически бесплатно, программировать можно а Arduino IDE.
Что имеем:
1. частота 80 или 160 MHz, в отличие от Меги, где только 16.
2. Память 4 Mb, у меги 256кб
3. Оперативка 80кб, у меги 8.
4. И самое главное вайфай, которого у меги нету.
5. Единственный минус — меньше выводов, но на крайний случай можно их увеличить, с использованием сдвиговых регистров. Да и потребность в них упала на порядок, т.к. устройства интерфейса и управления уже не нужны.
В общем имеем на порядок (в прямом смысле — в 10 раз) более мощное устройство, но в разы дешевле и компактнее. Ресурсов хватает уже для запуска почти полноценного сервера.
Поначалу я не осознал всю суть и возможности этого зверька, и использовал его лишь в качестве довеска к Меге, соединив с последней по Serial и используя его лишь для отправки инфы на сервер (подробнее о сервере ниже).
Вариант №4.
И вот наконец пришло понимание с кем я имею дело, и в ходе размышлений пришел к выводу, что Ардуино Мега здесь совершенно лишняя.
Вот так выглядел мой коллайдер в связке с Мегой в прошлом году
Вот таким стал сейчас
Что изменилось:
Выкинул Ардуину Мега и перевел его полностью на Wemos.
Выкинул дисплей — теперь отображение информации по вайфаю на компьютере.
Выкинул IR-датчик управления с пульта — теперь управление тоже на компьютере.
Выкинул модуль SD-карт — вся инфа отправляется на сервер и записывается в базу MySQL.
Выкинул модуль блютуз — управление с телефона прямо в браузере.
Выкинул модуль люксометра — просто необходимости в нем нет.
Вемос сделал легкосъемным — при необходимости залить другую прошивку не нужно отсоединять всю периферию, с платы снимается только Вемос.
Осталось:
Датчик DHT-21
Датчик давления
Часы (вообще можно было и их выкинуть, а синхронизировать внутренний таймер Вемоса с временем интернета, но больше он мне пока нигде не нужен — решил пусть будет)
PPM-метр раствора — там выше на на фото сетевая вилка в растворе. Это и есть щупы TDS-метра. Подключена через делитель напряжения на аналоговый вход. Замеряю падения на них напряжения, вычисляют сопротивление и привожу к ррм. Штука конечно не точная, при передвижении вилки показания гуляют, но тенденцию показывает прекрасно (увеличение или падение ррм)
Реле управления светом, отдельно красными и синими диодами.
На помпу установил твердотельное реле вот такое:
Шикарная штука, маленькая, бесшумная (обычное реле немного напрягало своими щелчками, слышно было в соседней комнате), управляется 3.3 вольтами, не нужно дополнительно тянуть для неё питание, цена доллар с небольшим.
Добавил еще датчик уровня раствора, т.к. иногда забываю подливать. Использовал популярный ультразвуковой датчик расстояния. Крепление бесхитростное:
При заходе на сервер Вемоса (т.е. при наборе в адресной строке браузера на компьютере или телефоне его локального адреса, в данном случае 192.168.0.84), он мне выдает вот такую страничку.
В принципе все там понятно, объяснять не нужно, отображается инфа с датчиков, текущие установки. Справа поля для их изменения. При нажатии кнопки Setup, собираются данные с полей, если есть, берется текущее системное время для синхронизации с ним времени Вемоса, и отправляется в Вемос. Там данные записываются в EEPROM, при перезагрузке ничего не сбивается.
Каждые пять минут данные отправляются на сервер, где записываются в базу MySQL.
При заходе на сайт
anndrew.tk выдается вот такая страница с информацией. Можете прямо сейчас зайти на него и увидеть текущую обстановку в моей гидропонике.
Отображаются «спидометры» — актуальные значения температуры, влажности, давления, ррм и объема оставшего раствора. Рядом с ними графики за последние сутки. Если нажать на график — откроется более подробный, где меняя в строке браузера последнее число (по умолчанию там стоит 500), можно посмотреть график за более продолжительное время.
Сайт писал сам на РНР, для графиков использовал библиотеку
Highcharts
Всё работает нормально. Пруф:
Я так понял без этого администрация обзор не пропустит:
P.S. Это мой первый обзор, критикуйте, спрашивайте — с радостью отвечу.
P.S. а пайку надо подтянуть)
Перестал системой опознаваться. В порт ничего не пишет.
Вообще беда с этими платами. У NodeMCU оторвался USB порт микроUSB. Они на китайских платах еле припаяны. Этот сдох. Вот и приходится по старинке программировать с переходником USB/UART
У меня стоит куча есп, перезагружаются они только если роутер опять завис ( xiaomi miwifi 3 любят внезапно отрубать wifi модуль).
Автоперезагрузку с проверкой соединений сделал тут github.com/Tirarex/TiRGB/blob/master/Frimware/System.h (код еще разрабатывается, тапками не кидать)
Рабочая функция — CheckWifiConnection(), в цикле проверяет есть ли соединение с wifi, если нет, дает делей на 5 секунд, что бы система раздуплилась.
Вместо RebootESP воткнуть свою функцию перезагрузки! ( у меня по планам там сохранение текущих рабочих параметров.
При питании esp8266 от солнечных элементов, например, обязательно нужен супервизор питания, иначе, при медленном росте напряжения, плата не стартует.
В этом плане модификации wemos — это уже серьезная попытка повернуться к потребителю лицом.
На CH_EN тоже приходит
Ресет прозванивается, но на ресет не реагирует (обычно синий диод моргает) и в порт ничего не выдает, хотя COM порт поднимается
ESP нормально работают в большинстве случаев. Если всякие интерпретаторы туда не совать )))
Глючная конкретно это плата. У них еще к тому же на ESP своя маркировка.
AI-Thiker модули прошиваю пачками. А вот конкретно это реализация накрылась.
Вот и написал, может кто сталкивался с таким
Просто не вижу связи между неработающей конкретной платой и глючностью ESP как класса
что там на плате может испортиться?
подскажите пожалуйста, где можно подробней почитать про технологию гидропоники для острых перцев, очень интересно.
У вас датчики, исполнительные устройства и часы подключены к Wemos верно? сам девайс питается например от 5V usb. А куда он у вас шлет информацию? Доса стоит сервер на которым всё собирается и у этого сервака есть вебморда, которую вы нам показали по ссылке?
Каким образом телефон получает доступ к Wemos? через этот же сервак?
Или у вас вообще всё вертится прямо на Wemos? Тогда с помощью какого ресурса вы всё это запилили?
Я свою 8266 заливал софтом с этого ресурса wifi-iot.com/ Работает, но свою оболочку туда не прилепить, а то что есть доступно только с локалки. Из интернета доступа нет(
сорри за субрурность. У меня собрано 10 датчиков температуры и влажности на arduimi rpo mini + nrf24l01. Все они раз в 5 минут отправляют инфу не 8266, а та уже отправляет команду газовому котлу включиться или выключиться. Настраивать неудобно.
1. Заход с компьютера или телефона прямо на Вемос по локальной сети дома, Вемос в качестве клиента подключен к роутеру (т.е. при наборе в адресной строке браузера на компьютере или телефоне его локального адреса, в данном случае 192.168.0.84). Отображается вэб-морда Вемоса (хранится в самом Вемосе и выдается им же). Здесь можно им и управлять через эту вэб-морду.
2. Каждые пять минут Вемос отсылает статистику на облачный сервер. Захожу на сайт anndrew.tk и там уже просматриваю информацию с графиками. Управлять нельзя.
Запилил я всё это вручную, сам написал и вэб-морду Вемоса и сайт anndrew.tk, без помощи сторонних сервисов.
Чтоб управлять из интернета есть два пути:
1. Вы оставляете команды на облачном сайте, а Вемос периодически обращается к нему, и если есть команды, выполняет их. Минус — команда выполняется не мгновенно.
2. Заходить из интеренета прямо на Вемос. Но для этого нужен белый IP (либо костыли, отслеживающие текущий IP).
Вручную это можно запилить, по сервисам не подскажу, не интересовался.
Да и вряд ли бы использовал готовые решения, всё-таки удовольствие от создания устройства превалирует над удовольствием от простого обладания им.
Протокол изменить не долго, вопрос в необходимости, сейчас куча готовых сервисов, кого заинтересует моя поделка, сделанная без проф. подхода (без кроссбраузерности, защиты, каких-либо гарантий существования на протяжении длительного периода времени).
Для любителей поковырять в прошивке — есть blynk.cc сервис, там и графики можно строить, и логика работы есть,
А для управления через инет есть еще один способ, который опубликовал один муськовчанин: с помощью бота для телеграм.
И еще один момент — вам в будущем, возможно, пригодится внутренняя файловая система ЕСПшек и всех чипов, основанных на них — в качестве альтернативы SD-картам. В частности, вемос имеет 4 мегабайта памяти на борту, из которых 1 можно использовать под прошивку, а еще 3 — для хранения любых своих данных. Погуглите в сторону SPIFFS, вот вам отправная точка.
Там есть поддержка сервиса blynk и mqtt
Mqtt конечно клево, но Blynk лучше — он как раз использует облако и доступ из любой точки где есть инет.
Просил автора wifi-iot добавить blynk — он не хочет :)))
Просто в любых действиях должен быть хоть какой-то смысл. В каком протоколе идет отправка сообщений по большому счету разницы нет, blynk мне не нужен, т.к. есть самописный интерфейс, который мне больше нравится и по дизайну и по возможностям.
Тогда зачем?)
За пытливый ум — плюс и уважуха
Чтобы появилось время надо начать играть, а потом бросить!
то ли дело раньше было — по сети поиграть в тупую стрелялку
а уж когда тебе за под 30, то игрушки должны сами собой отваливаться
по крайней мере у меня так и было, да и играл я очень редко
вчера вот закончил очередной урок по программированию на шарпе, сегодня буду доделывать блок питания для камер и к нему тоже надо будет сделать управление по сети, чтобы делал перезагрузку зависших камер
То же самое осталось и сейчас. Поиграл при желании 30 минут — вышел, и забыл.
раньше если и купил, то играй сколько влезет, а сейчас игра вроде бесплатная, а новые уровни денег просят или какие-то предметы надо покупать, иначе более богатый будет иметь пушку круче тебя и быстро замочит
я последний раз включал хл2 в начале 2009 года, когда компутер новый купил
хотел глянуть, как встроеная графика потянет ее, а то в 2004 году надо было покупать отдельную карту
оказалось, что технологии неплохо так развились, а вот я сдулся, т.к. через 2 часа играния мне стало дурно от мелькания 3д и хотелось блевануть
я так в 94м кажется и блеванул после игры в дум или типа того, квейк2 тоже вызывал блевоту
так что эти игры явно какая-то нездоровая тема и я завязал с ней как и с другими вредными действиями
Вас обманывают ваши фантазии.
Кому должны? Мне 37, играю в Lord of the Rings Online 9 лет, раньше с нами в рейде играл дядька которому было за 70, после закрытия российских серверов он не перешел на Глобал, так как английского не знает, а так бы сейчас играл с человеком которому ближе к 80. В рейде я, в свои 37, самый молодой, большая часть 42+. Никому игры ничего не должны. Игры — способ проведения досуга и те кто начинал в 80ых со Спекки сейчас возрастом глубоко за 30, спокойно играют и ничего в этом плохого нет. Это только совки твердят «игры и компьютеры они для детей», у остальных людей такой чуши в голове нет.
играть в реале, бизныс там свой, дело какое, общественные дела
а в игры дядь играют как раз по 2м причинам — не реализованность в вышеописанных областях, либо жена пилит, а бухать нельзя по здоровью
а дядька за 70 уже на пенсии, ему можно
у меня папаша на пенсии в линупсах ковыряется
Жизнь не заканчивается бизнесом и прочим. Узнайте, что есть еще такая штука, как досуг. Иногда люди отдыхают и для этого есть игры.
> а в игры дядь играют как раз по 2м причинам — не реализованность в вышеописанных областях, либо жена пилит, а бухать нельзя по здоровью
Блин, смотрю на старшего брата, ему 40. Он играет для отдыха вместе с женой и сыном в тот же Lord of the Rings. Ваши фантазии разбились. Смотрю на одного знакомого, успешного бизнесмена(ну так успешного, долларовый миллионер, бизнес в РФ и Испании), он играет раз-два в неделю, опять ваши фантазии разбились. Смотрю на нашего рейд-лидера, женщине 45, трое детей, муж, бизнес, играет вечерами, что бы от всего отдохнуть.
к тому же там человек жаловался, что у него времени не хватает на полезное дело
стараюсь не контактировать с теми, кто меня напрягает
А есть игроманы, у которых из-за их неспособности оторваться от игры, и семьи разваливаются, и в доме — полный развал…
«Те, кто начинал в 80-х», в свое время переболели тетрисом и большинство получило хорошую прививку, а вот младшего — приходится за шкирку вытаскивать из-за компьютера…
смысла пасьянса вообще не понял, в чем там прикол? я только в дурака на картах могу играть и то по сети
Да хватит фантазировать. Те кто начинали в 80ых прекрасно играют. Зайдите в Elite Dangerous, у нас там молодежи и нет, там играют те, кто в 84 и позже играли в оригинальную Elite.
> А есть игроманы, у которых из-за их неспособности оторваться от игры, и семьи разваливаются, и в доме — полный развал
О таких только читаю в фантазиях фантазеров типа kalobyte, в реальности таких не встречал. У всех знакомых семья-работа, у многих дети(у кого-то уже взрослые) и это не мешает им играть.
Нет, дело в том, что обычно такие люди существуют только в сказках советских бабушек. Тех которые раньше рассказывали, что Спектрумы сажают экран телевизора и тех, которые сейчас рассказывают, что от компьютера можно ослепнуть. Такие же сказки и пугалки.
Слава Богу, сегодня все это уже в далеком прошлом, но зрение и мозги нынешние компьютеры (и телефоны с планшетами) губят с таким же успехом.
Впрочем, это как курильщику объяснять вред от его привычки. :) Не поймет…
Я за клавиатурой с 1989 года, у меня зрение — единица. Я не верю в сказки про садящееся зрение.
И, да, сам я хорошо если раз в неделю на пару часов сейчас запускаю игры, а зимой так вообще ни разу не запускал. Что там про рассказ курильщику о вреде? Я просто не люблю тупых советских завиральных баек и терпеть не могу совковую тупость, а именно она лежит в «От компьютера зрение портится» и прочем подобном.
На зрение влияет наследственность.
А то «медики» и про безопасность прививок — тоже говорят…
Сейчас ребенку 10 лет, он постоянно сидит в смартфоне, зрение идеальное.
Так что многое действительно зависит от генетики. Хотя перенапряжение глаз тоже допускать нежелательно.
Ну и касательно вреда компьютерных игр. Благодаря играм я научился программировать, неплохо овладел английским языком, сейчас у меня хорошая работа (зарплата в 2 раза выше средней по области). Я даже машину с большим прицепом научился водить и парковать задом в игре, что потом очень пригодилось.
А вы продолжайте дальше утверждать, что от игр сходят с ума и это занятие для детей, а все взрослые должны интересоваться Серьезным Бизнесом (тм).
А можно я буду утверждать то, что сам считаю правильным, а не то, что мне подсказывают «третьи лица»? Заранее спасибо. :)
сейчас я пишу этот текст с монитора 24" при разрешении 1280х1024, потому что на его родном разрешении 1900х1200 я нихера не вижу
и мне 36 лет
стоял в серверной одной конторы, которую я обслуживал
месяца 2 он так простоял, пока сервера не было и светился
не увидел бы сам — не поверил, кинескопы видел, правда выгорели они на видеосистемах и кассах
А мониторы, выженные Нортон-командером? чёткая рамка из псевдографики по краям экрана и строки с нечёткими полосками — буковки таки разные на них были…
а он мамке сказал, что столько стоит лицензия
ну я в нее играл на спектруме, там сейчас за нее деньги вроде просят? поэтому и сидят там дядьки с деньгами
играть можно заменить на бухать, ничего не изменится
И раньше просили. Мы покупали кассеты с играми. Сейчас нужно один раз купить игру и спокойно играть. И что?
или время игры
а кассеты мы раньше покупали вскладчину и копировали на двухкассетнике
я когда понял, что такое компаратор, то переделал магнитофон и поставил его туда, можно было копировать в 2 раза быстрей с кассеты на кассету и без копировщика
или время игры
Вас обманули. Не нужно. Оплачивается только сама игра.
минимум будет 5 камер
максимум 8, т.к. разветвитель на 8 портов только есть
а один бп (что скамерой шел) я уже прикрутил к нему сплиттер
я пробовал на 20м кат5е — просадка идет до 3.8 при верчении башкой, при обычной работе проседает до 4.5 где-то, но в камере все равно стоит стаб на 3.3, а длиньше 20м проводов не будет, да и они кат7
но в бп есть регулятор до 6в, так что накрутить можно будет
кстати обзор на эти камеры у меня есть
но лучше брать камеры со встроеным нормальным пое 12в
— ну если это на практике так, то нормально. Видно у меня одна бухта подделки — омедненный алюминий наверное, а может только некоторые жилы. Надо звонить.
— ну нормальный на 36В
вот знакомый вася сказал, что у него камера дома висит и он с телефона на работе за женой смотрит значит камера годная и надо брать
в розетку воткнул, влан настроил и норм
есть такое, но я не встречался
правда я в европах живу, может такое гавно и не везут сюда
у камер 12в вход и обычно они втыкаются сразу в регик с пое и там тоже 12, а регик уже в свитч
т.е. это не труъ 802.3аф, а просто питание 12в идет на конвертер в камере с сетевого разъема или же там шнурок еще торчит на 12в внешки
а есть камеры с модулем 802.3аф, который на 48в и втыкается в любой свитч
такие камеры еще дороже, т.к. брендовые
36в нет в стандарте, это как бы минимальное напряжение, при котором стартует преобразователь
ну по крайней мере в моих цисковых телефонах он так запускается
мы про разные модули говорим
про который ты говориш — он есть на 48в, смотри мой обзор на пое свитч, я такой туда засунул
а модули для камеры они совсем другие
1) А есть схема Вашей самоделки? А то как-то не понятно, как это подключать (я знаю, что есть инет, но все же)
2) Чем данный модуль отличается от Arduino + esp8266? Программируется как я понял, так же как ардуинка. Надежность, зависания модуля и т.д.?
Просто я хочу собирать систему автополива, заказал на днях все компоненты, а тут Ваш обзор.
Чуток я поторопился )))
Ну схемы там можно сказать никакой и нет. Часы и датчик давления подключаются к sda/clk (выводы D2 и D1). TDS-метр через делитель напряжения на аналоговый вход. УЗ-датчик и реле тоже на свои цифровые выводы.
2. Не совсем понял вопроса. В связке «Arduino + esp8266» Ардуина лишняя, esp8266 и сама может выполнять все функции Ардины, программируется так же.
По зависаниям — да, когда Вемос работал в связке с Ардуиной Мега, были частые зависания, пришлось даже watch-dog таймер делать, если Вемос не отвечал какое-то время, то Мега перезагружала его. Сейчас, в одиночном режиме, я настроил так, чтобы при невозможности связаться с сервером два раза подряд, Вемос сам себя перезагружал. Примерно раз в сутки он это и делает. По какой причине — не разбирался, подозреваю роутер, у меня старенький и бывает требует хардресета иногда. Зависаний Вемоса, чтобы он просто прекратил работу, и создал угрозу жизни перца — ни разу не было.
1) А сам вемос виснет, как адруинка например? Там чтобы использовать wachdog нужно загрузчик перепрошивать, т.к. мало где он работает.
2) А модули для него можно использовать от ардуинки?
3) По инету этот модуль может работать? Ну скажем удаленно управляться с телефона !? Вероятно да…
2. Ну да, разницы ведь никакой нет. Внимательно только по питаню смотреть. Вемос на 3.3вольтах работает, некоторые модули требуют только 5вольт, хотя большинство прекрасно работает и на 3.3в.
3.Чтоб управлять из интернета есть два пути:
— Вы оставляете команды на облачном сайте, а Вемос периодически обращается к нему, и если есть команды, выполняет их. Минус — команда выполняется не мгновенно.
-Заходить из интеренета прямо на Вемос. Но для этого нужен белый IP (либо костыли, отслеживающие текущий IP).
Я не делал управление через интернет, необходимость в этом нулевая, белого IP нет, поэтому не стал заморачиваться.
Ведь буквально 2 дня назад заказал с ali кучу компонентов: адруинки, esp8266 + модули питания, ЭМ клапаны и т.д.
Как работать с arduino я немного знаю, а вот esp8266 в руках ни разу не держал, возможно это будет второй этап развития проекта )))
Я, как видите, тоже только с 4 раза допёр, что такое esp8266 и как правильно её готовить)))
Хотя есть версии D1R2, но они такие же большие как UNO, ну и отсутствие аналоговых выходов напрягает. Например те же реле дергать, вполне помогают, при том что цифровые заняты.
Аналоговый выход там есть, правда один. Цифровые можно нарастить с помощью сдвиговых регистров.
Но, как уже говорил, с учетом того, что нет необходимости тулить к нему экраны, кнопки, энкодеры и прочую интерфейсную лабуду, потребность в выводах раза в 2-3 падает. Имеющихся для самых сложных устройств вполне хватает.
В 8266 прошивается автозагрузчик, который по wifi подключается к вышеуказанному сайту.
На сайте — редактор кода (LUA). Можно с сайта редактировать и закачивать новые прошивки. Провода больше не нужны. :)
Сам недавно нашёл и осваиваю…
1. Прием данных с Вемоса и запись их в базу MySQL.
2. Вывод данных из MySQL в удобоваримой форме для библиотеки Highcharts.
3. Динамическое создание изображений («спидометров») с поворотом стрелки.
Что именно интересует, если нужно могу в личку или на почту скинуть.
[email protected]
По второму пункту.
Данные из MySQL нужно привести к такому виду
[Date.UTC(2017,5,26,17,52,46), 27.65]
и затем создать из них js-массив, чтоб библиотека уже из него построила график.
По третьему пункту.
Для каждого «спидометра» создаю в фотошопе два png-изображения: табло и стрелку. Изображение со стрелкой только нужно делать так, чтобы центр стрелки совпадал с центром изображения, чтоб при вращении оставался всегда в центре.
Затем с помощью РНР-команды imagecreatefrompng создаю из них два изображения в памяти, изображение со стрелкой поворачиваю на необходимый угол с помощью imagerotate и накладываю стрелку на табло с помощью imagecopymerge
Объявляю header('Content-Type: image/png') и вывожу клиенту уже совмещенное изображение imagepng($image);
Сейчас почищу от код от лишнего мусора, чтоб было проще ориентироваться, и скину на почту.
Всегда хотел свой индивидуальный narodmon сервис сделать :)
Вообще было бы неплохо описать в чем писали прошивку для вемоса (а в реальности для esp-8266, можно использовать ту же nodmecu наверное), чем заливали.
Второе — как заливать на сторонний сервис (прямо с начала и запись в mysql). Прямо для нубов, есть допустим kvm, что с ней делать как принимать данные.
Ну и собственно дальше — как строить графики.
У меня туда «Картофелехранилище» статистику кидает.
https://thingspeak.com
CVS это была такая система контроля версий. А файлы csv(Comma-Separated Values). csvшки прекрасно парсятся на коленке и графики строятся всем что движется, строить графики из получаемых числовых значений может даже обезьяна.
Детям будет интересно…
P.S. Советы погуглить тоже не требуются.
Вопрос: графику для интерфейса вы как подключали и откуда?
Это просто набор ПНГ-шек, или какие-то экстеншионы подключали?
Если не сложно — архивчик с графикой можно у вас выпросить?
Создаю в фотошопе два png-изображения: табло и стрелку. На облачном сервере с помощью РНР накладываю одно на другое, предварительно повернув стрелку на нужный угол и уже совмещенное изображение вывожу клиенту.
Вот крупным планом, чтоб рассмотреть
Какая именно графика Вам нужна? Табло и стрелки? В каком формате? Фотошопном или png?
Картинка циферблата, картинка стрелки и в приложении просто угол стрелки задаётся и всё.
А так… геморойно дико. Но всё равно — реализовано у вас — закачаться можно.
Тогда не надо, простите за беспокойство :)
Выводятся два изображения, одно снизу (циферблат), другое сверху (стрелка)
Затем изображение со стрелкой просто поворачивается на нужный угол
Я же приводил кусок кода MITAPP, где это происходит, вот, чтоб не искали:
А как для этого индикатора была сделана графика?
Стрелка — растёт из центра квадратной картинки?
Давно не подворачивалась под руку такая забавная тулза :)
Ну cначала c помощью программы FrontDesigner рисую шкалу, просто деления по кругу, там это очень удобно и много настроек.
Затем шкалу копирую в фотошопный файл, ну дальше дело техники, рисуем круг, заливаем градиентом, сверху накладываем шкалу, подписываем цифрами. Сверху круг с вырезанной дырой (ободок циферблата), в «параметрах наложения» придаем ободку рельеф и освещение (разделы «контур», «тень»).
dark256.space/TIME/
Это просто таймеры напоминалки, насколько я понял, ни к чему физически не привязаны?
Просто поставил пельмени вариться, сел за комп, полез по Муське шариться — забыл про всё на свете :)
А так — завёл таймер :) Можно МНОГО завести.
Я обычно сразу ставлю на 5,10,15,20 минут — чтобы ходить, к примеру, помешивать что-то :)
Там у меня хитрость: чтобы УДАЛИТЬ — надо жать с наатым ctrl :)
Такое вот ещё есть:
dark256.space/TODO/
dark256.space/STIX/
Расскажите подробней про то, как пересчитываете сопротивление воды в PPM, какими инф. источниками пользовались для рассчетов, и как это конкретно у вас работает?)
1. Вычисляю падение напряжения на щупах из показаний АЦП.
2. По формуле делителя напряжения вычисляю сопротивление между щупами.
3. определяю ррм по формуле k/R, где k — коэффициент, подобранный опытным путем. Для моей вилки он в районе 180000 (калибровал по обычному TDS-метру).
Желательно сделать еще температурную компенсацию (там в районе 2% на каждый градус), но я не делал, т.к. меня интресовала тенденция изменения ррм, а не его точное значение.
Ррм сейчас держу в районе 900-1600ррм. Когда молодое растение — и 300ррм можно.
Я какое-то время помучался, а потом сделал просто циклический полив по времени с возвратом дренажа в общую емкость… И влажность почвы меня перестала волновать.
Электроды — обычная сетевая вилка.
… А с Арудиной полный тупик! В простейшем проекте с которого я решил начать (датчик тока INA219 с I2C + двухстрочный экран c I2C) мало того, что с двумя библиотеками программа занимает несколько килобайт! (т.е. программа: цикл с чтением — индикацией и больше ничего!) Так ещё и при попытке вырезать лишнее из библиотек (если не ошибаюсь, пустую не используемую функцию «Print»), вылазит ошибка компиляции, которую неизвестно вообще где искать!!! То же самое с попыткой использования функции форматирования строки — (которую люди в других ардуинах используют вообще без проблем) вылазит ошибка, которую непонятно где искать (нет ссылки на документ и строки в нём)!
… Неверное родной уродливый компилятор использовать для нормальных программ вообще невозможно? Может существует другой язык или среда разработки, которая не жрёт место за счёт неизвестно зачем впихиваемых библиотек в МОЙ код, и который при ошибках компиляции хотя б даёт координаты ошибки в исходном тексте на библиотек и BIOS? (ну чтоб можно было всё это кастрировать под конкретную задачу). Может какие-нибудь настоящие «СИ» или «ASM» среды разработки?
p.s. И да, я прочитал весь ваш обзор, и понял что у всяких ESP плат куча мегабайтов и мегагерцев, но мне они не нужны! Для большинства домашних задач хватит и 32 кГц (если не будет проблем с низкой скоростью I2C). У Ардуины я вижу всего один недостаток — не умеют работать с файлами.
В библиотеке там имейте ввиду что есть два файла — хедер и его реализация, т.е. тело библиотеки. Возможно Вы в библиотеке удалили ненужную функцию, а в хедере она осталась и ссылается на несуществующий метод.
Ну почему уродливый компилятор? Я первый вариант коллайдера когда писал, довольно внушительная программа на 750 строк кода получилась, с кучей датчиков, обработкой их показаний через медианные фильтры, с общением с подключенным по Serial Вемосом, дисплеем и т.д. Ну и учитывая мою криворукость, азов программирования ведь нет. Так вот нормально всё компилилось работало. Не было ни разу, чтобы компилятор в чем-то меня ограничил.
Программируют Ардуины и на Сях, есть какой-то аналог Вижуал Студио. Атмега Студио вроде называется, не помню точно. Можете еще в сторону прямых команд управления портами и регистрами полюбопытствовать, тоже экономит память и увеличивает скорость. Причем очень существенно.
Я писал в среде разработки Ардуины, в последнее время пишу в SublimeText (всё-таки автокомплит — это сила!), а компилю в родной среде.
По памяти погуглите PROGMEM, тоже для некоторых задач может помочь.
По файлам не знаю, нужды не было, EEPROMа хватало. Подключал модуль SD-card, там с файлами был порядок, всё создавалось, удалялось и писалось без проблем.
Дайте текст ошибки, что выдает, может смогу чем помочь. Компилятор, повторяю, довольно стабилен, скорее всего конкретно в Вашем случае какие-то неполадки.
По поводу мегабайт и мегагерц у ESP, главное её преимущество — WiFi. Что устраняет потребность в дисплеях, кнопках управления и т.д. Хотя и мегагерцы с мегабайтами в некоторых случаях лишние не бывают
там чистый си и библиотеки сам можеш найти, функцию принт нельзя выкидывать, она используется для форматирования вывода на жк экран
места много занимает из-за функции pin, там много всяких проверок, есть мануалы по замене этой библиотеки на попроще
если у тебя есть visual studio, там есть к ней плагин платный visual micro, он дополняет код и прыгает на строки как в обычных компиляторах
тот ультразвуковой датчик насколько точен? у тебя аж сотые доли литров
это какие минимальное и максимальное расстояние до воды получается? зависит ли точность от плотности расвора?
я еще ни разу не игрался с ним, думал просто игрушка чисто определить преграду
Сотые доли из-за того, что я пропускаю его показания через медианный фильтр.
Делаю 20 замеров, заношу их в массив, сортирую по возрастанию, беру средних 4 значения и уже из них вывожу среднее арифметическое.
Но в моей установке с ним небольшие проблемы, подозреваю ловит отражение от стенок, ну т.е. показания стабильны, затем падает на к примеру на час на 200мл (для датчика это 4мм), держит так, затем возвращается к норме. Скорее всего это от стенки. Пока еще не думал над тем, как это исправить.
Точность от раствора не зависит, он ловит звук, отраженный от поверхности воды, звук идет только по воздуху.
а как это со временем связано? почему через час возвращается к норме?
отражения либо есть, либо их нет
Может дело в датчике, нужно будет попробовать заменить.
разница возникает из-за изменения температуры, что ведет к изменению плотности воздуха в баке
masterclub.online/topic/15545-datchiki-urovnya-vody-v-emkosti