Перейти к содержанию

Отопление и канализация


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

В связи с плохой погодой и отсутствием электричества на строй площадке, сижу кодю под ардуйню.
Контроллер для "Воды". Считает температуру с 14 точек + следит за канализационным колодцем.

#include <OneWire.h>
#include <DallasTemperature.h>
#include <SPI.h>
#include <Ethernet.h>

OneWire oneWire(3);
DallasTemperature ds(&oneWire);

const int ledPin3 = 13;
const int ledPin1 = 7;
const int ledPin2 = 8;

String readString;
char c;
byte mac[] = {0xDA, 0xAD, 0xBE, 0xEB, 0xFE, 0xFF};
IPAddress ip(192, 168, 0, 183);
EthernetServer server(80);

DeviceAddress sensor1 = {0x28, 0xA8, 0x3E, 0xF9, 0x05, 0x0, 0x0, 0x12};
DeviceAddress sensor2 = {0x28, 0xE6, 0xBD, 0x3B, 0x05, 0x0, 0x0, 0x13};
DeviceAddress sensor3 = {0x28, 0xA8, 0x3E, 0xF9, 0x05, 0x0, 0x0, 0x14};
DeviceAddress sensor4 = {0x28, 0xE6, 0xBD, 0x3B, 0x05, 0x0, 0x0, 0x15};
DeviceAddress sensor5 = {0x28, 0xA8, 0x3E, 0xF9, 0x05, 0x0, 0x0, 0x16};
DeviceAddress sensor6 = {0x28, 0xE6, 0xBD, 0x3B, 0x05, 0x0, 0x0, 0x17};
DeviceAddress sensor7 = {0x28, 0xA8, 0x3E, 0xF9, 0x05, 0x0, 0x0, 0x18};
DeviceAddress sensor8 = {0x28, 0xE6, 0xBD, 0x3B, 0x05, 0x0, 0x0, 0xC9};
DeviceAddress sensor9 = {0x28, 0xA8, 0x3E, 0xF9, 0x05, 0x0, 0x0, 0x20};
DeviceAddress sensor10 = {0x28, 0xE6, 0xBD, 0x3B, 0x05, 0x0, 0x0, 0x22};
DeviceAddress sensor11 = {0x28, 0xA8, 0x3E, 0xF9, 0x05, 0x0, 0x0, 0x23};
DeviceAddress sensor12 = {0x28, 0xE6, 0xBD, 0x3B, 0x05, 0x0, 0x0, 0x24};
DeviceAddress sensor13 = {0x28, 0xA8, 0x3E, 0xF9, 0x05, 0x0, 0x0, 0x25};
DeviceAddress sensor14 = {0x28, 0xE6, 0xBD, 0x3B, 0x05, 0x0, 0x0, 0x26};

void setup() {
Ethernet.begin(mac, ip);
server.begin();
pinMode(4, INPUT);
pinMode(5, INPUT);
pinMode(6, INPUT);
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
}
void loop() {
ds.requestTemperatures(); // считываем температуру с датчиков

EthernetClient client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
c = client.read();
if (readString.length() < 100) {
readString += c;
}
if (c == '\n') {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.println("<HTML>");
client.println("<HEAD>");
client.println("<meta http-equiv=\"Refresh\" content=\"4; url=/temperatura\" />");
client.println("<meta http-equiv=\"Content-Type\" content=\"application/vnd.wap.xhtml+xml; charset=utf-8\" />");
client.println("<link type=\"text/css\" rel=\"stylesheet\" href=\"http://rogelis.by/css/arduino.css\" />");
client.println("</HEAD>");
client.println("<BODY >");
client.println("<h1>Температуры</h1>");
client.println("Кухня: ");
client.println(ds.getTempC(sensor1));
client.println("C<br>");
client.println("Ванная: ");
client.println(ds.getTempC(sensor2));
client.println("C<br>");
client.println("Коридор: ");
client.println(ds.getTempC(sensor3));
client.println("C<br>");
client.println("Спальня: ");
client.println(ds.getTempC(sensor4));
client.println("C<br>");
client.println("Детская: ");
client.println(ds.getTempC(sensor5));
client.println("C<br>");
client.println("Баня: ");
client.println(ds.getTempC(sensor6));
client.println("C<br>");
client.println("Улица: ");
client.println(ds.getTempC(sensor7));
client.println("C<br>");
client.println("Чердак: ");
client.println(ds.getTempC(sensor8));
client.println("C<br>");
client.println("2 этаж: ");
client.println(ds.getTempC(sensor9));
client.println("C<br>");
client.println("Пол 1: ");
client.println(ds.getTempC(sensor10));
client.println("C<br>");
client.println("Пол2: ");
client.println(ds.getTempC(sensor11));
client.println("C<br>");
client.println("Пол 3: ");
client.println(ds.getTempC(sensor12));
client.println("C<br>");
client.println("Пол 4: ");
client.println(ds.getTempC(sensor13));
client.println("C<br>");
client.println("Радиаторы: ");
client.println(ds.getTempC(sensor14));
client.println("C<br>");
client.println();
client.println("<h1>Канализация</h1>");
if (digitalRead(4)) {
digitalWrite(ledPin1, HIGH);
client.println("<h3>1 кольцо заполненно</h3>");

}
else {
digitalWrite(ledPin1, LOW);
client.println("<h2>1 кольцо пусто</h2>");

}
if (digitalRead(5)) {
digitalWrite(ledPin2, HIGH);
client.println("<h3>2 кольцо заполненно</h3>");

}
else {
digitalWrite(ledPin2, LOW);
client.println("<h2>2 кольцо пусто</h2>");

}
if (digitalRead(6)) {
digitalWrite(ledPin3, HIGH);
client.println("<h3>Звони срочно "телефон службы откачки"</h3>");

}
else {
digitalWrite(ledPin3, LOW);
client.println("<h2>3 кольцо пусто</h2>");

}
client.println("</BODY>");
delay(1);
client.stop();
}
}
}
}
}

 

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

Присоединяйтесь к обсуждению

Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...