73

Теплица на Ардуино-Мега. Часть 7.

Серия "Умная" теплица на Ардуино-Мега

Для тех, кто интересуется моим рассказом о создании умной теплицы - продолжение.

20 мая. Теплица обзавелась передачей данных о своем состоянии. Что сделано:

1. На Raspberry-Pi установлены веб-сервер Apache, MySQL, PHP. Спасибо за помощь коллеге по работе - Евгению.

2. Raspberry-Pi подключено дома к роутеру, интернет имеет статический IP-адрес.

3. Сын написал программу, которая будучи запущенной на Распберри-Пи, принимает UDP пакет, содержащий массив из 16 элементов с данными по теплице и записывает его в базу данных.

4. К Ардуино Мега по Serial порту подключен ESP8266 LoLin NodeMCU, который также прошивается из Arduino-IDE. Скетч пока тестовый, самый простой: http://ideone.com/q3GpDC

5. К скетчу теплицы добавлена функция отправки данных, измененный скетч для теплицы: http://ideone.com/EUS6W5
6. @MDIMAN, спасибо за написанную страницу, на которой отображаются данные о теплице, получаемые из базы данных.

Совсем короткое видео, как теперь все выглядит, можно посмотреть тут.

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

Теперь "приключения электроника" с подключением ESP 8266:

1. Я полагал, что сериал порт надо подключать так: Rx-Tx. Ан нет, оказалось, что клемма Rx ESP должны быть подключены к клемме Rx Меги. То же и с Тх.

2. Поскольку плата ESP8266 LoLin NodeMCU подключается для программирования по USB, а на плате присутствует стабилизатор трехвольтовый, я решил подключить 5в для питания устройства к клемме Vin. К тому же в разных статьях, которые я читал, так и советовали. Опять не то. Процессор греется, плата не работает. Подал 5в через разъем USB, все хорошо. Может с платой что-то не то? Так и поставил, отрезал кусок от шнура USB и запитал от 5в через него.

3. Несмотря на многократное тестирование, на месте плата отказалась цепляться к вайфаю. Включаю точку доступа на смартфоне - цепляется, а к роутеру ни в какую. Предположил, что дело в названии точки доступа. Что-то вроде TP_Link-600 (точно цифры не помню). Изменили название точки доступа в роутере, все заработало. Я подумал, что виновато тире, сын говорил, что нижнее подчеркивание, но, поскольку избавились сразу и от того и от этого, сказать точно не могу, в чем причина была.

4. Интернет там не очень, DSL-модем при плохой телефонной линии, пинги теряются. Соответственно и UDP пакеты тоже, иногда несколько подряд. Но поскольку они идут раз в 10 сек, то даже одного из 10 пакетов достаточно, чтобы получать актуальную информацию, зато никаких зависаний.


Какие вскрылись проблемы за это время: Включение обогревателя в 1200Вт оказалось непосильной ношей для Ардуиновского реле. И вовсе оно не 10А. Временно поставил каскадом еще реле, на 30А. Сейчас пытаюсь сколхозить управление на симисторе.

Arduino & Pi

1.5K постов20.9K подписчика

Правила сообщества

В нашем сообществе запрещается:

• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)

• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском

• Выкладывать код прямо в посте - используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)

• Рассуждать на темы политики

• Нарушать установленные правила Пикабу

Вы смотрите срез комментариев. Показать все
Автор поста оценил этот комментарий
Пускатель вам в помощь. Дорого но надёжно
раскрыть ветку (14)
Автор поста оценил этот комментарий
котактор дешевле.
раскрыть ветку (13)
0
Автор поста оценил этот комментарий

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

раскрыть ветку (12)
0
Автор поста оценил этот комментарий

Вчера был первый пуск в теплице, холодная ночь выявила слабые места. На подогреве воздуха стоял обогреватель на 2кВт. При его работе симистор грелся очень сильно хотя был установлен на небольшой радиатор, думал до утра не доживет, но при утреннем осмотре оборудования порадовал своей живучестью ) При включении один раз экран заполнился крокозябрами, но при перезагрузке все нормализовалось. Вывод: для надежной работы нагревателя буду менять симистор на триак ВТА41-600. У меня вопрос: можно ли в скетче как-то предусмотреть перезагруз ардуино при зависании?

раскрыть ветку (11)
Автор поста оценил этот комментарий
При включении один раз экран заполнился крокозябрами

Ни разу такого не видел. Может проблемы питания? Типа бросок при включении.

можно ли в скетче как-то предусмотреть перезагруз ардуино при зависании?

Несмотря на то, что зависания ни разу не случилось, (да и с чего бы ему взяться?), я думал об этом. Если плата зависла, то программа стоит, и плата сама себя не перезагрузит. Что-то другое должно за зависанием следить. Поэтому я предусмотрел такую возможнось, чтобы ESP следило за Ардуино. В крайнем выложенном мной скетче, в программе для ESP это предусмотрено - если долго не будут приходить данные по сериал порту от ардуино - то ESP нажмет ресет. Правда я провод еще не подключал и не тестировал. Нужно рассмотреть все варианты.

раскрыть ветку (10)
0
Автор поста оценил этот комментарий

Зависания могут возникнуть по разным причинам( влияния силового блока,наводок от релюшек, помехи по питанию). У моей тещи нет интернета, да и у ее соседей тоже не оказалось, так что ESP в моем случае отпадает. Вот есть вариант на 555 таймере сделать https://github.com/mattbornski/Arduino-Watchdog-Circuit

раскрыть ветку (9)
0
Автор поста оценил этот комментарий

Помогите пожалуйста код в скетч вставить:

int pulsePin = 8;

unsigned long lastHeartbeat = 0;


unsigned long lastUptimeReport = 0;



void heartbeat() {


// Sink current to drain charge from watchdog circuit


pinMode(pulsePin, OUTPUT);


digitalWrite(pulsePin, LOW);


delay(300);


// Return to high-Z


pinMode(pulsePin, INPUT);


lastHeartbeat = millis();


Serial.println("Heartbeat sent");


}



// the setup routine runs once when you press reset:


void setup() {


// initialize serial communication at 9600 bits per second:


Serial.begin(9600);


Serial.println("Arduino reset");



// Send an initial heartbeat.


heartbeat();


}



// the loop routine runs over and over again forever:


void loop() {


// Check for serial inputs. If found, send heartbeat.


if (Serial.available()) {


// Clear input buffer


while (Serial.available()) {


Serial.read();


}


heartbeat();


}


unsigned long uptime = millis();


if ((uptime - lastUptimeReport) >= 5000) {


// It has been at least 5 seconds since our last uptime report.


Serial.println("Uptime: " + String((uptime - (uptime % 5000)) / 1000) + " seconds (" + String((uptime - lastHeartbeat) / 1000) + " seconds since last heartbeat)");


// Pretend we did it exactly on the 5 second mark so we don't start slipping.


lastUptimeReport = (uptime - (uptime % 5000));


}


// delay in between loops


delay(100);


}

раскрыть ветку (8)
0
Автор поста оценил этот комментарий

А это для чего? Оно, кажется пишет чего-то в буфер сериал порта, потом считывает. И чего-то с 8 пином делает. Это для перезагрузки? Если плата повиснет,  то и это работать не будет, как мне кажется. Ну и тут используется сериал порт 0, значит нельзя будет его для другого использовать - например отладкой заниматься. Чтобы этот код встроить, надо использовать другой пин, этот у меня занят. Ну и сериал порт другой, 2-й, что-ли. На 1-м у меня отправка данных на ESP (типа Serial2.read(), Serial2.available() и т.д.). А в остальном - вроде все. Только мне непонятно, как там переменные объявляются и т.д. Попробуйте этот код сам по себе. Он вообще работает? Если работает, значит встроится. То что в void setup() - в конец void setup(), то что до void setup() - перед void setup(), то что в void loop(), в конец void loop().
Правда, на мой взгляд, это бред.

раскрыть ветку (7)
Автор поста оценил этот комментарий

Я так понял этот код для того чтобы схема на NE555 видела работу ардуино по тактовым импульсам, как они пропадают т.е. плата зависла, схема дает сигнал на ресет. 8й пин естественно переименовывается на другой, через него то как раз и определяется что ардуина не висит.

раскрыть ветку (6)
0
Автор поста оценил этот комментарий

Гм. Я бы присобачил еще одну ардуину, уно например, или нано, прицепил бы по сериал порту к этой ардуине и пусть друг-друга контролируют и перезагружают. А еще бы все равно прицепил бы связь ко второй ардуине - модем хотя бы, ну или хоть по смс - отдачу данных по запросу. А тут - ну не понимаю как там и что. Как бы она от этого кода висеть не начала.)

раскрыть ветку (5)
Автор поста оценил этот комментарий

Еще одну ардуину цеплять ради того чтобы оня следила за зависанием другой... мне кажется это не альтернатива копеечному таймеру. Схемка простенькая, я ей уже дополнил плату в программе layout, кому интересно ссылку обновил https://yadi.sk/d/CX-qLkIo3JcM5j. Осталось только с кодом разобраться. А рассылку по СМС можно и на основной ардуинке сделать... может я ошибаюсь

раскрыть ветку (4)
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества