Добавил дисплей LCD1602 I2C
Подключение дисплея:
Arduino LCD
VCC 5v------->VCC
GND----->GND
SDA----->A4
SCL----->A5Собственно дисплей подключен параллельно датчику давления
I2C хорошая шина
Адрес дисплея установить 0x21!!! Запаять перемычки A1, A2
Библиотеку LiquidCrystal_I2C.h качаем с помощью менеджера ардуины или ставим "руками"
Код:
// APRS погодная станция v0.22 made in RA4FHE xDDD Версия с LCD 1602 I2C
//http://infotex58.ru
#include <SPI.h>
#include <Ethernet.h>
#include <Wire.h>
#include <BMP085.h>
#include <DHT.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x21,16,2); // Адрес дисплея 0x21 !!!!!
BMP085 dps = BMP085();
long Temperature085 = 0, Pressure085 = 0;
#define DHTTYPE DHT22 // Тип датчика DHT 22
DHT dht(8, DHTTYPE);
byte mac[] = { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF }; // MAC адрес от балды
IPAddress ip(192, 168, 0, 14); // Локальный адрес
IPAddress server(194, 186, 45, 251); // IP сервера http://aprs.cqham.ru/
EthernetClient client;
void setup() {
lcd.init();
lcd.backlight();// Включаем подсветку дисплея
lcd.setCursor(0, 0); lcd.print("APRS Meteo Penza");
lcd.setCursor(0, 1); lcd.print("RA4FHE-2 2016");
Ethernet.begin(mac, ip);
delay(2000);
dps.init();
}
void loop() {
tcp();
delay(600000); //Кидаем инфу каждые 10мин
}
void tcp() {
client.connect(server, 14580);
delay(250);
client.println("user RA4FHE-2 pass -1 vers Arduino_WX 0.22 filter m/1"); // Логинемся на сервер
delay (250);
float h = dht.readHumidity();
float t = dht.readTemperature();
dps.getTemperature(&Temperature085);
dps.getPressure(&Pressure085);
client.print("RA4FHE-2>APRS,TCPIP*,qAC,T2RUSSIA:=5312.66N/04500.72EW"); // Поехали кидать инфу на сервак
client.print(" Tmp1="); client.print(t, 1); client.print("C");
client.print(" Tmp2="); client.print(Temperature085 * 0.1, 1); client.print("C");
client.print(" Hum="); client.print(h, 0); client.print("%");
client.print(" Press="); client.print(Pressure085 / 133.3, 0); client.print("mmHg");
client.println(" **Experimental Arduino Meteo**"); // Небольшой комментарий...
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("T1="); lcd.print(t, 0); lcd.print("C"); lcd.print(" T2="); lcd.print(Temperature085 * 0.1, 0); lcd.print("C");
lcd.setCursor(0, 1);
lcd.print("H="); lcd.print(h, 0); lcd.print("%"); lcd.print(" P="); lcd.print(Pressure085 / 133.3, 0); lcd.print("mmHg");
delay(1000);
client.stop();
}
Скрины так себе освещение не в дугу