Правила форума

Пионер! Когда будешь спрашивать о своей проблеме - не забудь указать условия выращивания (субстрат, свет, полив, вентиляция, удобрения)



Начать новую тему 
Ответить на тему 
на страницу... 1  2  3  4  5 ... 13  
Сообщение
СообщениеДобавлено: 07.08.19 21:00
Заголовок сообщения: Доступная автоматизация. Релиз 1.3


Регистрация: 02.07.2007
Сообщения: 1789
кто не хочет много читать, но кому интересны ходовые испытания


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

И так требование к концепту:
1. максимально дёшево и рационально
2. маштабируемость системы
3. простота запуска в работу
схематично пока так
542965
описание
1. каждый модуль nodeMCU котролирует параметры одного растения, если надо увеличить кол-во растений просто увеличиваем колв-во модулей, что то новое мудрить не надо.
2. NodeMCU была выбрана из-за простоты работы с ней и возможности прогромирровать на JS
3. JavaScript был выбран из-за мультиплатформенности, не важно какая у вас ось, главное что бы стояла nodeJS
4. протокол MQTT был выбран из-за постоты работы с ним
5. серевер телеметрии и MQTT-брокер можно поместить на персоналку, можно под это дело приспособить одноплатный комп, по тому как нужно что бы он был включён постоянно.
6. пока остановимся на локальном вареанте.

кому интересны ходовые испытания


GrowController v. 1.3
614599
фото шилда для esp8266.

Назначение изделий и технические характеристики.

Контроллер предназначен для непрерывного контроля температуры и влажности внутрии помещения, и управления четырьмя релейными выходами: свет, вентиляция, полив, обогрев.
Контроллер поддерживает датчик BME280. Релейные выходы рассчитаны на 10А.
Питание и прошивка осуществляется через mini-USB разъём.
Настройка осуществляется через точку доступа по web-интерфейсу.

Устройство.

614600

1. Среда разработки - http://mongoose-os.com
2. Программирование - Javascript и С.
3. Логика базируется на ESP8266.
4. Входа А и В, подключаются датчик температуры и влажности DHT11/22 и BME280.
5. Реле управления соловой нагрузкой HF3FF рассчитаны на 10А. Имеют перекидной контакт с положениями NO/NC.



GrowController v. 2.0
и так.....барабанная дробь! Слава Ольмерту!
встречайте рабочий интрефейс для версии pro:
135.181.101.64:3000
больше конечно заточен под телефон
631903
но и на пк не плохо выглядит =)
631904
для пытливых репазиторий git clone https://mormolad@bitbucket.org/mormolad ... source.git

ну и сама дивайсина
631905


самое главное что девайс работате оффлайн и не требует наличия интернета!!!


Последний раз редактировалось 8787447462 20.04.21 23:06, всего редактировалось 17 раз(а).

 Профиль Найти сообщения пользователя Галерея  
Ответить с цитатой
СообщениеДобавлено: 07.08.19 21:05

Регистрация: 14.02.2018
Сообщения: 1845
Для тех, кто не в теме, зачем автоматизировать контроль влажности, температуры и освещения. Что это даст?

_________________
Бог - наркоман и он спалился :)


 Профиль Найти сообщения пользователя Галерея  
Ответить с цитатой
СообщениеДобавлено: 07.08.19 21:15


Регистрация: 02.07.2007
Сообщения: 1789
автоматизировать контроль, что бы контролировать автоматически=)
а если серьёзно то в идеале это должно дать контроль над параметрами без участия человека, так как не у всех боксы и румы настолько инертны что бы не обращать внимание на амплитуду параметров.....


 Профиль Найти сообщения пользователя Галерея  
Ответить с цитатой
СообщениеДобавлено: 07.08.19 21:25

Регистрация: 15.12.2014
Сообщения: 1134
а чем тебе ардурина не угодила к ней приблуд на алике - 100руб/ведро

_________________
практикующий семейный психолог


 Профиль Найти сообщения пользователя Галерея  
Ответить с цитатой
СообщениеДобавлено: 07.08.19 21:29

Регистрация: 14.02.2018
Сообщения: 1845
Цитата:
в идеале это должно дать контроль над параметрами без участия человека

Может меня подводит воображение, но не могу представить что даст автоматизация контроля над влажностью земли, например? Понятно, что растиху поливать надо - для этого есть график, календарь и здравый смысл. Всё равно придется миксовать удобрения, лезть в бокс и всё такое. Что именно в этом процессе будет делать автомат?
В чем смысл автоматизации контроля освещения, кроме как таймер из магазина настроить на нужный цикл? Разве что бокс где-то в удаленном месте стоит и чтобы не было измены "а может там свет отключился" нужен какой-нить датчик, отправляющий инфу через инет.
Один товарищ мой, в штатах живет, прикупил себе типа полностью автоматический бокс, мол только семечку брось, удобрения и воду залей в бачок и в следующий раз открывай для харвеста. 7,5 килобаксов отдал за него. Нихрена он в нем так не смог вырастить, скажу по секрету.
Имо, прежде, чем говорить за автоматизацию, нужно понять какие действия гровера нуждаются в автоматизации. Домашний гровинг больше на искусство похож, чем на что-то еще. Тут автоматизация лишняк будет.

_________________
Бог - наркоман и он спалился :)


 Профиль Найти сообщения пользователя Галерея  
Ответить с цитатой
СообщениеДобавлено: 07.08.19 21:55
Аватара пользователя

Регистрация: 30.12.2007
Сообщения: 818
Согласен с предрассветным, дешевле всего - страдать ардуйнёй.

Если как вы рисуете - имеет смысл всё "собирать" на RaspberryPi - поднять на нём MQTT-брокер и Node-RED (простое визуальное программирование и создание графического интерфейса), а в качестве датчиков и различных "ногодрыгательных" устройств использовать уже что угодно вайфайное - хоть на ESP8266 или ESP32.
Мне например нравятся WeMos Mini - маленькие и компактные и дешевле NodeMCU, к ним есть готовые "стЭкуемые" расширения - разные датчики и расширения. Но можно хоть на ESP-01.

Можно ещё и ESP32-cam несколько штук поставить они сейчас благо копеечные - и в том же самом Node-RED собирать видео с разных ракурсов. А если на рутере настроить проброску портов - то из любого места можно контролировать - что там дома происходит - и управлять исполнительными устройствами если будет надо в ручном режиме, как путин )) через dashboard Node-RED.
Правда под ESP32-cam надо будет поднимать MotionEye, а то ESP32-cam только в один поток (одному подключению) могут видео выдавать.

Как-то вот так...


 Профиль Найти сообщения пользователя Галерея  
Ответить с цитатой
СообщениеДобавлено: 07.08.19 21:59


Регистрация: 02.07.2007
Сообщения: 1789
для затравки мониторинг температуры и влажности для бокса за 400рублей при наличии дома вифи и ПС на винде.

Что нам понадобиться из железа:
1. NodeMCU 1шт. (200 руб. на али) желательно LoLin V3, так как пример будет именно для неё
2. датчик температуры и влажности DHT11 или DHT22 (200руб. на али)

Что из ПО:
1. драйвера для NodeMCU (для винды можно качнуть сдесь
2. среда работы со скраптами Mongoose OS в ссылке описан "quick start quide"
3. MQTT брокер mosquitto
4. на смарт скачать MQTT Dashbord

приступим:
1. устанавливаем mosquitto и запускаем
2. в роуторе присваеваем дивайсу на котором москитто постоянный IP
3. устанавливаем драйвера на NodeMCU
4. устанавливаем по гайду Mongoose OS до пункта 6 включительно
5. в с:/mos/app1 находим фаил mos.yml и вставляем в тестовом редакторе настройки
author: mongoose-os
description: A JS-enabled demo Mongoose OS firmware
# arch: PLATFORM iot.eclipse.org
version: 1.0
manifest_version: 2017-05-18
libs_version: ${mos.version}
modules_version: ${mos.version}
mongoose_os_version: ${mos.version}

config_schema:
- ["mqtt.server", "1.0.0.0:1883"] // прописываете IP девайса на котором mosquitto
- ["mqtt.enable", true]
- ["mqtt.user", "morm"]
- ["mqtt.pass", "morm"]
- ["i2c.enable", true]
- ["app.pin", "i", 2, {title: "GPIO pin a sensor is attached to"}]
- ["wifi.sta.enable", true]
- ["wifi.sta.ssid", "Keenetic-7909"]
- ["wifi.sta.pass", "9HP6HpRT"]

tags:
- js

filesystem:
- fs

libs:
- origin: https://github.com/mongoose-os-libs/boards
- origin: https://github.com/mongoose-os-libs/wifi
- origin: https://github.com/mongoose-os-libs/dht
- origin: https://github.com/mongoose-os-libs/mqtt
- origin: https://github.com/mongoose-os-libs/mjs
- origin: https://github.com/mongoose-os-libs/rpc-service-config
- origin: https://github.com/mongoose-os-libs/rpc-service-fs
- origin: https://github.com/mongoose-os-libs/rpc-uart


6. в папке с:/mos/app1/fs находим фаил init.js и в текстовом редакторе вставляем скрипт
load('api_config.js');
load('api_rpc.js');
load('api_dht.js');
load('api_timer.js');
load('api_mqtt.js');


let pinDht11 = 4;

let dht11 = DHT.create(pinDht11, DHT.DHT11);

let topicTemp11 = null;
let topicHum11 = null;
let msgTemp11 = null;
let msgHum11 = null;


Timer.set(1000, true, function() {

print('Temperature11:', dht11.getTemp());
topicTemp11 = 'Temperature11';
msgTemp11 = JSON.stringify(dht11.getTemp());


print('Humidity11:', dht11.getHumidity());
topicHum11 = 'Humidity11';
msgHum11 = JSON.stringify(dht11.getHumidity());

MQTT.pub(topicTemp11, msgTemp11, 0);
MQTT.pub(topicHum11, msgHum11, 0);

}, null);

7. открываем mos.exe в c:mos
8. конектим nodeMCU и пишем "mos build" затем ентер и "mos flash" опять ентер.
9. настройки MQTT Dashborda
создаём Сonnetion:
- client ID: любое имя на латинице
- server: IP mosquitto
- port: 1883
- username и pasword любые
- остальное без изменений
заходим в созданное соединение во вкладке Subscrible создаём новую подпись:
- Friendly name : Humidity
- Topic: Humidity11
- остальное без изменений
- SAVE
и создаём ещё одну подпись:
- Friendly name : Temperature
- Topic: Temperature11
- остальное без изменений
- SAVE

на этом пока закончим, продолжение следует......

Добавлено спустя 2 минуты 4 секунды:
[quote="предрассветный 3.8
почти все приблуды подходят и есп =) но вот удобство пользование nodeMCU гараздо больше и одно из главных это использование одного языка программирования как для модуля так и для серверной части.....=)

Добавлено спустя 4 минуты 43 секунды:
[quote="dualseeker 3.8
nodeMCU это тот же esp, только уже с usb-driver......а распбери это же и есть один из одноплатников, коих сейчас множество.....

Добавлено спустя 10 минут 5 секунд:
[quote="Zazvata 3.8
контроль влажности почвы может пригодиться если нужно отлучиться на продолжительное время, что бы растиха не засохла, это как вариант.....темболее график можно прописать и полив будет произвроиться по графику.....вариантов на самом деле много, это для гибкости системы....тот же контроль освещения может пригодиться когда у тебя сгорела лампа, да и зачем что то покупать если уже будет в комплекте.....я как раз и создал тему что бы опытные гроверы помогли сформулировать концепт перед тем как приступать к реализации....
понятно что авто бокс не будет работать в полной мере... ну если только для одного сорта от одного производителя....но это же пока......


 Профиль Найти сообщения пользователя Галерея  
Ответить с цитатой
СообщениеДобавлено: 08.08.19 09:05

Регистрация: 20.10.2015
Сообщения: 4980
mormolad, ты противоречить сам себе.
Хочешь создать наиболее дешёвый и простой вариант? При этом лезешь в такие дебри и закоулки, что будет явно не просто, поэтому и не интересно большинству.
Не изобретай велосипед, всё уже давно изобретено.
Например реле соноф - имеют даже датчики температуры и влажности.
Одним прибором можно управлять световым циклом и одновременно получать параметры в боксе. И всё это удалённо через интернет.
Вот это да, вариант просто и недорог, при этом интуитивно понятно и уже готовое заводское изделие

_________________
Как идеология "Земли" способна победить идеологию "Огня"
Стройрепорт бокс с водяным охлаждением с керамическими бездрайверными LED-матрицами
Гроубокс в кладовке. Стройрепорт
Аэроведро с капельным поливом
Задумка по стелс компакту адаптивно-следящему саморегулирующемуся настенному
Мокрый кальябонг
Стройрепорт. Бокс для бро propanbutan


 Профиль Найти сообщения пользователя Галерея  
Ответить с цитатой
СообщениеДобавлено: 08.08.19 11:42


Регистрация: 02.07.2007
Сообщения: 1789
[quote="Baraka82 3.8
хм.....тот же sonoff будет в 2 раза дороже при том же функционале=)
согласен, дебри ещё те, и многим может и будет неинтересен процесс....но. в случае успеха, результат заинтересует больше людей=)
на выходных постараюсь выложить скрипт для ведения файла телеметрии по температуре и влажности......тоесть можно будет посмотреть изменение параметров в течении продолжительного времени......


 Профиль Найти сообщения пользователя Галерея  
Ответить с цитатой
СообщениеДобавлено: 08.08.19 12:08

Регистрация: 27.10.2017
Сообщения: 1299
Orange Pi будет поудобней, там полноценный линукс, wi-fi для интернета уже встроен, втыкаешь вебку в USB, и любые датчики/релюхи, и стоит это всё ~500 рублей

_________________
новый репорт, 15 5,5 кустов на 0.4 м2, харвест


 Профиль Найти сообщения пользователя  
Ответить с цитатой
СообщениеДобавлено: 08.08.19 12:40

Регистрация: 20.10.2015
Сообщения: 4980
mormolad, результат не заинтересует большинство в силу своей сложности.
Соноф = простота. Твой вариант = ебля и танцы с бубном.
Имея ноль познаний в данной сфере ты сам что выбрал бы - готовое заводское изделие, пусть и дороже, или самоделки с геморройный настройкой, скриптом и прочим сексом

_________________
Как идеология "Земли" способна победить идеологию "Огня"
Стройрепорт бокс с водяным охлаждением с керамическими бездрайверными LED-матрицами
Гроубокс в кладовке. Стройрепорт
Аэроведро с капельным поливом
Задумка по стелс компакту адаптивно-следящему саморегулирующемуся настенному
Мокрый кальябонг
Стройрепорт. Бокс для бро propanbutan


 Профиль Найти сообщения пользователя Галерея  
Ответить с цитатой
СообщениеДобавлено: 08.08.19 13:31


Регистрация: 02.07.2007
Сообщения: 1789
Baraka82,
Цитата:
так скажем что бы практически любой человек дружащий с компом и пояльником мог собрать нужный ему девайс для его нужд

я же в самом начале оговорился=)

тем более что пол года назад я про всю эту есп`секту толком и не слыхивал......но выбрал именно этот путь=)....хотя как временное решение выбрал простой суточный таймер=)

да и расматриваю пока только концепт, который может измениться......

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


 Профиль Найти сообщения пользователя Галерея  
Ответить с цитатой
СообщениеДобавлено: 08.08.19 13:42
Аватара пользователя

Регистрация: 30.12.2007
Сообщения: 818
Ох, сорян...

Я-то думал что тут, как это написано в первом посте - "обсуждается концепт".

А тут на самом деле один до*уя умный пионЭр, который узнал про существование микроконтроллеров - и даже один - NodeMCU - себе уже купил - хочет всем продемонстрировать собственную крутость в составлении концептов - и в советах не нуждается. :elk:

Ну что же, как говорится - ̶у̶л̶ы̶б̶о̶к̶ ̶т̶е̶б̶е̶ ̶д̶е̶д̶ ̶М̶а̶к̶а̶р̶ ой - удачи тебе, чувак, в набивании собственных синяков! :mrgreen:


 Профиль Найти сообщения пользователя Галерея  
Ответить с цитатой
СообщениеДобавлено: 08.08.19 13:50
Аватара пользователя

Регистрация: 13.07.2011
Сообщения: 2528
Страдивари делал скрипки для лохов ,..а барабаны для настоящих пацанов © :notice:
Не а че пусткай будет тема ! На скриптах в том числе ...сложности в основном завязаны на опыте . если его нет - то его нет( :lol: капитан очевидность ) ... У нас есть и те для кого все впервые свими руками , мозгами ...я например в своё время хотел пиздить газ засчет смартфона . долгая история ...мнеб тогда такой карифей был бы в помощь


 Профиль Найти сообщения пользователя Галерея  
Ответить с цитатой
СообщениеДобавлено: 08.08.19 14:07

Регистрация: 20.10.2015
Сообщения: 4980
Аналогичная тема уже была, только на ардуине.
Успешно загнулась.
И эта так же само успешно загнётся.

Бро, поверь мне как инженеру АСУТП - чем проще, тем надёжнее. Если для успешного грова достаточно таймера - нет смысла городить контроллеры и скрипты.

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

_________________
Как идеология "Земли" способна победить идеологию "Огня"
Стройрепорт бокс с водяным охлаждением с керамическими бездрайверными LED-матрицами
Гроубокс в кладовке. Стройрепорт
Аэроведро с капельным поливом
Задумка по стелс компакту адаптивно-следящему саморегулирующемуся настенному
Мокрый кальябонг
Стройрепорт. Бокс для бро propanbutan


 Профиль Найти сообщения пользователя Галерея  
Ответить с цитатой
СообщениеДобавлено: 08.08.19 18:45


Регистрация: 02.07.2007
Сообщения: 1789
Baraka82, коллега не разделяютвоего пессимизма в данном вопросе.....тем более, как инженер АСУТП, ты должен знать что весь вопрос по итогу будет зависеть от качества "Руководсва пользования"=) а для качества нужен фитбек.


 Профиль Найти сообщения пользователя Галерея  
Ответить с цитатой
СообщениеДобавлено: 08.08.19 19:30

Регистрация: 20.10.2015
Сообщения: 4980
mormolad, ты сталкивался с удаленной поддержкой автоматизированных систем?
Построенных на контроллерах?

Я как то будучи молодым инженером (год так 2005) зашёл в кабинет главного инженера и увидел на столе монтажную панель с релейкой. Шеф подрабатывал, делая частным образом заказы.
Вот я и поинтересовался, а почему не контроллер, схема ведь будет проще. На что он мне ответил - да, сама схема может и проще, но поддержка потом весь мозг вытрахает.
Релейку собрал, схему приложил и идите нафиг, любой больменее электрик разберётся и исправит.
А если слетел скрипт, какую заумнейшую инструкцию не напиши, один фиг всегда найдется клиент, из за которого придется ехать и собственноручно бекапить программу и перезапускать контроллер.
Потом с таким же столкнулся, работая на железной дороге. Установили новейшую систему энергодиспетчерского телеуправления и телесигнализации.
Я для диспетчеров расписал подробнейшую инструкцию с картинками, скриншотами, чтоб меня меньше дёргали по пустякам. И все равно из 13 диспетчеров 5 человек так и не освоили элементарного.

А ты говоришь что просто. Это оно специалистам просто, кто в этой теме живёт

_________________
Как идеология "Земли" способна победить идеологию "Огня"
Стройрепорт бокс с водяным охлаждением с керамическими бездрайверными LED-матрицами
Гроубокс в кладовке. Стройрепорт
Аэроведро с капельным поливом
Задумка по стелс компакту адаптивно-следящему саморегулирующемуся настенному
Мокрый кальябонг
Стройрепорт. Бокс для бро propanbutan


 Профиль Найти сообщения пользователя Галерея  
Ответить с цитатой
СообщениеДобавлено: 08.08.19 19:44


Регистрация: 02.07.2007
Сообщения: 1789
Baraka82, но 8 то освоили=) и это главное......
согласен что итоговое решение не подойдёт 100% пользовотелей, тем более что манетизация изначально не есть сама цель, а в случае успеха приятный бонус......пока всё завязанно на интузеазме, моём и тех кого это заинтересует =)
Цитата:
mormolad, ты сталкивался с удаленной поддержкой автоматизированных систем?
Построенных на контроллерах?
по сути это моя основная обязанность, только не удалённо а непосредственно на объекте, в силу особенностей построения информационной безопасности


 Профиль Найти сообщения пользователя Галерея  
Ответить с цитатой
СообщениеДобавлено: 08.08.19 19:50
Аватара пользователя

Регистрация: 30.12.2007
Сообщения: 818
Baraka82, но тут же кстати было дело - кто-то мутил более сложные системы, с контролем растворов... но это по-моему было до 15-го года (ваша регистрация) - хотя возможно вы - "реинкарнация" - или просто видели эти обсуждения.

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


 Профиль Найти сообщения пользователя Галерея  
Ответить с цитатой
СообщениеДобавлено: 08.08.19 19:51


Регистрация: 02.07.2007
Сообщения: 1789
пока суть да дело выложу примет скрипта но уже для 2х датчиках, один DHT11, другой DHT22
load('api_config.js');
load('api_rpc.js');
load('api_dht.js');
load('api_timer.js');
load('api_mqtt.js');

let pinDht22 = 2;
let pinDht11 = 4;
let dht22 = DHT.create(pinDht22, DHT.DHT22);
let dht11 = DHT.create(pinDht11, DHT.DHT11);

let topicTemp11 = null;
let topicHum11 = null;
let msgTemp11 = null;
let msgHum11 = null;

let topicTemp22 = null;
let topicHum22 = null;
let msgTemp22 = null;
let msgHum22 = null;

Timer.set(1000, true, function() {

print('Temperature22:', dht22.getTemp());
topicTemp22 = 'Temperature22';
msgTemp22 = JSON.stringify(dht22.getTemp());


print('Humidity22:', dht22.getHumidity());
topicHum22 = 'Humidity22';
msgHum22 = JSON.stringify(dht22.getHumidity());

MQTT.pub(topicTemp22, msgTemp22, 0);
MQTT.pub(topicHum22, msgHum22, 0);


print('Temperature11:', dht11.getTemp());
topicTemp11 = 'Temperature11';
msgTemp11 = JSON.stringify(dht11.getTemp());


print('Humidity11:', dht11.getHumidity());
topicHum11 = 'Humidity11';
msgHum11 = JSON.stringify(dht11.getHumidity());

MQTT.pub(topicTemp11, msgTemp11, 0);
MQTT.pub(topicHum11, msgHum11, 0);

}, null);

// MQTT.sub('Temperature', function(conn, topicTemp, msgTemp) {
// print('Topic:', topicTemp, 'message:', msgTemp);
// }, null);

// MQTT.sub('Humidity', function(conn, topicHum, msgHum) {
// print('Topic:', topicHum, 'message:', msgHum);
// }, null);

если сравнить первый пример и втрой то можно догадаться как дабавлять датчики DHT-типа на модуль.....ограниченно количеством gpio-контактами

Добавлено спустя 11 минут 46 секунд:
dualseeker,
Цитата:
А если речь идёт о системе - то она должна быть (а) дуракоустойчивой и (б) надёжной, это правда.

двойное резервирование=) но от дурака ничего не спасёт.....


 Профиль Найти сообщения пользователя Галерея  
Ответить с цитатой
СообщениеДобавлено: 10.08.19 12:21


Регистрация: 02.07.2007
Сообщения: 1789
и так, пример скрипта для ведения лог файла 2х датчиков (DHT11 и DHT22)
'use strict';
let mqtt = require('mqtt'); // подключем модуль для mqtt
let fs = require('fs'); // модуль для работы с файловой системой
let format = require('node.date-time'); //модуль для использования даты и время
let url = 'mqtt://1.1.1.1:1883'; //ip mqtt-брокера
let temperature11 = null; // переменные для хранения показаний датчиков
let temperature22 = null;
let humidity11 = null;
let humidity22 = null;
let text = null; // переменная для хранения текста на вывод в консоль и запись в лог файл

let client = mqtt.connect(url, {username: 'fakeEpd', password: 'fakeEpd'}); //подключение к mqtt брокеру
console.log('== mqtt started ==')
client.on('connect', function () {
console.log('mother connected');
client.subscribe('Temperature11'); // здесь мы подписываемся на нужные нам сообщения от датчиков
client.subscribe('Humidity11');
client.subscribe('Temperature22');
client.subscribe('Humidity22');
});
client.on('close', function () { // надпись если нет подключения к брокеру
console.log('mother DISCONNECT');
});

function onMqttMessage(topic, message) {
if (topic === 'Temperature11') { // топик сравнивается, если температура с первого датчика то записывается
temperature11 = message;
}else if (topic === 'Humidity11') { // топику сравнивается, если влжн с первого датчика то записывается
humidity11 = message;
}else if (topic === 'Temperature22') { // по анологи с первым но для второго
temperature22 = Math.round(message); // для датчиков DHT22 лучше произвести округление до целого, будет нагляднее
} else if (topic === 'Humidity22') {
humidity22 = Math.round(message);
}
};

function logLoop() { // сборка текста для вывода на экран и в лог фаил
let text='';
text += new Date().format('d-M-Y HH:mm') + '\r\n\n';
text += 'температура 1: ' + temperature11 + ' гр. С' + '\r\n';
text += 'влажность 1: ' + humidity11 + ' %' + '\r\n\n';
text += 'температура 2: ' + temperature22 + ' гр. С' + '\r\n';
text += 'влажность 2: ' + humidity22 + ' %' + '\r\n\n';
console.log(text); //вывод в консоле
fs.appendFileSync('log1.txt', text + '\n'); //запись в фаил
};

setInterval(logLoop, 1 * 1000); // задаём интервал для записи в лог файла и вывода в консоль
client.on('message', onMqttMessage); // срабатывает при появлении нового сообщения в брокере

module.exports = client;

в итоге у нас есть мониторинг температуры и влажности в двух точках
543595

а так же лог файл для хранения данных
543594


Последний раз редактировалось 8787447462 11.08.19 07:57, всего редактировалось 1 раз.

 Профиль Найти сообщения пользователя Галерея  
Ответить с цитатой
СообщениеДобавлено: 15.08.19 00:41


Регистрация: 02.07.2007
Сообщения: 1789
и так, пока нет колл-бека, будем выкладывать функциональные блоки.....
конечно удобно поднять серверную часть на какой-нибудь распбери, но разницы в коде пока нет, так что данное решение подойдёт и для обычного компа.
сегодня суточный таймер включения выключения света, плюс управление с телефона.
и так нам понадобиться из железа:
- модуль NodeMCU или любой другой подобный
- реле для ардуины
- ПС или одноплатник

запуск:
-на компе долже быть установленa node.js
скачать можно от сюда https://nodejs.org/ru/

-создаём в корневом каталоге папку например "growbox" и в этой папке через командную строку устанавливаем пакеты для нашего скрипта: npm install
-делаем фаил start.bat, в нем прописываем "node timerDayNight.js" (следать можно создав текстовый фаил и потом при переменовании поменять расширение txt на bat)
-создаём timerDayNight.js (следать можно создав текстовый фаил и потом при переменовании поменять расширение txt на js)
-код скрипта на сервере:
'use strict';
let mqtt = require('mqtt'); // подключем модуль для mqtt
let format = require('node.date-time'); //модуль для использования даты и время
let url = 'mqtt://какойто.cloudmqtt.com:17802'; //ip mqtt-брокера

let hourSettingOn = '12'; //час включения
let minuteSettingOn = '00'; // минуты включения
let hourSettingOff = '00'; //час отключения
let minuteSettingOff = '00'; // минуты отключения

let client = mqtt.connect(url, {username: 'ваше имя', password: 'вашь пороль'}); //подключение к mqtt брокеру
console.log('== mqtt started ==')
client.on('connect', function () {
console.log('mother connected');
});
client.on('close', function () { // надпись если нет подключения к брокеру
console.log('mother DISCONNECT');
});

function timeOnOff() {
let hourNow = new Date().format('HH');
let minuteNow = new Date().format('MM');
if (hourNow.toString() == hourSettingOn || minuteNow.toString() == minuteSettingOn) {
client.publish('rele', 'off');
} else if (hourNow.toString() == hourSettingOff || minuteNow.toString() == minuteSettingOff) {
client.publish('rele', 'on');
};
};

setInterval(timeOnOff, 1 * 1000);
module.exports = client;

-так же на компе должно быть утановлено mongoose os, в головном посте есть как это сделать.
-заходим в mongoose os и запускаем команду mos clone https://github.com/mongoose-os-apps/demo-js timer
-в папке с:/mos/timer в файле mos.yml вставляем следующее:
author: mongoose-os
description: A JS-enabled demo Mongoose OS firmware
# arch: PLATFORM iot.eclipse.org
version: 1.0
manifest_version: 2017-05-18
libs_version: ${mos.version}
modules_version: ${mos.version}
mongoose_os_version: ${mos.version}

config_schema:
- ["mqtt.server", "какойто.cloudmqtt.com:17802"]
- ["mqtt.enable", true]
- ["mqtt.user", "*******"]
- ["mqtt.pass", "*******"]
- ["i2c.enable", true]
- ["app.pin", "i", 2, {title: "GPIO pin a sensor is attached to"}]
- ["app.pin", "i", 4, {title: "GPIO pin a sensor is attached to"}]
- ["wifi.sta.enable", true]
- ["wifi.sta.ssid", "имя точки доступа"]
- ["wifi.sta.pass", "пороль"]

tags:
- js

filesystem:
- fs

libs:
- origin: https://github.com/mongoose-os-libs/boards
- origin: https://github.com/mongoose-os-libs/wifi
- origin: https://github.com/mongoose-os-libs/dht
- origin: https://github.com/mongoose-os-libs/mqtt
- origin: https://github.com/mongoose-os-libs/mjs
- origin: https://github.com/mongoose-os-libs/rpc-service-config
- origin: https://github.com/mongoose-os-libs/rpc-service-fs
- origin: https://github.com/mongoose-os-libs/rpc-uart

- обратите внимание что "mqtt.server", "какойто.cloudmqtt.com:17802" & "mqtt.user", "*******" & "mqtt.pass", "*******" прописываем сами с https://www.cloudmqtt.com/ следуя инструкции ниже
-заходим на https://www.cloudmqtt.com/ и согласно инструкции на http://esppower.ru/mqtt-android/ проходим до пункта номер 7, так на будут предоставлены данные нашего брокера
- в папке c:/mos/timer/fs/ в файл init.js вставляем следующие:
load('api_config.js');
load('api_rpc.js');
load('api_dht.js');
load('api_timer.js');
load('api_mqtt.js');
load('api_gpio.js');

GPIO.set_mode(12, GPIO.MODE_OUTPUT);
let msgRele = null;
let topicRele = null;
let onRele = null;

MQTT.sub('rele', function(conn, topicRele, msgRele) {
print('Topic:', topicRele, 'message:', msgRele);

if (msgRele === 'on') {
GPIO.write(12, 0);
print(msgRele);
} else if (msgRele === 'off') {
GPIO.write(12, 1);
print(' ', msgRele);
} else {
print('faile')
};
}, null);

-заходим в mongoose os, конектим модуль, выставляем сом порт и тип модуля, в командной страке программы выполняем команду "mos build" а затем "mos flash"
-остальсь скачать какойнибудь MQTT-дашьборд на телефон, я пользуюсь MQTT Dash (IoT, Smart Home) и настроить топики
-на телефоне открываем дашборд и создаём новое подключение
544499

- настраиваем поля со звёздочкой
544500544501

- жмакаем сохранить
- настраиваем "плитку" включения света и таймера, так же жмакаем плюсик , выбирает тип "переключатель/кнопка" , поле имя "выключатель света", ставим галочку "включить публикацию", в строке "Топик(pub) - ..." пишем "rele", поле "Вкл" "on", поле "Выкл" "off", иконки настраивайте по вкусу
- настаиваем "плитку" коллбека от nodeMCU о вкл/выкл, жмакаем плюс, тип "переключатеь/кнопка", имя
"любое понятное", на этот раз страка Топик(sub) - "rele", поле "Вкл" "on", поле "Выкл" "off", иконки настраивайте по вкусу
- теперь на компе запускаем start.bat, а в дашь борде на телефоне нажимаем кнопку включения. таймер запущен....если я нормально составил инструкциюб, можете попробоват по включать/выключать свет плиткой..... вторая плитка будет менятся если нормально натроены иконки
-в итоге на телефоне будет
544504

п.с. время настраивается в скрипте который крутится на сервере, помечено "час включения", "минуты включения", час отключения", "минуты отключения" (в будующем хочу сделать настройку через дашборд)


в итоге за ~200руб у нас суточное реле времени, с отображением на телефоне ми возможностью ручками отключить


 Профиль Найти сообщения пользователя Галерея  
Ответить с цитатой
СообщениеДобавлено: 15.08.19 07:27


Регистрация: 02.07.2007
Сообщения: 1789
проэкт для меня амбициозный, ставлю дед-дайл 15.11.19. пойдёт первая посылка, но может быть задержка по событиям от меня не зависящим ..... форм фактор коробочка к которой нужно прикрутить проводки ваших устроств и произвести настройки в телефоне по инструкции

ТЗ номер 1 :
1выходы по таймерам:
- свет
- подогрев воздуха бокса перед утром, чтобы растения не стрессовались от быстрого прогрева лампой и снижения из-за этого влажности воздуха
- вечерние 730нм
- полив
- ночное снижение скорости внешней вентиляции и обдува растих
- не входит фотографирование TimeLapse (если эта коробочка у вас будет, то на вашем ПК можно будет реализовать это, так как все инструменты будут у вас установлены и настроены)
- корректировка pH
от себя:
так же есть задумка реализовать настройки и таймер энерго не зависимый, варианты настроек: устанавливать по времени суток или при отключении продолжать с того места где остановился при потере электричества....
управление с телефона примерный вид ....
544556
один минус, интернет всётаки будет нужет для управления, но можно настроить и локально, но самим установить mosquitto по инструкции, не сложнее установки любой другой программы.
спс за задачу ilia1982, отпишись....

ТЗ номер 2: жду от вас

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


 Профиль Найти сообщения пользователя Галерея  
Ответить с цитатой
СообщениеДобавлено: 15.08.19 08:31
Аватара пользователя

Регистрация: 13.07.2011
Сообщения: 2528
mormolad, :friend:
Слежу за темой ...
Ph ты планирешь только "видить", Или ещё и контрить ?
Давай авт. растворный узел ? От трёх и более перистальтических насосах...штук 5..7( ph+,ph-, три макроэлимента и ещё каких нибудь стимуляторов )... И надо подумать мешалку для каждой колбы с плюшками- удобряшками


 Профиль Найти сообщения пользователя Галерея  
Ответить с цитатой
Показать сообщения за:  Сортировать по  

Начать новую тему 
Ответить на тему 
 Страница 1 из 13  [ Сообщений: 303 ]  на страницу... 1  2  3  4  5 ... 13  

   Похожие топики   Автор   Ответы   Просмотры   Последнее сообщение 
В этой теме нет новых непрочитанных сообщений. Автоматизация PH

в форуме Я спросил у ясеня...

NaSa123321

9

365

05.12.20 18:24

Mik22 Перейти к последнему сообщению

В этой теме нет новых непрочитанных сообщений. Автоматизация полива

[ на страницу...: 1, 2 ]

в форуме Я спросил у ясеня...

BioResearcher

27

879

27.10.23 22:39

Kanabinol82 Перейти к последнему сообщению

В этой теме нет новых непрочитанных сообщений. Волшебный сорт/LED160w/64*67*45/Автоматизация grow box за копейки/STROG

в форуме Grow LED

Grigrov

20

1939

10.04.22 08:54

dedu Перейти к последнему сообщению

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

в форуме Гроубокс

ToroGrowshop

6

1539

31.01.20 12:38

propellerbrown Перейти к последнему сообщению



Журнал вахтёра

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения

Перейти:  
Powered by phpBB® Forum Software © phpBB Group

M