Skocz do zawartości

Przeszukaj forum

Pokazywanie wyników dla tagów 'jsn-sr04t'.

  • 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
    • 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

Znaleziono 1 wynik

  1. System monitorowania poziomu wody w studni z funkcją stacji pogodowej Mój ogród, podobnie jak wiele innych, jest uzależniony od wody ze studni. Często borykałem się z problemem nieregularnego napełniania się studni, szczególnie w okresach suszy. Wielokrotnie zdarzało się, że pompa pracowała na sucho, co prowadziło do jej zapowietrzenia. Stworzyłem system monitoringu poziomu wody w studni, który sprawdza poziom wody i jej temperaturę. Pierwotnie w skład projektu wchodziły dwa urządzenia- nadajnik oparty o Pi Pico W umieszczony przy studni oraz odbiornik jako urządzenie oparte na Raspberry Pi pico. Oba urządzenia komunikowały się radiowo poprzez NRF24L01. Ze względu na problemy ze stabilizacją działania tych modułów radiowych projekt obecnie oparty jest na jednym Pi Pico W w specjalnie zaprojektowanej obudowie znajdującej się przy studni. Wysyła ono dane na serwer oparty na systemie Fedora Server. Serwer ten wstawia dane do bazy danych oraz generuje stronę www, która w sposób estetyczny pokazuje wyniki pomiarów. def send_data(data): ''' Sending data to the server''' try: # Determining the server address addr_info = socket.getaddrinfo('000.000.000.000', 5001) addr = addr_info[0][-1] # Creating and connecting a socket s = socket.socket() s.connect(addr) data = data.replace(' ', '+') # Preparing and sending an HTTP request request = "GET /update?data=" + str(data) + " HTTP/1.1\r\nHost: 000.000.000.000\r\nConnection: close\r\n\r\n" lcd.move_to(14,1) lcd.putstr('s1') s.send(bytes(request, 'utf8')) except: print(f'Failed to send data.') Przejdźmy do szczegółów. Do pomiaru poziomu wody użyłem wodoodpornego czujnika ultradźwiękowego JSN-SR04T. Swoją drogą naprawdę go polecam bo działa już 3 sezon bez żadnych problemów. Kluczem było tutaj odpowiednie zawieszenie sensora tak aby w jego zasięgu znajdowało się wyłącznie lustro wody a nie ścianki studni. Jego zakres pomiarowy to 20-450 cm a kąt pomiarowy mniej niż 50 stopni. Dokładność pomiarów +-3mm jak dla mnie wystarczająca do tego zastosowania. def get_distance(): count_d = 0 d = sensor.distance_cm() while d < 5: actual_time = formated_time() lcd.move_to(0,0) lcd.putstr(actual_time[9:18]) lcd.move_to(14,1) lcd.putstr('d' + str(count_d)) print('Proba uzyskania glebokosci studni: ' + str(count_d)) d = sensor.distance_cm() sleep(1) count_d = count_d + 1 if count_d >5: return 0 break # print('Distance:', distance, 'cm') #sleep(0.1) lcd.move_to(14,1) lcd.putstr(' ') return d W wodzie zanurzony jest kolejny z czujników kupiony zresztą też w sklepie Botland: DS18B20. Zakres pomiaru temperatury: -55°C do +125°C z dokładnością +- 0,5 stopnia. Nie sądzę abym za mojego życia potrzebował szerszego zakresu pomiarowego do pomiaru wody w studni Ja kupiłem wersję z 5 metrowym przewodem, ale z tego co widzę są wersje z krótszymi przewodami i dłuższymi. Do projektu dołożyłem także czujnik do pomiaru temperatury powietrza, wilgotności i ciśnienia atmosferycznego BME280. Zakres pomiarowy jest bardzo przyzwoity, temperaturę mierzy w zakresie-40°C - 85°C przy dokładności ±1°C. Wilgotność: 10% RH do 80% RH, dokładność ±3% RH. Ciśnienie powietrza: 300 hPa do 1100 hPa, dokładność ±1 hPa. temp, pressure, humidity = bme.read_compensated_data() temperature = temp / 100 # Temperatura w °C pressure = pressure / 100 / 256 # Ciśnienie w hPa humidity = humidity / 1024 # Wilgotność w % temperature = "{:02d}".format(round(temperature)) pressure = "{:02d}".format(round(pressure)) humidity = "{:02d}".format(round(humidity)) Co prawda z poziomu serwera można zarządzać czasem pomiaru to jednak dodałem niejako standardowo do projektu zegar DS1302 RTC. Urządzenie aktualizuje swój czas po włączeniu. def get_current_datetime(): response = urequests.get("http://worldtimeapi.org/api/timezone/Europe/Warsaw") data = response.json() datetime = data["datetime"] return datetime def set_ds1302_datetime(datetime_str): #print("Received datetime string:", datetime_str) datetime_obj = utime.localtime(utime.mktime((int(datetime_str[0:4]), int(datetime_str[5:7]), int(datetime_str[8:10]), int(datetime_str[11:13]), int(datetime_str[14:16]), int(datetime_str[17:19]), 0, 0,))) datetime_list = [datetime_obj[0], datetime_obj[1], datetime_obj[2], datetime_obj[6] + 1, datetime_obj[3], datetime_obj[4], datetime_obj[5], 0] #print("Converted datetime list:", datetime_list) ds.date_time(datetime_list) Moduł przy studni zawiera także wyświetlacz aby można było sprawdzić parametry będąc koło studni. Jest to typowy LCD 2x16 z konwerterem I2C LCM1602 W kodzie programu będzie widoczny import biblioteki NRF24L01. Mam ciągły „uraz” po pomimo dodania kondensatora elektronicznego i ceramicznego bezpośrednio przy VCC i GND modułu, nie byłem wstanie okiełznać w sposób zadowalający jego działania. Może kiedyś... W tym sezonie chciałbym rozbudować urządzenie o funkcję automatycznego włączania i wyłączania pompy w zależności od poziomu wody. Na zdjęciach obudowy można zobaczyć specjalne porty na kable wejściowe i wyjściowe. Jest także miejsce przekaźnik 250 VAC z optoizolacją. Pod jego 4 złącza podłączę w przyszłości zarówno pompę jak i elektrozawory poszczególnych linii nawadniania. Wyniki pomiarów mogę przeglądać na specjalnej stronie hostowanej na własnym serwerze. Dostosowana jest ona zarówno do smartfonów jak i do czytnika ebook. Strona pokazuje w sposób graficzny poziom napełnienia studni oraz jej poziom sprzed 5 minut. Na koniec- samodzielnie zaprojektowana obudowa, w której każdy element ma swoje miejsce. Zapraszam także do obejrzenia filmu prezentującego rozwiązanie: link do youtube. Będę bardzo wdzięczny za wszelkie rady ale także i konstruktywną krytykę.
×
×
  • Utwórz nowe...