Witam ponownie po prawie rocznej przerwie w pisaniu a nie czytaniu ;)
Postanowiłem sobie troszkę ułatwić życie i zbudować ustrojstwo, które nazwałem dumnie “Prostą stacją pogodową”.
Po cóż mi coś takiego, skoro można kupić gotowca za kilkadziesiąt złotych w popularnym markecie? Znalazłoby się kilka powodów. Najważniejszym z nich był ten, żeby owe urządzenie było spersonalizowane pode mnie, a nie takie, które akurat jest dostępne. Po drugie, żeby oferowało sporą dokładność a z produktami z niższej półki różnie to bywa. No i po trzecie i najważniejsze – żeby sobie pomajsterkować. Mieć sporo zabawy i satysfakcji, że jak się chce to można.
Założenia i wymagania projektowe były następujące: tanio, prosto i dokładnie, a trochę bardziej konkretnie:
– wyświetlanie dokładnego czasu i daty,
– pomiar temperatur (z trzech miejsc: na dworze, w mieszkaniu oraz na grzejniku),
– pomiar wilgotności w mieszkaniu,
– pomiar ciśnienia atmosferycznego,
– wykrywanie opadów.
Naturalnym dla mnie wyborem, z uwagi że ciut znam już tę platformę, było Arduino. Po zapoznaniu się z założeniami oraz elementami, które zamierzałem wykorzystać wybór padł na Arduino Nano. Głównym powodem, przemawiającym za jego wykorzystaniem był fakt, iż posiada on napięcia wyjściowe zarówno 5V jaki 3,3V (oczywiście, można także użyć przetwornicy, aby wyeliminować ten problem), posiada wygodne złącze mini USB do podłączania do PC. Nie trzeba bawić się w przejściówki i resetować przy wrzucaniu kodu, jak ma to miejsce w Arduino Mini Pro oraz najważniejszy powód – nie miałem jeszcze takiego modelu w swojej kolekcji ;)
Co wykorzystałem do projektu:
– Arduino Uno (jak zawsze niezbędne do prototypowania i wszelakich eksperymentów),
– płytka stykowa wraz z kabelkami łączeniowymi,
– Arduino Nano (serce całego projektu),
– wyświetlacz LCD 4×20 na I2C (oczywiście w kolorze niebieskim),
– RTC DS3231 (bardzo dokładny zegar czasu rzeczywistego),
– BMP180 (barometr),
– DHT11 (wilgotnościomierz; początkowo miałem DHT22, ale niestety uległ on awarii;/),
– DS18B20 (niezawodne “dallaski”, cyfrowe czujniki temperatury),
– czujnik opadów,
– 2x dioda LED 5mm (a jakżeby inaczej – także niebieska),
– rezystory: 1x 10kΩ dla DHT11, 3x 4,7kΩ dla DS18B20 oraz 2x 90Ω dla LED,
– płytka uniwersalna dwustronna 20 x 14 pól,
– gniazda do goldpinów, kilka sztuk w różnych długościach,
– goldpiny,
– kabelki do połączeń, różne cienkie, w głównej mierze ze skrętki ethernetowej,
– kabel płaski ethernetowy (dla zewnętrznej części stacji),
– kabel telefoniczny (dla czujnika do grzejnika),
– zasilacz 12V (ja miałem 2A),
– pudełko na herbatę 15x9x8,5 (na całą stacje),
– pudełko uniwersalne hermetyczne 4,5x7x3,5 (dla zewnętrznej części stacji),
– gniazdo montażowe dla zasilacza,
– koszulki termokurczliwe,
– cyna, kalafonia, pasta do lutowania,
– papier ścierny drobnoziarnisty,
– farba i pędzelek do pomalowania.
Przydatne narzędzia:
– lutownica,
– wiertarka,
– piła do wycięcia otworu,
– multinarzędzie typu dremel,
– pistolet na ciepły klej,
– miernik,
– komputer z programem Arduino, Fritzingiem oraz kablem mini usb – usb.
… oraz trochę samozaparcia, wolnego czasu i nerwów :D
Na początku zacząłem od projektu na płytce prototypowej, który wyglądał mniej więcej tak:
Schemat elektryczny całości prezentuje się następująco:
Tutaj również załączam kod, z przypisami, które są głównie wzięte z bibliotek. Kod jest na tyle prosty, że nie powinno być problemów z jego zrozumieniem. Gdyby były to proszę o pytania.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 |
/* Program obslugujacy "Prosta stacje pogodowa" na platforme arduino, z wykorzystaniem nastepujacych komponentow: Arduino Nano V3, DS3231, BMP180, DHT11, DS18B20, czujnik opadow, LCD 4x20 I2c Piny Arduino: 7-LED, 8-czujnik opadow-stan, 9-DHT11, 10-DS18B20-dom, 11-DS18B20-dwor 12-DS18B20-grzejnik, A3-czujnik opadow-wilgotnosc, A4-I2C SDA, A5-I2C SCL (DS3231, BMP180, LCD) */ #include <Wire.h> #include <LiquidCrystal_I2C.h> #include <Wire.h> #include "DS3231.h" #include "DHT.h" #include <BMP180.h> #include <OneWire.h> #include <DallasTemperature.h> LiquidCrystal_I2C lcd(0x27,20,4); //set the LCD address to 0x27 for a 20 chars and 4 line display DS3231 RTC; //create the R8025 object char weekDay[][14] = {"niedziela", "wtorek", "sroda", "czwartek", "piatek", "sobota","niedziela", "poniedzialek"}; // uint8_t dayOfWeek() const { return wday;} /*Su=0 Mo=1 Tu=3 We=4 Th=5 Fr=6 Sa=7 * #define DHTPIN11 9 // what pin we're connected to #define DHTTYPE11 DHT11 //DHT 11 (AM2302) DHT dht11(DHTPIN11, DHTTYPE11); //initialize DHT sensor for normal 16mhz Arduino BMP180 barometer; //store an instance of the BMP180 sensor float seaLevelPressure = 102460; //store the current sea level pressure at your location in Pascals. #define ONE_WIRE_BUS1 11 //data wire is plugged into port 11 on the Arduino #define ONE_WIRE_BUS2 12 //data wire is plugged into port 12 on the Arduino #define ONE_WIRE_BUS3 10 //data wire is plugged into port 10 on the Arduino OneWire oneWire1(ONE_WIRE_BUS1); //setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs) OneWire oneWire2(ONE_WIRE_BUS2); //setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs) OneWire oneWire3(ONE_WIRE_BUS3); //setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs) DallasTemperature sensors1(&oneWire1); //pass our oneWire reference to Dallas Temperature. DallasTemperature sensors2(&oneWire2); //pass our oneWire reference to Dallas Temperature. DallasTemperature sensors3(&oneWire3); //pass our oneWire reference to Dallas Temperature. #define LEDPIN 7 #define RAINPIN 8 #define RAIN2PIN A3 void setup() { lcd.init(); //initialize the lcd lcd.backlight(); //switch on backlight on lcd Serial.begin(9600); Wire.begin(); RTC.begin(); RTC.convertTemperature(); //convert current temperature into registers dht11.begin(); barometer = BMP180(); //we create an instance of our BMP180 sensor barometer.SoftReset(); //when we have connected, we reset the device to ensure a clean start barometer.Initialize(); //now we initialize the sensor and pull the calibration data sensors1.begin(); //start up the library sensors2.begin(); //start up the library sensors3.begin(); //start up the library } void lcdWelcome() { lcd.setCursor(4,3); lcd.print("#powitanie#"); lcd.setCursor(0,0); lcd.print("Stacja pogodowa z"); lcd.setCursor(0,1); lcd.print("wykorzystaniem"); lcd.setCursor(0,2); lcd.print("Arduino :)"); } void lcdTimeDate() { DateTime now = RTC.now(); //get the current date-time lcd.setCursor(7,3); lcd.print("#czas i data#"); lcd.setCursor(0,0); if (now.hour()<10) lcd.print("0"); lcd.print(now.hour(), DEC); lcd.print(':'); if (now.minute()<10) lcd.print("0"); lcd.print(now.minute(), DEC); lcd.print(':'); if (now.second()<10) lcd.print("0"); lcd.print(now.second(), DEC); lcd.setCursor(0,1); if (now.date()<10) lcd.print("0"); lcd.print(now.date(), DEC); lcd.print('.'); if (now.month()<10) lcd.print("0"); lcd.print(now.month(), DEC); lcd.print('.'); lcd.print(now.year(), DEC); lcd.setCursor(0,2); lcd.print(weekDay[now.dayOfWeek()]); } void lcdTemp() { sensors1.requestTemperatures(); //send the command to get temperatures sensors2.requestTemperatures(); //send the command to get temperatures sensors3.requestTemperatures(); //send the command to get temperatures DateTime now = RTC.now(); //get the current date-time RTC.convertTemperature(); //convert current temperature into registers lcd.setCursor(7,3); lcd.print("#temperatury#"); lcd.setCursor(0,1); lcd.print("t2="); lcd.print(sensors1.getTempCByIndex(0)); //temperature for the device 1 lcd.print("C"); lcd.setCursor(0,2); lcd.print("t3="); lcd.print(sensors2.getTempCByIndex(0)); //temperature for the device 2 lcd.print("C"); lcd.setCursor(0,0); lcd.print("t1="); lcd.print(sensors3.getTempCByIndex(0)); //temperature for the device 3 lcd.print("C"); lcd.setCursor(13,0); lcd.print('('); if (now.hour()<10) lcd.print("0"); lcd.print(now.hour(), DEC); lcd.print(':'); if (now.minute()<10) lcd.print("0"); lcd.print(now.minute(), DEC); lcd.print(')'); /* lcd.setCursor(12,0); lcd.print("t="); lcd.print(RTC.getTemperature()); //read registers and display the temperature from rtc lcd.print("C"); float t11 = dht11.readTemperature(); lcd.setCursor(12,0); lcd.print("t="); lcd.print(t11); //print temp from dht11 lcd.print("C"); float currentTemperature = barometer.GetTemperature(); //retrive the current temperature in degrees celcius. lcd.setCursor(12,1); lcd.print("t="); lcd.print(currentTemperature); //print out the Temperature from bmp180 lcd.print("C"); */ } void lcdHumPres() { DateTime now = RTC.now(); //get the current date-time lcd.setCursor(6,3); lcd.print("#cis. i wilg.#"); float h11 = dht11.readHumidity(); float t11 = dht11.readTemperature(); //read temperature as Celsiusa float f11 = dht11.readTemperature(true); //read temperature as Fahrenheit float hi111 = dht11.computeHeatIndex(f11, h11); //must send in temp in Fahrenheit float hi11 = (hi111-32) / 1.8; lcd.setCursor(0,0); lcd.print("h="); lcd.print(h11); //print out humiditi from dht11 lcd.print("%"); lcd.setCursor(0,1); lcd.print("hi="); lcd.print(hi11); //print out Heat index from dht11 lcd.print("C"); float currentPressure = barometer.GetPressure(); //retrive the current pressure in Pascals float currentPressurehp = (currentPressure /100); float altitude = barometer.GetAltitude(seaLevelPressure); //retrive the current altitude (in meters). Current Sea Level Pressure is required for this float currentTemperature = barometer.GetTemperature(); //retrive the current temperature in degrees celcius lcd.setCursor(0,2); lcd.print("p="); lcd.print(currentPressurehp); //print out the Pressure lcd.print("hPa"); lcd.setCursor(13,0); lcd.print('('); if (now.hour()<10) lcd.print("0"); lcd.print(now.hour(), DEC); lcd.print(':'); if (now.minute()<10) lcd.print("0"); lcd.print(now.minute(), DEC); lcd.print(')'); } void lcdRain() { DateTime now = RTC.now(); //get the current date-time lcd.setCursor(7,4); lcd.print("#cz. opadow#"); int sensorA = analogRead(RAIN2PIN); int sensorD = digitalRead(RAINPIN); int humi = map (sensorA, 1023, 0, 0, 100); lcd.setCursor(0,1); lcd.print("int="); lcd.print(humi); lcd.print("%"); lcd.setCursor(0,0); lcd.print("stan="); if (sensorD==1) { lcd.print("sucho"); digitalWrite(LEDPIN, LOW); } else { lcd.print("pada!!!"); digitalWrite(LEDPIN, HIGH); } lcd.setCursor(13,0); lcd.print('('); if (now.hour()<10) lcd.print("0"); lcd.print(now.hour(), DEC); lcd.print(':'); if (now.minute()<10) lcd.print("0"); lcd.print(now.minute(), DEC); lcd.print(')'); } void loop () { /* lcdWelcome(); delay(5000); lcd.clear(); */ for(int i=0; i<5;i++) { lcdTimeDate(); delay(1000); } lcd.clear(); lcdTemp(); delay(5000); lcd.clear(); lcdHumPres(); delay(5000); lcd.clear(); lcdRain(); delay(5000); lcd.clear(); } |
Chciałem, żeby na wyświetlaczu były wyświetlane w sposób jak obrazują poniższe zdjęcia: Na pierwszym: data, godzina i dzień tygodnia. Na drugim temperatury oraz godzina. Na trzecim: wilgotność, współczynnik ciepła (stosunek wilgotności do temperatury), ciśnienie oraz godzina. Na czwartym: stan czujnika opadów, intensywność opadów oraz godzina.
Dodatkowo zamontowałem diodę LED koło wyświetlacza, żeby powiadamiała o opadach.
Następnie przyszedł czas na wykonanie obudowy z pudełka na herbatę. Nie wiem czemu akurat tak się to zwie, dla mnie to po prostu drewniane pudełko, które akurat spełniało moje oczekiwania.
Pierwszą czynnością było wycięcie miejsca na wyświetlacz LCD. Posłużyło mi do tego narzędzie uniwersalne takie jak to:
Bardzo sprytnie się tym operuje, jednakże z uwagi na to, iż było to moje pierwsze starcie z tym ustrojstwem, wynik prac nie jest bliski ideałowi:
Następnie należało zrobić kilka otworków, dla lepszej cyrkulacji i waloru estetycznego. Posłużyłem się szablonem, narysowanym na kartce, który następnie przykleiłem na pudełko, pinezką zaznaczyłem, gdzie mają być otwory, poprawiłem ołówkiem i wywierciłem:
Później pozostało przeszlifować papierem i pomalować:
Następnie zabrałem się do zrobienia części zewnętrznej. Użyłem płaskiego, ośmio-żyłowego kabla ethernetowego z uwagi na fakt, iż mogę dzięki niemu wystawić całość za okno i zamknąć je, bez żadnego problemu.
Polutowałem elementy, przymocowałem czujnik deszczu, powierciłem otwory oraz przytwierdziłem elementy wewnątrz za pomocą ciepłego kleju. Również, za pomocą ciepłego kleju zabezpieczyłem sobie śrubki, żeby nie rdzewiały. Dioda LED zamocowana w celu sprawdzania czy zewnętrzna część działa i nie poleciała zza okna :) Całość prezentowała się mniej więcej tak:
Teraz przyszedł czas na meritum sprawy, czyli polutowanie całości. Jako, że lubię modułowe podejście do sprawy, to zrobiłem to w ten sposób, aby wszystkie ważniejsze elementy mogły zostać wymienione/zdemontowane w razie potrzeby, toteż użyłem gniazd goldpinowych. Płytka, na której oparłem całość, schematycznie wygląda tak:
Po zmontowaniu i lutowaniu prezentuje się następująco:
Po zlutowaniu czujników oraz kabelków łączących poszczególne elementy wyglądało to tak:
Następnie było złożenie wszystkiego w całość, co dało następujący efekt finalny.
Poniżej załączam amatorski filmik ;p
Kod i biblioteki dostępne są na moim githubie, tutaj.
Mam nadzieję, że dla kogoś mój projekt okaże się przydatny i będzie inspiracją do zrobienia swojej wersji. Będę wdzięczny za komentarze i każdą konstruktywną krytykę.
Czy mi się wydaje, czy ze schematem elektrycznym jest coś nie tak?
Faktycznie, dodałem schemat który był w formacie *.png i miał przeźroczystości ;/ Poprawiłem ;)
Genialnie :) Daję piąteczkę i przerzucam na główną!
Dzięki ;)
Pomiar wilgotności wykonujesz w środku pudelka? Nie wpływa to negatywnie na jej pomiar?
Nie różni się od tego co jest na płytce a przynajmniej ja nie zauważyłem, bowiem dokładność pomiarowa DHT11 w przypadku wilgotności wynosi +-5%.
Bardzo ciekawy projekt, efekt końcowy naprawdę mi się podoba. Chciałbym Ci, drogi autorze, zwrócić uwagę na jeden, drobny szczegół. Czujniki DS18B20 mają unikalne(podobno) adresy, dzięki czemu nie ma potrzeby tworzyć aż trzech instancji OneWire, przypisywać trzech referencji, blablabla- krótko mówiąc: linijki od 33 do 43 można było skrócić do trzech;) Albo sześciu, biorąc pod uwagę przypisanie tych adresów. Ale zawsze to oszczędność dwóch pinów, dwóch oporników i kilku kabelków
Nie chcę zanudzać i przedłużać komentarza, więc maksymalnie skracając: Wszystko, coś uczynił potrójnie robisz raz, przypisujesz czujnikom adresy (które można wcześniej odczytać) i odczytujesz z nich temperatury używając tych właśnie adresów. Schemat połączenia wrzucam razem z komentarzem a pomocy z tymi czujnikami chętnie udzielę, jakby co;)
Pozdrawiam i gratuluję fajnego pomysłu i ładnego wykonania!
Dzięki Ci wielkie zacny człowieku, że zwracasz na takie rzeczy uwagę. Wiedziałem, że tak się da. Tyle tylko, że miałem problem rozgryzając go z przykładu biblioteki, więc się poddałem i poszedłem na łatwiznę. Niestety często tak mam, że szukam rozwiązać szybszych i łatwiejszych zamiast bardziej optymalnych. Dzięki temu kod wygląda jak wygląda ;/
Spróbuję do tego zajrzeć jak będę mieć chwilę.
Witam,
tez przymierzam się do budowy podobnej stacji i mam parę pytań. Jak spisuje się wyświetlacz, z jakiej odległości można odczytać wartości? Czy zabezpieczenie w postaci taśmy izolacyjnej jest wystarczające dla zewnętrznego termometra?
Witam,
to zależy jaki masz wzrok ;p Zawsze możesz pokombinować z niestandardowymi czcionkami, żeby były większe. Dla mnie i żony to jest czytelne z kilku metrów.
Zabezpieczenie w postaci taśmy? Masz na myśli to wewnątrz “zewnętrznej części? Jeśli o to chodzi to jak najbardziej tak. To jest hermetyczna puszka, bardzo małe napięcie oraz znikomy prąd. Ponadto te kable z 5v się nie stykają nigdzie w tej skrzyneczce z GND. Fakt, lepiej zawsze użyć termokurczliwej koszulki. Nie wiem szczerze czemu tego tam nie zrobiłem…
Bardzo dobry pomysł z stacją meteo
Świetny pomysł i dobry materiał dla zielonych w dziedzinie :)
Ile czekałeś na wysłanie rabatu ?
Konrad jeszcze się nie odezwał w sprawie rabatu. A Ty powinieneś dostać dzisiaj (czekam tylko, aż mi Botland podeśle kody do rozdawania).
Będzie dzisiaj ten kod rabatowy ?
Sprawdź pocztę :)
Ok, bardzo się cieszę :-) A tak mniej więcej o której godzinie bo zależy mi złożyć zamówienie przed 16:30 bo później koncert gram i może być ciężko żeby zamówić :-) A takie jedno pytanie… mam jeszcze rabat od ElektroPrzewodnika na 10 % mogę użyć dwóch rabatów ?
Zrobiłem właśnie podobny projekt, tylko z archiwizacją w internecie i podglądem na stronie internetowej. Niestety skończyło mi się miejsce na Uno i dokupiłem Nano + moduł RF także polecę bezprzewodowo :) jak tylko będzie po sesji to zabieram się do przebudowy.
fajne są takie projekty, gratuluję wykonania ;)
Dzięki, z chęcią zobaczę jak podłączyłeś to do internetu. Co prawda nie planuję tego robić póki co ze stacją pogodową, ale z pewnością w jakimś innym projekcie się przyda.
OpenWeatherMap to protip
w jaki sposób podłączyłeś się do internetu ? Pozdrawiam
Zainspirowany tym wpisem popełniłem coś podobnego, tylko że mniej funkcji i na wyświetlaczu 2×16. ;D Teraz tylko przenieść na promini i zrobić piękną obudowę ;)
Niestety czujnik DHT11 jest g.. warty. Pokazuje mi wilgotność w pomieszczeniu 36-40% gdzie higrometr analogowy (taki z wyższej półki, skalibrowany) pokazuje 65%….
To prawda, że nie jest to rewelacja. Pierwotnie, co wspomniałem w tekście miałem DHT22 ale uległ zniszczeniu więc wstawiłem to co miałem ;/ Przy następnym zamówienie elektroniki będę chciał go wymienić z powrotem na DHT22.
Problem jest taki, że nie mam odniesienia do pomiaru wilgotności czymś innym ;/
No i fajnie. Temperaturę bierzesz z DL18B20? Jakoś, pozostałe czujniki w moim projekcie oprócz DHT22 sporo mijały się z prawdą względem “dallasów”.
Jak zrobisz obudowę to się pochwal. Przy następnym projekcie może się przydać :)
Jedyne czego mi brakuje, a bardzo chciałbym mieć u siebie w chałupce, to pomiar kierunku i prędkości wiatru. O ile pomiar temperatury, wilgotności i opadów to banalna rzecz, to zdobycie urządzeń do pomiaru prędkości wiatru jest już trudniejszą rzeczą. :) Gdyby ktoś coś to proszę pisać. ;)
Jest gotowe ale cena mnie odstrasza.
http://www.adafruit.com/products/1733
Mnie również odstrasza.
Łukasz jest anemometr w dobrych pieniądzach. Jak ktoś może ściągnąć z UK to ja się piszę :)
http://www.maplin.co.uk/p/maplin-replacement-anemometer-for-n25fr-n76nf
Mnie również odstrasza.
U mnie wywala coś takiego. Jak sobie z tym poradzić?
In file included from C:\Users\marcin\Desktop\arduino-1.6.0-windows\arduino-1.6.0\hardware\arduino\avr\cores\arduino/WString.h:29:0,
from C:\Users\marcin\Desktop\arduino-1.6.0-windows\arduino-1.6.0\hardware\arduino\avr\cores\arduino/Print.h:26,
from C:\Users\marcin\Desktop\arduino-1.6.0-windows\arduino-1.6.0\hardware\arduino\avr\cores\arduino/Stream.h:26,
from C:\Users\marcin\Documents\Arduino\libraries\Wire/Wire.h:26,
from C:\Users\marcin\Documents\Arduino\libraries\DS3231\DS3231.cpp:10:
C:\Users\marcin\Documents\Arduino\libraries\DS3231\DS3231.cpp:24:31: error: variable ‘daysInMonth’ must be const in order to be put into read-only section by means of ‘attribute((progmem))’
static uint8_t daysInMonth [] PROGMEM = { 31,28,31,30,31,30,31,31,30,31,30,31 };
^
Błąd kompilacji.
Witam,
wszystkie libsy zaimportowałeś?
Witam,
mam problem z Twoim kodem, od dwóch dni siedzę i nie mogę wgrać sketcha, ciągle wyskakuje mi pełno problemów, przeinstalowałem już chyba z tysiąc bibliotek i nic. Błędy wyskakują przeróżne, ale w załączonym pliku przesyłam ostatnie błędy.
Chciałem tez zapytać co zmienić jak będę chciał zastosować czujnik DHT22 zamiast DHT11.
Chciałem to też puścić po komunikacji RF ale jestem za cienki :( Na zewnątrz chciałem dać czujnik DHT22, deszcz, barometr i jeden dallas. Jak będziesz miał chwilę, to napisz proszę co mogę zrobić żeby choć wgrać ten sketch na arduino. A i jeszcze pytanie czy bez zegara i dwóch czujników dallas układ ruszy, bo póki co tego mi brakuje.
Pozdrawiam
Amper
zapomniany screen
Wszystkie. Dodatkowo sprawdzałem na innym kompie. To samo.
Problem rozwiązany. Wystarczyło zainstalować wersję 1.0.6
Witam. Jak ustawić zegar ?
Witam
Kombinowałem aby podobne urządzenie zrobić na Arduino nano, wyświetlaczy 2×16, bmp180 oraz zegarze opartym na kości DS1307.
Mam problem z podłączeniem barometru oraz zegara pod piny a4 i a5.
Gdy podłączone jest jedno urządzenie wszystko działa.
Jednak gdy podłącze obydwa, na wyświetlaczu pojawiają się “zakłamane” wyniki.
Nie do końca wiem jak zrobić aby zegar nie wpływał na pracę barometru i odwrotnie.
Z góry dzięki za podpowiedzi.
kolego pokazuje Ci prawdziwe dane ciśnienia ?
Mam podobny problem, temperatura działą czujnik deszczu również, wilgoci, ale barometr pokazuje mi 1400hpa
Poradziłeś sobie z tym problemem ?
Witam Konrad dal bys meila do siebie mam zapytanie
Chciałbym użyć modułu czasu DS1307 da radę?
Witam,
czy może ktoś podać adres lub naprowadzić jak do tego projektu dołożyć komunikację po RF, bo czujniki DHT i BMP180 chciałem umieścić na zewnątrz, a całą resztę umieścić w domu. Niestety pisanie skryptów jest dla mnie czarną magią :(
Witam
Zacząłem się bawić arduino i spodobała mi się ta stacja meteo, ale mam problem z wgraniem kodu, wywala takie coś:
In file included from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/WString.h:29:0,
from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Print.h:26,
from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Stream.h:26,
from C:\Users\Burur\Documents\Arduino\libraries\Wire/Wire.h:26,
from C:\Users\Burur\Documents\Arduino\libraries\DS3231\DS3231.cpp:10:
C:\Users\Burur\Documents\Arduino\libraries\DS3231\DS3231.cpp:24:31: error: variable ‘daysInMonth’ must be const in order to be put into read-only section by means of ‘attribute((progmem))’
static uint8_t daysInMonth [] PROGMEM = { 31,28,31,30,31,30,31,31,30,31,30,31 };
^
Błąd kompilacji.
Może poradzicie coś.
Pozdrawiam
Mam problem. Otóż program się wgrywa ale na wyswietlaczu sa tylko 4 rzedy kwadratów ( ustawialem kontrast, nie dziala). Pomógłby ktoś? Arduino 1.0.6 i biblioteki takie jak autora tutka.
umnie dopiero ruszyło po podpieciu zegara, i czujnika temperatury i dht11
Pytanie miał ktoś problem z BMP180 ? umnie pokazuje 1400hpa można go jakoś skalibrować aby wskazywał poprawne dane ?
Siema, a słuchajcie jak to wszystko podłączyć do Qnapa ?
Chodzi mi o połączenie przez wi-fi i przekazanie danych na stronkę domową.
Cześć świetnie wykonane ale mam kilka pytań : 1. jak uszczelniłeś czujnik deszcz od strony czujnika ?? 2. czy masz pomysł jak wgrać grafikę np. słońce , parasolke żeby np. jak deszcz pada żeby zgasło słońce na ekranie a pojawiła się parasolka. ??
Projekt bardzo fajny ,ale nie mierzy się wilgotności otoczenia czujnikiem zamkniętymi w pudełku bez przewiewu powietrza
W przypadku DHT11 czy DHT22 to bez znaczenia bo te czujniki nadają się tylko do śmietnika haha, a w szczególności 11. Ja rozumiem że czujnik za dwa dolary nie zapewni dokładności rodem z NASA, ale ku jak można w ogóle takie gówno produkować, a najgorsze jest to że wszyscy “majsterkowicze” robią poradniki jak tego szajsu używać po czym inni to kupują i nie sprawdzają nawet ich dokładności tylko powielają bzdury. Z czujnikami wilgotności do arduino jest spory problem, jedyny godny uwagi jaki znalazłem to BME280, ale znowu na temperaturach ujemnych oszukuje – choć nie tyle co DHT, ale oszukuje. Poza tym bardzo wolno reaguje na zmiany temperatur. Jedyne dobre czujniki temp. to DS18B20.
DHT to porażka one nie potrafią wskazać poprawnej temperatury, z dokładnością choćby do 1-2 stopni) w temp. pokojowej, a czym temp. bardziej niska lub wysoka to stopień oszukaństwa rośnie, z wilgotnością jest mniej więcej podobnie, włączam osuszacz i pokazuje ponad 80%, stacja pogodowa pokazuje ponad 70% a DHT22 twierdzi że jest 43-50%…
Witam,
czy zamiana wyswietlacza LCD z 4×20 na wyswietlacz z nokii 3310 przyniesie znaczne zmiany w kodzie programu ?
Witam. Czy w jakiś sposób mógłbym dane meteorologiczne z takiego projektu udostępniać na stronie internetowej aby przykładowo wyświetlały się na moim hostingu ? Pozdrawiam
Witam,
Potrzebuję zaawansowanej(nie profesionalnej) stacji meteo, najlepiej opartej na Arduino tak by można było dokładać dużą ilość czujników, dane wysyłane do serwera. Szukam kogoś kto już ma doświadczenie w tej materii i chciałby się spróbować odpłatnie z bardziej złożonym tematem. Stacja potrzebna jest dla potrzeb rolnictwa.
Witam poszukuję bibliotek użytych w tym projekcie szukam ich już 2 dzień i nadal nie mogę odnaleźć był by ktoś w stanie pomóc ?
oto biblioteki
#include “DS3231.h”
#include “DHT.h”
#include
#include
#include
z góry dzięki
Jak ustawić godzinę ?