Skocz do zawartości

Przeszukaj forum

Pokazywanie wyników dla tagów 'dht11'.

  • Szukaj wg tagów

    Wpisz tagi, oddzielając przecinkami.
  • Szukaj wg autora

Typ zawartości


Kategorie forum

  • Elektronika i programowanie
    • Elektronika
    • Arduino i ESP
    • Mikrokontrolery
    • Raspberry Pi
    • Inne komputery jednopłytkowe
    • Układy programowalne
    • Programowanie
    • Zasilanie
  • Artykuły, projekty, DIY
    • Artykuły redakcji (blog)
    • Artykuły użytkowników
    • Projekty - DIY
    • Projekty - DIY roboty
    • Projekty - DIY (mini)
    • Projekty - DIY (początkujący)
    • Projekty - DIY w budowie (worklogi)
    • Wiadomości
  • Pozostałe
    • Oprogramowanie CAD
    • Druk 3D
    • Napędy
    • Mechanika
    • Zawody/Konkursy/Wydarzenia
    • Sprzedam/Kupię/Zamienię/Praca
    • Inne
  • Ogólne
    • Ogłoszenia organizacyjne
    • Dyskusje o FORBOT.pl
    • Na luzie

Kategorie

  • Quizy o elektronice
  • Quizy do kursu elektroniki I
  • Quizy do kursu elektroniki II
  • Quizy do kursów Arduino
  • Quizy do kursu STM32L4
  • Quizy do pozostałych kursów

Szukaj wyników w...

Znajdź wyniki, które zawierają...


Data utworzenia

  • Rozpocznij

    Koniec


Ostatnia aktualizacja

  • Rozpocznij

    Koniec


Filtruj po ilości...

Data dołączenia

  • Rozpocznij

    Koniec


Grupa


Imię


Strona


TempX

Znaleziono 6 wyników

  1. Witam, chciałbym pochwalić się moim pierwszym wrzuconym tu projektem: Stacją pogodową! Użyłem tutaj tych elementów elektronicznych: Arduino UNO (klon) czujnik wilgotności i temperatury DHT11 LCD 2x16 konwerter I2C W nazwie projektu, DHT11 wzięło się właśnie z nazwy czujnika temperatury i wilgotności. Nie wiem czy mogę nazwać to stacją pogodową bo wyświetla temperaturę i wilgotność tylko z jednego miejsca. 🙂 Do wyświetlania użyłem wyświetlacz LCD 2x16 z konwerterem I2C, głównie z tego powodu że jest on łatwy w obsłudze i jest mało podłączania. Użył bym wyświetlacza TFT bo ładniej by to wszystko wyglądało, ale uczę się dopiero programowania i dalej mam problem z wyświetlaniem wartości na TFT. Ta stacja ma dwie funkcje, pomiar temperatury i pomiar wilgotności. Tutaj jest ilustracja podłączania modułów i czujników do Arduino. Nazywam to prototypem sami wiecie czemu. Niestety ale nie mam gdzie wkładać moich projektów, przez co wyglądają jak prototypy. Kod który użyłem nie jest skomplikowany. Na samym początku tworzy się znak stopnia, w void setup() wyświetlamy napisy temperatura i wilgotność, a potem wyświetlamy wartości temperatury i wilgotności gdzie przydaje nam się stworzony na początku kodu znak stopnia. Tutaj jest kod który użyłem do projektu: #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27,16,2); byte znak_stopnia[8] = { 0b00111, 0b00101, 0b00111, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000 }; int gate=11; volatile unsigned long duration=0; unsigned char i[5]; unsigned int j[40]; unsigned char value=0; unsigned answer=0; int z=0; int b=1; void setup() { lcd.init(); lcd.backlight(); lcd.print("Temperatura"); lcd.setCursor(0,1); lcd.print("Wilgotnosc"); lcd.createChar(1, znak_stopnia); lcd.setCursor(14,0); lcd.write(1); lcd.print("C"); lcd.setCursor(13,1); lcd.print("%"); } void loop() { delay(1000); while(1) { delay(1000); pinMode(gate,OUTPUT); digitalWrite(gate,LOW); delay(20); digitalWrite(gate,HIGH); pinMode(gate,INPUT_PULLUP); duration=pulseIn(gate, LOW); if(duration <= 84 && duration >= 72) { while(1) { duration=pulseIn(gate, HIGH); if(duration <= 26 && duration >= 20){ value=0;} else if(duration <= 74 && duration >= 65){ value=1;} else if(z==40){ break;} i[z/8]|=value<<(7- (z%8)); j[z]=value; z++; } } answer=i[0]+i[1]+i[2]+i[3]; if(answer==i[4] && answer!=0) { lcd.setCursor(12,0); lcd.print(i[2]); lcd.setCursor(11,1); lcd.print(i[0]); } z=0; i[0]=i[1]=i[2]=i[3]=i[4]=0; } } Nie jest on cały robiony przeze mnie bo ja go tylko zmodyfikowałem oryginalny kod i projekt pochodzi z tego filmu na YouTube. Użyta jest tu użyta biblioteka LiquidCrystal_I2C którą pewnie wszyscy i tak mają. 🙂 I teraz najciekawsza część tego wpisu, czyli film na którym testuje moją stacje! (Polecam obejrzeć w prędkości 2x) Jak można zobaczyć na filmie, temperatura wynosiła 30 stopni. Po przyłożeniu rozgrzanego grotu od lutownicy temperatura wzrosła do 38 stopni, natomiast wilgotność zaczęła spadać. Przez to że cały czujnik się nagrzał to nawet i po oddaleniu grotu od czujnika temperatura jeszcze wzrosła o 2 stopnie. Niestety ale przez to że za bardzo skupiłem się na nagrywaniu to delikatnie stopiłem plastik z czujnika, ale na szczęście nie zakłóca to pomiarów. 🙂 To tyle z mojej strony, bardzo Ci dziękuję jeśli przeczytałeś to całe. Będzie mi bardzo miło gdy napiszesz opinie i uwagi, nie tylko odnośnie projektu i kodu ale też odnośnie tego jak napisałem ten artykuł. Bardzo dziękuję i pozdrawiam! 😄
  2. Jakiś czas temu postanowiłem zbudować zegarek z jakimś termometrem i od razu zabrałem się do roboty dopiero później dodałem do niego buzzer by mógł służyć też w razie potrzeby za budzik. Do budowy wykorzystałem zegar czasu rzeczywistego ds1307, arduino nano, wyświetlacz lcd 2x16 wraz z konwerterem I2C, przetwornicę step up na 5v, akumulator li-ion, termometr dht11 oraz moduł ładowania. Z racji , że nie posiadam drukarki 3d a nie chciało mi się wykonywać całej obudowy zegarka ze sklejki postanowiłem użyć plastikowego opakowania znalezionego u siebie w pokoju przy okazji postanowiłem zużyć trochę elementów odlutowanych z różnych elektro śmieci. Zdjęcia: Jak widać na jednym z zdjęć postanowiłem wykorzystać ds1307 w wersji modułu do przylutowania nie zaś płytki z modułem ponieważ chciałem wypróbować wyjście tego układu(na filmie wykorzystałem je do migania diodą podczas alarmu).Przetwornica z kolei była niezbędna do działania wyświetlacza który bez tych 5v miał tak słabe podświetlenie że niewiele było widać a buzzer ukryłem pod mikrokontrolerem. Jeśli chodzi o montaż to większość trzyma się na śrubach poza przetwornicą i modułem ładowanie które przymocowałem klejem na gorąco oraz przyciskami które są zamontowane na wcisk. Jeden włącza cały zegarek drugi wyłącza alarm. Film: Na filmie uchwyciłem moment aktywacji alarmu. Zegarek najlepiej wygląda kiedy jest ciemno wtedy właśnie najlepsze wrażenie sprawia dioda która oświetla od wewnątrz plątaninę kabli znajdującą się wewnątrz. Co do kodu to jest on tak prosty jak się da z po za tym korzystałem z bibliotek: Wire, DHT, LiquidCrystal_I2C, DS1307. Szczególnie warto wspomnieć o tej ostatniej nad wyraz wygodna oferująca funkcje sterowania wyjściem zegara i dostępu do wewnętrznej wbudowanej w zegar pamięci przygotowana przez jarzebskiego jak toś będzie chciał to wystarczy po prostu wpisać w wyszukiwarkę i wyskoczy na pierwszym miejscu.
  3. Dzień dobry , zrobiłem proste , a nawet bardzo proste urządzenie do pomiaru temperatury i wilgotności powietrza za pomocą dht11 . Może nie jest piękne ale mi się podoba. Użyte przeze mnie części to : -arduino pro mini -dht11 -przetwornica step-up - akumulatorek 18650 -wyświetlacz LCD -konwerter I2C Opis działania : Czujnik wysyła dane do Arduino poprzez interfejs 1-wire . Arduino odczytuje i konwertuje dane za pomocą biblioteki "DHT.h". Na końcu za pomocą biblioteki "LiquidCrystal_I2C" wysyła dane magistralą I2C i wyświetla je na wyświetlaczu.
  4. Witam, muszę zaimplementować odczyt temperatury z czujnika DHT11 poprzez STM32F103RB i wysyłać to poprzez USART(9600b/s). Korzystam z DWT_delay aby mieć opóźnienie w us do inicjalizacji DHT. Problem polega na tym, że mikroprocesor pobiera dane tylko raz i zawiesza się. USART obsługuje przerwania i jest zaimplementowany na buforze kołowym(piny domyślnie PA2-PA3). Dodatkowo mam wyświetlacz 7-segmentowy i docelowo chce na nim wyświetlać dane ( podpięcia PA0-PA1,PA4-PA8) z czujnika(PA9). Po resecie z watchdoga/czarnego buttona na nowo pobrane są dobre dane. W załączniku podsyłam program main z CubeIDE. ProjectMain.zip
  5. Cześć, ostatnio ćwiczę trochę z pomiarami temperatury i wilgotności czyli DHT + ESP8266. Męczę różne konfigurację bazując na tym kodzie ze strony https://lastminuteengineers.com/esp8266-dht11-dht22-web-server-tutorial/ : #include <ESP8266WiFi.h> #include <ESP8266WebServer.h> #include "DHT.h" // Uncomment one of the lines below for whatever DHT sensor type you're using! //#define DHTTYPE DHT11 // DHT 11 //#define DHTTYPE DHT21 // DHT 21 (AM2301) #define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 /*Put your SSID & Password*/ const char* ssid = "YourNetworkName"; // Enter SSID here const char* password = "YourPassword"; //Enter Password here ESP8266WebServer server(80); // DHT Sensor uint8_t DHTPin = D8; // Initialize DHT sensor. DHT dht(DHTPin, DHTTYPE); float Temperature; float Humidity; void setup() { Serial.begin(115200); delay(100); pinMode(DHTPin, INPUT); dht.begin(); Serial.println("Connecting to "); Serial.println(ssid); //connect to your local wi-fi network WiFi.begin(ssid, password); //check wi-fi is connected to wi-fi network while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected..!"); Serial.print("Got IP: "); Serial.println(WiFi.localIP()); server.on("/", handle_OnConnect); server.onNotFound(handle_NotFound); server.begin(); Serial.println("HTTP server started"); } void loop() { server.handleClient(); } void handle_OnConnect() { Temperature = dht.readTemperature(); // Gets the values of the temperature Humidity = dht.readHumidity(); // Gets the values of the humidity server.send(200, "text/html", SendHTML(Temperature,Humidity)); } void handle_NotFound(){ server.send(404, "text/plain", "Not found"); } String SendHTML(float Temperaturestat,float Humiditystat){ String ptr = "<!DOCTYPE html> <html>\n"; ptr +="<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=no\">\n"; ptr +="<title>ESP8266 Weather Report</title>\n"; ptr +="<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto; text-align: center;}\n"; ptr +="body{margin-top: 50px;} h1 {color: #444444;margin: 50px auto 30px;}\n"; ptr +="p {font-size: 24px;color: #444444;margin-bottom: 10px;}\n"; ptr +="</style>\n"; ptr +="</head>\n"; ptr +="<body>\n"; ptr +="<div id=\"webpage\">\n"; ptr +="<h1>ESP8266 NodeMCU Weather Report</h1>\n"; ptr +="<p>Temperature: "; ptr +=(int)Temperaturestat; ptr +="°C</p>"; ptr +="<p>Humidity: "; ptr +=(int)Humiditystat; ptr +="%</p>"; ptr +="</div>\n"; ptr +="</body>\n"; ptr +="</html>\n"; return ptr; } Mam jednak kilka uwag i pytań. Podczas podgrywania programu (lub resetu/wyłączenia zasilania) moduł dht musi być odłączony od układu ESP. W innym wypadku program się nie podegra (w przypadku resetu nie wystartują pomiary). Dodałem w kodzie, zasilanie układu dht, po kilku sekundach od podegrania/resetu, dzięki temu moduł DHT działa prawidłowo. Pytanie brzmi dlaczego tak się dzieje? Czy jest to jakiś konflikt na magistrali 1-wire?? Wyczytałem że dht korzysta z takiej właśnie (zmodyfikowanej) magistrali. Jeśli to jest ta przyczyna to może ktoś zna szczegóły? Jeśli to coś innego to co? 🙂 Kolejna moja zagwozdka to czy jest możliwość podgarnia programu a dopiero później zadeklarować nazwę sieci i hasło? Myślałem wstępnie o wpisywaniu tego przez konsolę szeregową ale czy jest to możliwe? A jeśli tak to zapisy do zmiennej a następnie reset całego układu i to wszystko wywołane z konsoli szeregowej? Ponieważ trochę się już nad tym zastanawiam proszę o jakąś podpowiedź. 🙂 Pozdrawiam.
  6. Witam Szanowne grono forum FORBOT mianowicie tak jak w tytule mam problem z przesłaniem danych temperatury do domoticza w raspberry Mianowicie robie wszystko tak ja podane na tej stronie http://kostrzewinki.pl/1-schemat-podlaczenia-czujnika-temperatury-wilgotnosci-dht-11/ po wywołaniu polecenia sudo ./AdafruitDHT.py 11 4 temperatura jak i wilgotnosc sie wyswietla potem tworze plik poleceniem sudo nano temp.sh i tu moje pytanie czy trzeba tworzyc na tym etapie gdy w konsoli mam Czy utworzyc ten plik gdy wyjde z adafruit_python_DHT/examples S np przez utworzenie nowej sesji... Nastepnie dodaje w tym pliku kod # Domoticz server SERVER="192.168.0.15:8080" # DHT IDX DHTIDX="107" # DHTPIN DHTPIN="4" sleep 5 sudo nice -20 python /home/pi/Adafruit_Python_DHT/examples/AdafruitDHT.py 11 $DHTPIN > /var/tmp/temp.txt #TEMP=$(cat /var/tmp/temp.txt | grep "Temp" | awk '{ print $3 }') #TEMP=$(cat /var/tmp/temp.txt | grep "Temp") TEMP=$(awk ' /Temp/ {print substr ($0,6,4)}' /var/tmp/temp.txt) #HUM=$(awk ' /Hudmidity/ {print substr ($0,0)}' /var/tmp/temp.txt) #HUM=$(awk ' /Humidity/ {print 1$}' /var/tmp/temp.txt) HUM=$(awk ' /Humidity/ {print substr ($0,22,4)}' /var/tmp/temp.txt) echo $TEMP echo $HUM # Send data curl -s -i -H "Accept: application/json" "http://192.168.0.15:8080/json.htm?type=command&c=getauth&param=udevice&idx=107&nvalue=0&svalue=$TEMP;$HUM;2" TEMP="" HUM="" Potem zapisuje plik podaje sudo chmod +x temp.sh Dadaje do crontab -e oczywiscie wszystko wczesnie zrobione w domoticz przycisk wirtualny etc. ale temperatura nie zmienia sie cały czas jest 0st Prosze o JAKAS PODPOWIEDZ. Cos gdzies robie nie tak tylko jeszcze nie wiem co.
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.