Arduino Polska Forum
Stacja pogodowa Arduino - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Instalacja i rozwiązywanie problemów (https://forum.arduinopolska.pl/dzial-instalacja-i-rozwi%C4%85zywanie-problem%C3%B3w)
+--- Wątek: Stacja pogodowa Arduino (/watek-stacja-pogodowa-arduino)



Stacja pogodowa Arduino - streetek - 26-05-2017

Witam serdecznie wszystkich,

Jestem w trakcie budowy stacji pogodowej na arduino. Wykorzystuje dwie platformy tj. Arduino nano jako nadajnik oraz arduino Uno jako odbiornik, ktore komunikują się za pomocą modułu Rf 433. Przesył danych takich jak temp, cisnienie  mam zrobione lecz doszedłem do momentu gdzie chce dorzucić czujnik prędkości wiatru(dokładnie N96FY,zwykły kontaktron)no i jest problem. Nie mam zielonego pojęcia jak to zrobić. Problem tkwi w tym, że znalazłem program działający i obliczający prędkość wiatru lecz nie wiem jak zastosować go w taki sposób aby wysłać go odbiornika. Jestem kompletnym laikiem w tej dziedzinie więc proszę o wyrozumiałość. Problemem chyba jest komunikacja SPI(do takiego wniosku doszedłem).


RE: Stacja pogodowa Arduino - Tomuh - 26-05-2017

Jeżeli masz prędkość wiatru, a umiesz wysłać temperaturę i ciśnienie, to czemu w ten sam sposób nie wyślesz prędkości wiatru?


RE: Stacja pogodowa Arduino - streetek - 27-05-2017

(26-05-2017, 20:55)Tomuh napisał(a): Jeżeli masz prędkość wiatru, a umiesz wysłać temperaturę i ciśnienie, to czemu w ten sam sposób nie wyślesz prędkości wiatru?

Gdyby to tak dzialalo to bym zapewne nie pytał na forum.


RE: Stacja pogodowa Arduino - Tomuh - 27-05-2017

Pokaż kod


RE: Stacja pogodowa Arduino - streetek - 27-05-2017

(27-05-2017, 10:14)Tomuh napisał(a): Pokaż kod

Pomiar Wiatru:
#include <SPI.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define BACKLIGHT_PIN 3


LiquidCrystal_I2C lcd(0x3F,2,1,0,4,5,6,7);


#define am 8 //podlaczenie anemometru do pinu 8
int licznik = 0; //licznik
int rotacja = 0; // number of rotacji
boolean stan =0; //status o
float wiatr;
 
void setup(){
pinMode (am, INPUT);
Serial.begin(9600);
lcd.begin(16,2);
lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
lcd.setBacklight(HIGH);
lcd.print("wiatr: ");
lcd.begin(16, 2);
lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
lcd.setBacklight(HIGH);

}
 
void loop(){
licznik= licznik+1;
if (digitalRead(am)==LOW){  //I've checked that on free position anemometer is always closed
delay(2);
stan=!stan;
while (digitalRead(am)==LOW) ;
rotacja=rotacja+1 ;
}
 
if (licznik==100){
int czas1=millis();
wiatr = rotacja*0.89;
lcd.println(rotacja);
lcd.setCursor(0,0);
lcd.print("Predkosc wiatru= ");
lcd.print(wiatr, 2);
lcd.setCursor(0,6);
lcd.println(" km/h");

licznik=0; //reset licznika
rotacja=0; //reset rotacji

int czas2 =millis();
int czas=czas2-czas1;
Serial.println(czas);
lcd.clear();
}

delay(8); //this delay is put here to extend time of whole loop to 10ms
}

Nadajnik:
#include <DallasTemperature.h>  
#include <Wire.h>
#include <VirtualWire.h>
#include <BMP180.h>
#include <OneWire.h>                                
int one_wire = 9; 
OneWire oneWire(one_wire); 
DallasTemperature sensors(&oneWire);
BMP180 barometer;
float seaLevelPressure = 101000;

String calosc, cisn, temp, cisn1, temp1;
char Msg[20];


void setup()
{
  vw_setup(2000);
  
  
  cisn = String ("C: ");
  temp = String ("T: " );
  Serial.begin(9600);
  delay(5000);
  Serial.println("Stacja Meteo"); 
  
  Wire.begin();
  barometer = BMP180();
  if(barometer.EnsureConnected())
  {
    Serial.println("Connected to BMP180."); // Output we are connected to the computer.
    barometer.SoftReset();
    barometer.Initialize();
  }
  else
  { 
    Serial.println("Could not connect to BMP180.");

  }

  }



void loop()
{
 

if(barometer.IsConnected)
  {
    // Retrive the current pressure in Pascals.
    long currentPressure = barometer.GetPressure();
    
    int b = (currentPressure/100);
    String cisn1 = cisn + b + " hPa"  ;
    Serial.println (cisn1);
 
    sensors.requestTemperatures();    
    float currentTemperature = sensors.getTempCByIndex(0);

    int c = (currentTemperature);
    String temp1 = temp + c + " stC";
    Serial.println (temp1);
  
   String calosc = temp1 + cisn1 ;
   Serial.println(calosc);  
   
    calosc.toCharArray(Msg,(calosc.length()+1));
    for (int i = 0; i <= calosc.length(); i++) 
    Serial.print(Msg[i]);
 }
   
    vw_send((uint8_t *)Msg, strlen(Msg));
    vw_wait_tx(); 
    
    Serial.println("poszlo");         
    Serial.println(); // Start a new line.
    delay(3000); 
}


RE: Stacja pogodowa Arduino - kastor - 07-07-2017

z czujnikiem robisz tak.
obwódx to 1Hz mnozysz przez 3600 monozysz przez obwód dzielisz przez 1000 i masz prędkosc


RE: Stacja pogodowa Arduino - loczek111 - 25-10-2019

Jestem w trakcie testów aplikacji mobilnej do prezentowania danych pogodowych z własnej stacji pogodowej opartej na arduino lub innych tego typu rozwiązaniach. Sprawdzam jakie jest zainteresowanie tym tematem i niedługo wykupię serwer do tego rozwiązania. Szukam osób które są zainteresowane takim rozwiązaniem i chciałby przetestować aplikację w praktyce (nie jest jeszcze publicznie dostępna). Zapraszam do zapoznania się [Obrazek: smiley.gif]

simplyclime.gearhostpreview.com/