Метеостанция

cytanet
Offline
Зарегистрирован: 02.10.2018

Доброго дня всем

Есть в наличии 

Arduino Uno, W5100 и DS18B20

Хочу поставить метеостанцию но в коде ошибка, не соединяется с сервером куда данные передавать.

Подскажите пожалуйста.

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

#define ONE_WIRE_BUS 10               
OneWire oneWire(ONE_WIRE_BUS);       
DallasTemperature sensors(&oneWire); 

#define Hostname "Arduino"            
Adafruit_BMP280 bmp;                 
byte mac[] = { 0x34, 0x64, 0xA9, 0x15, 0xFD, 0x04 };       
char server[] = "185.50.25.50";      
IPAddress ip(192, 168, 100, 28);                              
byte gateway[] = { 192, 168, 100, 1 };
byte subnet[] = { 255, 255, 255, 0 };
IPAddress dnServer(82, 209, 253, 2); 
EthernetClient client;                                         
int ledpripojenie = 8;                                       
int ledodosielanie = 9;                                         
DHT12 dht12;                                                  
void setup() {                                                
  pinMode(ledpripojenie, OUTPUT);                              
  pinMode(ledodosielanie, OUTPUT);                             
  sensors.begin();                                              
  bmp.begin();                                                 
  delay(2000);                                                 
  Serial.begin(115200);                                         
  while (!Serial) {  
    ;                                                          
  }  
    
}  
  
void loop() {                                     
  
  if (Ethernet.begin(mac) == 0) {                  
    Serial.println("Ошибка конфигурации DHCP"); 
    Ethernet.begin(mac, ip, gateway, subnet, dnServer); 
  }  
  for (int i = 0; i < 4; i++) {                   
    digitalWrite(ledpripojenie, HIGH);           
    delay(150);                                  
    digitalWrite(ledpripojenie, LOW);             
    delay(150);  
  }                                              
  if (client.connect(server, 80)) {              
    digitalWrite(ledpripojenie, HIGH);           
    sensors.requestTemperatures();                 
    Serial.println("Подключение к веб-серверу");
    client.print("GET /add.php?temp1=");         
    client.print(sensors.getTempCByIndex(0));   
    client.print("&temp2=");                    
    client.print(sensors.getTempCByIndex(1));   
    client.print("&hum1=");                      
    client.print(dht12.readHumidity());         
    client.print("&pres1=");                     
    client.print((bmp.readPressure() / 100) + 30, 120481927710843373493975903614);
    client.println(" HTTP/1.1");
    client.println("Host: 185.50.25.50");
    client.println("Connection: close");
    client.println();   
  
    for (int i = 0; i < 3; i++) {
      digitalWrite(ledodosielanie, HIGH);
      delay(400);
      digitalWrite(ledodosielanie, LOW); 
      delay(150);
  
    }  
    client.stop();
    Serial.println("Отправляет заголовок данных: ");
    Serial.println("Температура 1: ");
    Serial.println(sensors.getTempCByIndex(0));
    Serial.println("Температура 2: ");
    Serial.println(sensors.getTempCByIndex(1));
    Serial.println("Влажность воздуха: ");
    Serial.println(dht12.readHumidity());
    Serial.println("Атмосферное давление: ");
    Serial.println((bmp.readPressure() / 100) + 30, 120481927710843373493975903614);
    digitalWrite(ledpripojenie, LOW);
    digitalWrite(ledodosielanie, LOW);
    Serial.println("Отключение успешно.");
  } else {
  }  
  
  delay(15000);
} 

 

b707
Offline
Зарегистрирован: 26.05.2017

cytanet, настройки сети в строчка 14-19 под себя подогнали? - или оставили те, что были в найденном коде? :)

ЗЫ - этот раздел - не для вопросов, а для хвастовства готовыми проектами

cytanet
Offline
Зарегистрирован: 02.10.2018

Под себя подгонял. под свою сеть. 

SLKH
Онлайн
Зарегистрирован: 17.08.2015

cytanet пишет:

Под себя подгонял. под свою сеть. 

Для начала напишите программу без датчиков и лишних библиотек, которая выполняет только 2 задачи:

1. Соединяется с сервером

2. Передает ему что-то самое простое.