kemustek Napisano Styczeń 23, 2024 Udostępnij Napisano Styczeń 23, 2024 Witam wszystkich, chciałbym zbudować stację meteo na podstawie tego schematu Nie wiem czy mogę podać adres do konkurencyjnej strony gdzie jest cały opis, jesli tak to go dodam. Moje pytanie dotyczy czujnika BME280, w schemacie ma on wyprowadzenie na 6 pinów, a w rzeczywistości są tylko 4. Jak mam to podpiąć? Pewnie będę miał później więcej pytań odnośnie samego programowania Arduino, bo kod podany na stronie poradnika i lekko zmodyfikowany przeze mnie nie chce się zgrać na adruino. Dzięki za pomoc. 1
kemustek Styczeń 23, 2024 Autor tematu Udostępnij Styczeń 23, 2024 1 minutę temu, AntekBezak napisał: Jak są opisane piny na twoim czujniku? Mam dokładnie taki czujnik z oznaczeniami jak w załączniku. 1
keram167 Styczeń 23, 2024 Udostępnij Styczeń 23, 2024 @kemustek tu masz wersję 6-cio pinową. Zwróć uwagę, że ta wersja pracuje z napięciem 3,3V. Podana przez Ciebie pracuje z napięciem 5V.
AntekBezak Styczeń 23, 2024 Udostępnij Styczeń 23, 2024 (edytowany) @kemustek Na twoim miejscu podłączył to SCL i SDA z czujnika do A5 i A4 z arduino (bo tam jest SCL i SDA z arduino ) potem w kodzie się dostosuje. Edytowano Styczeń 23, 2024 przez AntekBezak
kemustek Styczeń 23, 2024 Autor tematu Udostępnij Styczeń 23, 2024 24 minuty temu, keram167 napisał: @kemustek tu masz wersję 6-cio pinową. Zwróć uwagę, że ta wersja pracuje z napięciem 3,3V. Podana przez Ciebie pracuje z napięciem 5V. Myślę że z napięciem nie będzie problemy bo mogę puścić przecież z arduino 5v. 24 minuty temu, AntekBezak napisał: @kemustek Na twoim miejscu podłączył to SCL i SDA z czujnika do A5 i A4 z arduino (bo tam jest SCL i SDA z arduino ) potem w kodzie się dostosuje. Dzięki, jutro będę próbował.
kemustek Styczeń 24, 2024 Autor tematu Udostępnij Styczeń 24, 2024 (edytowany) 17 godzin temu, AntekBezak napisał: @kemustek Na twoim miejscu podłączył to SCL i SDA z czujnika do A5 i A4 z arduino (bo tam jest SCL i SDA z arduino ) potem w kodzie się dostosuje. Czy możesz mi powiedzieć jak teraz dostosować ten kod? mój wygląda tak //uzyte biblioteki #include <DHT.h> #include <LiquidCrystal.h> #include <Wire.h> #include <SPI.h> #include <Adafruit_Sensor.h> #include <Adafruit_BME280.h> //definicja pinu i typu czujnika DHT #define DHTPIN 8 #define DHTTYPE DHT22 //definicja pinow magistrali SPI #define BME_SCK 13 #define BME_MISO 12 #define BME_MOSI 11 #define BME_CS 10 //definicja pinow LCD LiquidCrystal lcd(7, 6, 5, 4, 3, 2); //definicja DHT DHT dht(DHTPIN, DHTTYPE); //uzyte zmienne float Tzew; float Wilg; float temperatura; float cisnienie; float wilgotnosc; #define SEALEVELPRESSURE_HPA (1013.25) //cisnienie na poziomie morza #define ALTITUDE 100.0 // wysokosc wzgledna w metrach dla miejsca pomiaru – u mnie 160 m npm Adafruit_BME280 bme(BME_CS); // inicjalizacja czujnika BME w trybie hardware SPI void setup() { Serial.begin(9600); Serial.println(F(“Start Testu”)); lcd.begin(16, 2); //start LCD 16×2 bool status; status = bme.begin(); if (!status) { Serial.println(“Brak sensora BME 280 – sprawdz polaczenie”); while (1); } Serial.println(“OK”); } void loop() { temperatura = bme.readTemperature(); //odczyt temperatury z czujnika BME cisnienie = bme.readPressure(); //odczyt cisnienia z czujnika BME cisnienie = bme.seaLevelForAltitude(ALTITUDE,cisnienie); //przeliczenie cisnienia dla danej wysokosci npm wilgotnosc = bme.readHumidity(); //wilgotnosc z czujnika BME Tzew = dht.readTemperature(); //temperatura z czujnika DHT Wilg = dht.readHumidity(); //wilogotnosc z czujnika DHT lcd.setCursor(0,0); lcd.print(“Tz: “); lcd.print(Tzew); lcd.print(” Tw: “); lcd.print(temperatura); lcd.setCursor(0,1); lcd.print(“C: “); lcd.print(cisnienie/100); lcd.print(” W: “); lcd.print(Wilg); delay(1000); } Rozumiem że zmienić trzeba coś na początku w tym miejscu? //definicja pinow magistrali SPI #define BME_SCK 13 #define BME_MISO 12 #define BME_MOSI 11 #define BME_CS 10 Tylko jak byś mógł wyjaśnić co. Bo to mój pierwszy raz jak patrzę w te kody Edytowano Styczeń 24, 2024 przez kemustek
Danyeru Styczeń 24, 2024 Udostępnij Styczeń 24, 2024 Spojrzyj na to: https://blog.elektroweb.pl/bme280-czujnik-wilgotnosci-cisnienia-i-temperatury-podpiecie-do-arduino/ Zwróć uwagę, na inicjalizację obiektu, a także na inny kod sprawdzający podłączenie czujnika, który tutaj odpytuje konkretny adres na magistrali I2C. Jeżeli nie używasz SPI, definicje te nie są Ci potrzebne. Musisz się zapoznać z komunikacją I2C. W przykładach masz program, którym możesz przeskanować magistralę I2C i poznać adresy podłączonych peryferiów: Plik -> Przykłady -> Wire -> i2c_scanner
kemustek Styczeń 24, 2024 Autor tematu Udostępnij Styczeń 24, 2024 43 minuty temu, Danyeru napisał: Spojrzyj na to: https://blog.elektroweb.pl/bme280-czujnik-wilgotnosci-cisnienia-i-temperatury-podpiecie-do-arduino/ Zwróć uwagę, na inicjalizację obiektu, a także na inny kod sprawdzający podłączenie czujnika, który tutaj odpytuje konkretny adres na magistrali I2C. Jeżeli nie używasz SPI, definicje te nie są Ci potrzebne. Musisz się zapoznać z komunikacją I2C. W przykładach masz program, którym możesz przeskanować magistralę I2C i poznać adresy podłączonych peryferiów: Plik -> Przykłady -> Wire -> i2c_scanner Dziękuje, według Twoich wytycznych i poradnika zmodyfikowałem kod który teraz wygląda tak: //uzyte biblioteki #include <DHT.h> #include <LiquidCrystal.h> #include <Wire.h> #include <Adafruit_Sensor.h> #include <Adafruit_BME280.h> //definicja pinu i typu czujnika DHT #define DHTPIN 8 #define DHTTYPE DHT22 //definicja pinow LCD LiquidCrystal lcd(7, 6, 5, 4, 3, 2); //definicja DHT DHT dht(DHTPIN, DHTTYPE); //uzyte zmienne float Tzew; float Wilg; float temperatura; float cisnienie; float wilgotnosc; #define SEALEVELPRESSURE_HPA (1013.25) //cisnienie na poziomie morza #define ALTITUDE 100.0 // wysokosc wzgledna w metrach dla miejsca pomiaru – u mnie 160 m npm Adafruit_BME280 bme; void setup() { Serial.begin(9600); Serial.println(F(“Start Testu”)); lcd.begin(16, 2); //start LCD 16×2 bool status; status = bme.begin(); if (!bme.begin(0x76)) { Serial.println("Sprawdź połączenie nie znajduje modułu"); while (1); Serial.println(“OK”); } void loop() { temperatura = bme.readTemperature(); //odczyt temperatury z czujnika BME cisnienie = bme.readPressure(); //odczyt cisnienia z czujnika BME cisnienie = bme.seaLevelForAltitude(ALTITUDE,cisnienie); //przeliczenie cisnienia dla danej wysokosci npm wilgotnosc = bme.readHumidity(); //wilgotnosc z czujnika BME Tzew = dht.readTemperature(); //temperatura z czujnika DHT Wilg = dht.readHumidity(); //wilogotnosc z czujnika DHT lcd.setCursor(0,0); lcd.print(“Tz: “); lcd.print(Tzew); lcd.print(” Tw: “); lcd.print(temperatura); lcd.setCursor(0,1); lcd.print(“C: “); lcd.print(cisnienie/100); lcd.print(” W: “); lcd.print(Wilg); delay(1000); } Czy wygląda to ok? Dziękuje za pomoc.
Danyeru Styczeń 24, 2024 Udostępnij Styczeń 24, 2024 Z doświadczenia własnego, przy DHT22 wydłużyłbym czas (który tutaj masz delayem) do 2 sekund.
kemustek Styczeń 24, 2024 Autor tematu Udostępnij Styczeń 24, 2024 1 minutę temu, Danyeru napisał: Z doświadczenia własnego, przy DHT22 wydłużyłbym czas (który tutaj masz delayem) do 2 sekund. Jestem totalnie zielony więc zgaduje że chodzi ci o delay(1000) zmieniłbyś na 2000? Przy próbie wgrania do arduino niestety wywala błędy przy próbie wyświetlenia na wyświetlaczu. Znając życie mam go źle podpięte. Mam wyświetlacz JHD 162A który ma z boku jakieś dodatkowe zasilanie. Czy to musi też być podpięte?
kemustek Styczeń 24, 2024 Autor tematu Udostępnij Styczeń 24, 2024 3 minuty temu, keram167 napisał: @kemustek to powinno Ci trochę pomóc. Dzięki wedlug tego jest ok. powiedzcie mi jeszcze czy na arduino nano wystarczy zasilanie z USB czy muszę podpiąć się dodatkowo zasilaczem pod vin i gnd?
ethanak Styczeń 24, 2024 Udostępnij Styczeń 24, 2024 Powinno wystarczyć. Ale pytanie - z czego docelowo chcesz to zasilać? Bo przecież nie z usb z kompa...
kemustek Styczeń 24, 2024 Autor tematu Udostępnij Styczeń 24, 2024 Przed chwilą, ethanak napisał: Powinno wystarczyć. Ale pytanie - z czego docelowo chcesz to zasilać? Bo przecież nie z usb z kompa... docelowo myślałem o zasilaczu 5v taki jak do telefonu, powiedzmy 2A. pytam bo po podłączeniu do kompa wykrywa płytkę ale wyświetlacz się nie podświetla.
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »