Meteorološka stanica

Instrumenti

Moderators: stojke369, pedja089, [eDo], trax

Meteorološka stanica

Postby niho » 24-02-2020, 08:57

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 3605 times
User avatar
niho
 
Posts: 1891
Joined: 24-09-2009, 17:26
Location: Brcko, Bosnia and Herzegovina

Re: Meteorološka stanica


Re: Meteorološka stanica

Postby niho » 24-02-2020, 11:49

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 114 times
User avatar
niho
 
Posts: 1891
Joined: 24-09-2009, 17:26
Location: Brcko, Bosnia and Herzegovina

Re: Meteorološka stanica

Postby Khaderah » 24-02-2020, 13:21

Super
User avatar
Khaderah
 
Posts: 905
Joined: 17-04-2012, 16:10
Location: Zagreb, Hrvatska

Re: Meteorološka stanica

Postby pedja089 » 24-02-2020, 21:01

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
pedja089
 
Posts: 7667
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: Meteorološka stanica

Postby Khaderah » 25-02-2020, 13:28

User avatar
Khaderah
 
Posts: 905
Joined: 17-04-2012, 16:10
Location: Zagreb, Hrvatska

Re: Meteorološka stanica

Postby niho » 28-02-2020, 09:40

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
niho
 
Posts: 1891
Joined: 24-09-2009, 17:26
Location: Brcko, Bosnia and Herzegovina

Re: Meteorološka stanica

Postby pedja089 » 28-02-2020, 14:15

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
pedja089
 
Posts: 7667
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: Meteorološka stanica

Postby niho » 28-02-2020, 21:02

Č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
niho
 
Posts: 1891
Joined: 24-09-2009, 17:26
Location: Brcko, Bosnia and Herzegovina

Re: Meteorološka stanica

Postby pedja089 » 28-02-2020, 22:30

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.
User avatar
pedja089
 
Posts: 7667
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija


Return to Instrumenti

Who is online

Users browsing this forum: No registered users and 1 guest

GOOGLE

cron