Arduino и Ethernet Shield W5100
|
|
|
Администратор
2015-12-08 16:13 #1
Arduino и Ethernet Shield W5100 обсуждение цикла статей.
Часть 1 - Начало проекта. Часть 2 - Добавлено динамическое обновление данных и работа с SD картой. Часть 3 - Добавлено оформление страницы. Часть 4 - Добавлено управление реле. Часть 5 - Добавлен регулятор мощности нагрузки в виде ползунка. NEW!!! Часть 6 - Реализация включения реле по таймеру
Профиль
|
|
|
|
ilnar
2016-01-17 20:11 #92
День добрый всем. Проект вроде работает, на веб морде значения бегают, релюшки щелкают, на газ реагирует, пищалка пищит.Только стоит веб страницу закрыть все перестает работать,не пищит и не щелкает...Никто не сталкивался с этим?
Профиль
|
|
|
AspiD
2016-01-17 20:16 #93
Цитата ilnar ( ) День добрый всем. Проект вроде работает, на веб морде значения бегают, релюшки щелкают, на газ реагирует, пищалка пищит.Только стоит веб страницу закрыть все перестает работать,не пищит и не щелкает...Никто не сталкивался с этим? 9 к 1, что не в том месте цикла работаете с пищалкой =)
Профиль
|
|
|
ilnar
2016-01-17 20:39 #94
Цитата AspiD ( ) 9 к 1, что не в том месте цикла работаете с пищалкой =) все может...время будет может посмотрите.
Профиль
|
|
|
AspiD
2016-01-17 20:49 #95
ilnar, по какому событию должны релюшки щёлкать? и где это в коде с обработкой писка по газу?
Профиль
|
|
|
AspiD
2016-01-17 21:20 #96
Код if (StrContains(HTTP_req, "ajax_flame")) { client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println("Connection: keep-alive"); client.println(); int smoke_gas = 0; //пин на котором подключен MQ-2 int sensorReading = analogRead(smoke_gas); int chk; if (sensorReading > 40) { digitalWrite (2, HIGH); tone(9, 500, 500); } else { digitalWrite (2, LOW); } client.print(sensorReading); client.println(":"); client.print(t); client.print(":"); client.print(ts); client.print(":"); client.print(h); client.print(" :"); client.print(pa); client.print(" :"); client.print((digitalRead(2)) ? "1" : "0"); client.print(":"); client.print((digitalRead(3)) ? "1" : "0"); client.print(":"); client.print((digitalRead(5)) ? "1" : "0"); client.print(":"); client.print((digitalRead(6)) ? "1" : "0"); } этот блок кода выполняется только когда скрипт из браузера этого попросит. в оригинале - 1 раз в секунду. чтобы условие sensorReading>40 проверялось каждый проход цикла, его нужно перенести в начало loop. Код void loop() { if (analogRead(0) > 40) { digitalWrite (2, HIGH); tone(9, 500, 500); }else { digitalWrite (2, LOW); }
float h = dht.readHumidity(); float ts = dht.readTemperature(); float t = bmp.readTemperature(); float pa = bmp.readPressure()/133.322; и дальше...
Профиль
|
|
|
toto123
2016-01-17 21:31 #97
Цитата ilnar ( ) День добрый всем. Проект вроде работает, на веб морде значения бегают, релюшки щелкают, на газ реагирует, пищалка пищит. Доброго времени суток, форумчане. Я понимаю, что пищалка пищит именно в том месте где происходит событие: например загазованность или превышение или понижение температуры. Есть предложение этот контроль реализовать именно в том месте, где вэб морда запущена. Возможно ли вывести сигнал на колонки компьютера ? Как думаете ? А может подумать о том как по электронке реализовать отправку тревожного сообщения ?
Профиль
|
|
|
ilnar
2016-01-17 21:44 #98
Спасибо, работает. С остальным попробую сам разобраться:)
Профиль
|
|
|
AspiD
2016-01-17 22:22 #99
Цитата toto123 ( ) вывести сигнал на колонки компьютера дело 15ти минут =)
Цитата toto123 ( ) по электронке реализовать отправку тревожного сообщения ? а это не так просто, как хотелось бы =)
Профиль
|
|
|
wdesign
2016-01-18 14:24 #100
Может кто нибудь пояснить что делают вот эти две функции в скетче arduino: "StrClear", "StrContains"?
Профиль
|
|
|
AspiD
2016-01-18 17:06 #101
wdesign, попробуй угадать =)уверен, что не ошибёшься =)
Профиль
|
|
|
wdesign
2016-01-18 18:13 #102
Цитата AspiD ( ) wdesign, попробуй угадать =)уверен, что не ошибёшься =) По имени логично что StrClear очищает строку, а StrContains? Алгоритм работы этих функций можете пояснить?
Профиль
|
|
|
AspiD
2016-01-18 18:21 #103
Цитата wdesign ( ) По имени логично что StrClear очищает строку, а StrContains? Алгоритм работы этих функций можете пояснить? conteins - переводится как "содержит". алгоритм strClear предельно просто. весь буфер забивает нулями. а strContains принимает две строчки и посимвольно ищет вторую в первой.
Профиль
|
|
|
wdesign
2016-01-18 23:05 #104
Выставлю и свой скетч на обозрение. Может кому будет полезен. Контроль температуры в квартире. Снимаются данные температуры и влажности с 4 датчиков DHT22. Желаемая температура поддерживается по датчику температуры в спальне. Гистерезис установлен 0.4 *С (например, желаемая температура 24 градуса, котёл включится когда температура будет ниже 23.8 и выключиться при температуре выше 24.2). Реле включает и выключает газовый котёл Baxi. Данные с датчиков выводятся на страницу в браузере. Подгрузка идет с помощью ajax. Обновление один раз в пять секунд. Отправка желаемой температуры в ардуино происходит с помощью GET запроса. Желаемая температура записывается в энергонезависимую память. При передаче числа происходит перезагрузка страницы (хочу тоже реализовать с помощью ajax, пока что так оставил, так как все работает).
Сообщение отредактировал wdesign - Понедельник, 2016-01-18, 23:08
Профиль
|
|
|
AspiD
2016-01-19 01:28 #105
wdesign, я б лучше читанул, как датчики на большом расстоянии общаются с ардуинкой =)
Профиль
|
|