Код (Text): #include <SPI.h> #include <String.h> #include <Ethernet.h> #include "dht.h" #include "Wire.h" #include "Adafruit_BMP085.h" #include <LiquidCrystal_I2C.h> // ==================================================================================== // ========================Задаем данные сети========================================== byte mac[] = { 0xCA, 0xAF, 0x78, 0x1C, 0x13, 0x77 }; //mac - адрес ethernet shielda byte ip[] = { 192, 168, 0, 107 }; // ip адрес ethernet shielda byte subnet[] = { 255, 255, 255, 0 }; //маска подсети EthernetServer server(58798); //порт сервера int ledPin = 4; // указываем что светодиод будет управляться через 4 Pin String readString = String(30); //string for fetching data from address boolean LEDON = false; //изначальный статус светодиода - выключен // ==================================================================================== LiquidCrystal_I2C lcd(0x27,16,2); //#define DHTPIN A0 // пин для датчика DHT22 const unsigned char OSS = 0; // Oversampling Setting // ==================================================================================== DHT sensor = DHT(); Adafruit_BMP085 bmp; // ========================СТАРТУЕМ=================================================== // ========================Управляем св.диодом на 4-м пине============================ void setup(){ //запускаем Ethernet Ethernet.begin(mac, ip, subnet); //устанавливаем pin 4 на выход pinMode(ledPin, OUTPUT); //enable serial datada print Serial.begin(9600); Serial.println("Port Test!"); // Тестовые строки для отображения в мониторе порта Serial.println("GO!");// Тестовые строки для отображения в мониторе порта sensor.attach(3); // подключаем датчик температуры к 3 пину, барометр к A4, A5 и прочее bmp.begin(); delay(1000); lcd.init(); // Инициализация lcd lcd.backlight(); } // =================================================================================== void loop(){ // ========================ДАТЧИКИ================================================== sensor.update(); float t = sensor.getTemperatureInt(); float h = sensor.getHumidityInt(); Serial.println(t); Serial.println(h); float tdpa = bmp.readTemperature(); float Pa0 = (bmp.readPressure()); float Pa = (bmp.readPressure()/133.33);// переводим в мм.рт.ст. float Pa2 = (bmp.readPressure()/3386.582);// переводим в дм.рт.ст. delay(2000); lcd.setCursor(0, 0); // Устанавливаем курсор в начало 2 строки lcd.print("C="); lcd.setCursor(2, 0); lcd.print(bmp.readTemperature()); lcd.setCursor(8, 0); lcd.print("H="); lcd.print(sensor.getHumidityInt()); lcd.setCursor(12, 0); lcd.print("%"); lcd.setCursor(0, 1); lcd.print("Davlenie="); lcd.print(bmp.readPressure()/133.33); // =============Создаем клиентское соединение==================================== EthernetClient client = server.available(); if (client) { while (client.connected()) { if (client.available()) { char c = client.read(); //read char by char HTTP request if (readString.length() < 30) { //store characters to string readString.concat( c); } //output chars to serial port Serial.print( c); //if HTTP request has ended if (c == '\n') { //Проверяем включили ли светодиод? //Level=1 - включен //Level=0 - выключен if(readString.indexOf("Level=1") >=0) { //Включаем светодиод digitalWrite(ledPin, HIGH); // set the LED on LEDON = true; }else{ //Выключаем светодиод digitalWrite(ledPin, LOW); // set the LED OFF LEDON = false; } // =============Формируем HTML-страницу================================================= client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println(); client.println("<head> "); client.println("<meta http-equiv='Content-Type' content='text/html; charset=utf-8' /> "); client.println("<title> ::Arduino:: V1.1</title>"); client.println("</head> "); client.println("<body"); client.println("<hr />"); client.println("<h1> ::Упр.Arduino:: </h1>"); if (LEDON){ client.println("<form method=get name=LED><input type=radio name=Level value=1 CHECKED>Включить<input type=radio name=Level value=0>Выключить<input type=submit value=OK></form>"); client.println("<font size=’5′>LED-статус: "); client.println("<font size=’5′>Вкл."); }else{ client.println("<form method=get name=LED><input type=radio name=Level value=1>Включить<input type=radio name=Level value=0 CHECKED>Выключить<input type=submit value=OK></form>"); client.println("<font size=’5′>LED-статус: "); client.println("<font size=’5′>Выкл"); } //==============Вывод значений на web-страницу============================ client.println("<hr />");//линия===================================== client.println("Tемпература = "); //Температура с DHT 22 client.println(t); client.println(" *C"); client.println("<br> "); //перенос на след. строчку client.println("Влажность = "); //Влажность с DHT 22 client.println(h); client.println(" %\t"); client.println("<br> "); //перенос на след. строчку client.println("<hr />");//линия===================================== client.println("Давление = "); //давление с BMP 085 client.println(Pa); client.println(" mm.рт.ст."); client.println("<br> "); //перенос на след. строчку client.println("<hr />"); //линия===================================== client.println("Давление = "); //давление с BMP 085 client.println(Pa2); client.println(" in Hg"); client.println("<br> "); //перенос на след. строчку client.println("<hr />"); //линия===================================== client.println("Tемпература внутреняя = ");//температура с BMP 085 client.println(tdpa); client.println(" *C"); client.println("<br> "); //перенос на след. строчку client.println("<hr />"); //линия===================================== //==================================================================== client.println("</body></html>"); //очищаем строку для следующего считывания //==============Останавливаем web-client=============================== readString=""; client.stop(); //==================================================================== } } }}}
По i2c подключены к arduino uno v3: барометр (подключение брал здесь https://www.sparkfun.com/tutorials/253), датчик температуры DHT 11, и дисплей заказанный из Китая с шиной i2c. Подключал все используя картинки и описание с сайта http://robocraft.ru/blog/communication/780.html
Помогите на страничку добавить время и дату через модуль часы реального времени. S105 " I2C RTC dip-ds1307 AT24C32 для Arduino 51 AVR ARM PIC На дисплей этого не нужно. Как на дисплее увидеть знак процентов на измерении влажности в конце у меня показывает пример: 34%00 а хотелось бы так:34.00%
А если при выводе поставить lcd.setCursor(12, 0); lcd.print("%"); вот такую строку lcd.setCursor(15, 0); lcd.print("%");
Ок . получилось. Ещё бы с часами разобраться как прописать А потом как Сюда показания добавить http://narodmon.ru/
Я когда-то хотел разместиться на данном ресурсе, но не получилось с 1-го раза, а потом и не пробовал.