Meteorološka stanica

Instrumenti

Moderators: pedja089, stojke369, [eDo], trax

Post Reply
User avatar
niho
Pravi forumaš
Pravi forumaš
Posts: 1895
Joined: 24-09-2009, 17:26
Location: Brcko, Bosnia and Herzegovina

Meteorološka stanica

Post by niho »

Ovih dana smo završili projekat meteorološke stanice i postavili je na zgradu naše škole. Uređaj smo spakovali u kutijicu dizajniranu u Tinkercaduhttps://www.tinkercad.com/things/jW1Sr1B6j2U-ws a potom i odštampali na ultimaker 2+ štampaču. Uređaj mjeri temperaturu, vlažnost, pritisak i sadržaj dima u zraku. Svi rezultati se šalju na školsku stranicu http://devetaos.weebly.com.Šema je u prilogu rađena u Eagle-u. Procesor koji radi podatke i šalje na web je NODE MCU mini a program pisan u Arduino IDE. Naknadno ću ih dodati.
ws.jpg
ws.jpg (39.64 KiB) Viewed 9057 times
User avatar
niho
Pravi forumaš
Pravi forumaš
Posts: 1895
Joined: 24-09-2009, 17:26
Location: Brcko, Bosnia and Herzegovina

Re: Meteorološka stanica

Post by niho »

Evo korišteni kod koji sam skrpio iz nekoliko različitih projekata i prilagodio svojim potrebama:

Code: Select all

#include <DHT.h>  // Including library for dht
#include <Wire.h>
#include <SFE_BMP180.h>
#include <ESP8266WiFi.h>
 
String apiKey = "Ubacite svoj api kod";     //  Enter your Write API key from ThingSpeak

const char *ssid =  "ubacire svoj ssid";     // replace with your wifi ssid and wpa2 key
const char *pass =  "ubacite svoj pasvord";
const char* server = "api.thingspeak.com";

#define DHTPIN 0          //pin where the dht11 is connected
 
DHT dht(DHTPIN, DHT11);
int smoke = A0; 
int sensorThres = 400; // Your threshold value
WiFiClient client;
SFE_BMP180 bmp180; 
void setup() 
{
       pinMode(smoke, INPUT);
       Serial.begin(9600);
       delay(10);
       dht.begin();
       bool success = bmp180.begin();
       if (success) {
    Serial.println("BMP180 init success");
  }
       Serial.println("Connecting to ");
       Serial.println(ssid);
 
 
       WiFi.begin(ssid, pass);
 
      while (WiFi.status() != WL_CONNECTED) 
     {
            delay(500);
            Serial.print(".");
     }
      Serial.println("");
      Serial.println("WiFi connected");
 
}
 
void loop() 
{
  char status;
  double T, P;
  bool success = false;
  status = bmp180.startTemperature();

  if (status != 0) {
    delay(1000);
    status = bmp180.getTemperature(T);

    if (status != 0) {
      status = bmp180.startPressure(3);

      if (status != 0) {
        delay(status);
        status = bmp180.getPressure(P, T);

        if (status != 0) {
          Serial.print("Pressure: ");
          Serial.print(P);
          Serial.println(" hPa");

          Serial.print("Temperature: ");
          Serial.print(T);
          Serial.println(" C");
        }
      }
    }
  }
      int k = analogRead(smoke);
      float h = dht.readHumidity();
      float t = dht.readTemperature();
      
              if (isnan(h) || isnan(t)) 
                 {
                     Serial.println("Failed to read from DHT sensor!");
                      return;
                 }

                         if (client.connect(server,80))   //   "184.106.153.149" or api.thingspeak.com
                      {  
                            
                             String postStr = apiKey;
                             postStr +="&field1=";
                             postStr += String(t);
                             postStr +="&field2=";
                             postStr += String(h);
                             postStr +="&field3=";
                             postStr += String(P);
                             postStr +="&field4=";
                             postStr += String(k);
                             postStr += "\r\n\r\n";
 
                             client.print("POST /update HTTP/1.1\n");
                             client.print("Host: api.thingspeak.com\n");
                             client.print("Connection: close\n");
                             client.print("X-THINGSPEAKAPIKEY: "+apiKey+"\n");
                             client.print("Content-Type: application/x-www-form-urlencoded\n");
                             client.print("Content-Length: ");
                             client.print(postStr.length());
                             client.print("\n\n");
                             client.print(postStr);
 
                             Serial.print("Temperature: ");
                             Serial.print(t);
                             Serial.print(" degrees Celcius, Humidity: ");
                             Serial.print(h);
                             Serial.print("Pritisak: ");
                             Serial.print(P);
                             Serial.print("Kvalitet zraka: ");
                             Serial.print(k);
                             Serial.println("%. Send to Thingspeak.");
                        }
          client.stop();
 
          Serial.println("Waiting...");
  
  // thingspeak needs minimum 15 sec delay between updates, i've set it to 30 seconds
  delay(10000);
}
Eagle shema:
meteo.zip
(19.2 KiB) Downloaded 381 times
User avatar
Khaderah
Odlično uznapredovao
Odlično uznapredovao
Posts: 967
Joined: 17-04-2012, 16:10
Location: Zagreb, Hrvatska

Re: Meteorološka stanica

Post by Khaderah »

Super
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: Meteorološka stanica

Post by pedja089 »

Super je projekat. Ideja mi se bas svidja.
Samo mi se kutija nikako ne svidja... Po meni treba biti puno provetrenija i neki stit od sunca da ima.
Mozda ovako nesto
https://www.yoctopuce.com/EN/article/a- ... d-node-red
User avatar
Khaderah
Odlično uznapredovao
Odlično uznapredovao
Posts: 967
Joined: 17-04-2012, 16:10
Location: Zagreb, Hrvatska

Re: Meteorološka stanica

Post by Khaderah »

User avatar
niho
Pravi forumaš
Pravi forumaš
Posts: 1895
Joined: 24-09-2009, 17:26
Location: Brcko, Bosnia and Herzegovina

Re: Meteorološka stanica

Post by niho »

Pozdrav, da li je neko imao iskustvo sa ovim ESP-om. U Meteo stanici sam koristio
wemas-ov node mcu-mini i odlično je sve radilo na stolu, ali kada sam ga montirao vani prvo se dešavalo da zablesavi i isključi se nekad nakon 2-3 sata nekad nakon dan i na kraju više ne radi nikako. Bilo je dovoljno isključiti ga sa napajanja i nakon par sekundi uključiti da ponovo radi. Sada ne radi nikako. Kada ga priključim na računar prepozna ga kao port4 ali ne dozvoljava nikakav upis podataka ni programa. Nadam se da nije razlog korona virus :)
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: Meteorološka stanica

Post by pedja089 »

Nisam nikad radio, ali to mi jako lici ili na problem sa napajanjem ili sa memorijom.
A jer nece da se upise, vise na memoriju vuce.
User avatar
niho
Pravi forumaš
Pravi forumaš
Posts: 1895
Joined: 24-09-2009, 17:26
Location: Brcko, Bosnia and Herzegovina

Re: Meteorološka stanica

Post by niho »

Čip za komunikaciju je ch340 i većina arduino pločica koje su imale taj čip su mi bile jako problematične. Iz čista mira neće da učitava program a onda opet proradi. Imao sam samo jednu pločicu, davno sam naručio još par komada no izgleda da neće ni doći :(
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: Meteorološka stanica

Post by pedja089 »

Mozda, ali mi cudno da je on. Njega lako proveris. Vidi samo na izlazu tx i rx.
U srbiji ih ima na kupujem prodajem. Pa vidi ocel ko poslati busem... Ako ne, iskombinovacemo nesto.
Post Reply