Elektroda.pl
Elektroda.pl
X
Relpol przekaźniki
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

System zdalnego sterowania i odczytu temperatury opraty o Arduino

mariuszmmakowski 24 Paź 2019 17:01 849 12
  • Witam, jest to mój pierwszy post więc proszę o wyrozumiałość ;)
    Chciałem przedstawić Wam jeden z moich wielu projektów. Na co dzień zajmuje się programowaniem w c#, c++, python, java, php, html, css. Wykonuje aplikacje na systemy windows, linux, ios oraz android. Znajomy napisał do mnie, aby stworzyć coś do zdalnego odczytu temperatury i sterowania grzałkami. Tak powstał ten projekt ;)


    Sterowanie przekaźnikami i odczyt temperatury odbywa się przez autorski serwis.

    Na wyświetlaczu wyświetla się:

    - temperatura ze wszystkich czujników (max 6)

    - zasięg sieci wifi

    - informacja o przekroczeniu temperatury (na danym czujniku)

    - informacja o spadku temperatury (na danym czujniku)

    Do modułu można podłączyć beeper, który będzie informował nas o alercie temperaturowym.
    Jest też możliwość podłączenia przycisku, który odpowiada za restart konfiguracji wifi oraz wzbudzenie podświetlenia wyświetlacza na 10 sekund. Wyświetlacz zacznie migać, jeśli wystąpi alert temperaturowy.

    Co można robić w panelu konfiguracyjnym?

    - edycja nazw przekaźników

    - edycja nazw czujników temperatury

    - podgląd historii temperatury z dowolnego czujnika

    - edycja progu wysokiej temperatury dla dowolnego czujnika

    - edycja progu niskiej temperatury dla dowolnego czujnika

    - możliwość włączenia alertów o wysokiej lub niskiej temperaturze na dowolnym czujniku

    - edycja danych do logowania (nazwa konta, hasło)

    - sterowanie przekaźnikami

    - podgląd temperatury na dowolnym czujniku

    - możliwość wyłączenia beepera na dowolnym czujniku

    System jest przystosowany do działania z internetem i tylko wtedy jest aktywny. Jeśli z jakichś powodów zniknie sieć wifi system przechodzi w stan uśpienia i czeka na połączenie, które nastąpi automatycznie.

    Wszystkie stany włączonych przekaźników oraz historia temperatur są przechowywane w bazie na serwerze. Jeśli nie mamy połączenia z internetem nasze przekaźniki wyłączają się. Możliwość zalogowania do panelu jest tylko wtedy kiedy system jest połączony z siecią wifi.

    Projekt będzie rozwijany o:
    - możliwość pracy bez internetu
    - możliwość załączenia/wyłaczenia przekaźnika w danym dniu, godzinie, minucie
    - możliwość włączenia/wyłaczenia przekaźnika jeśli temperatura na danym czujniku spadnie lub wzrośnie
    - poprawa szaty graficznej całego panelu serwisu na jeszcze ładniejszy
    - aplikacja na telefony (ios, android)
    - aplikacja na systemy windows

    Poniżej kilka załączników.
    Pozdrawiam.

    System zdalnego sterowania i odczytu temperatury opraty o Arduino








    System zdalnego sterowania i odczytu temperatury opraty o Arduino System zdalnego sterowania i odczytu temperatury opraty o Arduino System zdalnego sterowania i odczytu temperatury opraty o Arduino System zdalnego sterowania i odczytu temperatury opraty o Arduino System zdalnego sterowania i odczytu temperatury opraty o Arduino System zdalnego sterowania i odczytu temperatury opraty o Arduino System zdalnego sterowania i odczytu temperatury opraty o Arduino System zdalnego sterowania i odczytu temperatury opraty o Arduino System zdalnego sterowania i odczytu temperatury opraty o Arduino

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    mariuszmmakowski
    Poziom 6  
    Offline 
    mariuszmmakowski napisał 5 postów o ocenie 8, pomógł 0 razy. Jest z nami od 2015 roku.
  • Relpol przekaźniki
  • #2
    PawelSkrzypulec76
    Poziom 6  
    Trochę mało szczegółów. Jakieś schematy, zdjęcia płytki drukowanej itp. bardzo by wszystkich interesowało. Tak myślę.
  • #3
    sqmir
    Poziom 9  
    Super sprawa! Estetycznie i elegancko:)

    Ja jako ciągle początkujący w .Net zastanawiam się nad sposobem ładowania danych do bazy po http.

    Pomysł za który się nie zabrałem jeszcze to web api na serwerze i http post trigerowany przez arduino lub coś na embeded platformie /orange pi, rassbery/.

    W jaki sposób realizujesz "upload" danych do bazy, mogę prosić o krótki, blokowy opis użytych metod?

    Czy cały moduł zbierający temperaturę i robiący upload to na ESP82xx ?
    UPDATE: teraz widzę, to arduino a jeśli tak to jaki moduł WIFI został użyty?

    Pozdrawiam,
    Sławek
  • Relpol przekaźniki
  • #5
    mariuszmmakowski
    Poziom 6  
    sqmir napisał:
    Super sprawa! Estetycznie i elegancko:)

    Ja jako ciągle początkujący w .Net zastanawiam się nad sposobem ładowania danych do bazy po http.

    Pomysł za który się nie zabrałem jeszcze to web api na serwerze i http post trigerowany przez arduino lub coś na embeded platformie /orange pi, rassbery/.

    W jaki sposób realizujesz "upload" danych do bazy, mogę prosić o krótki, blokowy opis użytych metod?

    Czy cały moduł zbierający temperaturę i robiący upload to na ESP82xx ?
    UPDATE: teraz widzę, to arduino a jeśli tak to jaki moduł WIFI został użyty?

    Pozdrawiam,
    Sławek


    Moduł, na którym działa system to: NodeMcu V3 WIFI.
    Jeśli chodzi o komunikacje między node a serwerem to tak...
    Node wysyła post na plik php który jest na serwerze pod danym adresem.
    Skrypt php się wykonuje i zwraca wszystkie informacje w formacie json.
    Oczywiście dane po https są szyfrowane tak, aby nikt ich nie mógł sobie odczytać.
    Komunikacja jest dwu kierunkowa dane lecą z serwera do node i z node do serwera.
    Dzięki temu wystarczy połączyć moduł z dowolną siecią wifi i wszystko działa, nie trzeba przekierowywać portów na routerze itd. Mamy dostęp zdalny z całego świata.

    Z ciekawostek, opóźnienie względem node a serwerem to jakieś 200ms, dzięki formatowi json ;)

    Napisałeś o projekcie raspberry, osobiście odradzam. Nie jest stabilny i jeśli pakujesz dużo danych na lokalną bazę danych to po kilku miesiącach będziesz miał kartę pamięci do wyrzucenia. Przerabiałem ten projekt wiele razy, stawiałem systemy na autorskim projekcie. Z raspberry zawsze były problemy. Jeśli chcesz mieć np. 200 pinów pinów wejściowych i wyjściowych. Wystarczy, że dokupisz sobie expander (PCF8574) pod i2c.

    Dodano po 5 [minuty]:

    PawelSkrzypulec76 napisał:
    Trochę mało szczegółów. Jakieś schematy, zdjęcia płytki drukowanej itp. bardzo by wszystkich interesowało. Tak myślę.


    Jeśli chodzi o elektronikę, projekt składa się z:
    1. NodeMcu V3 WIFI.
    2. Wyświetlacz lcd 2x16 z konwerterem i2c
    3. Moduł przekaźników 8 kanałów z optoizolacją - styki 10A/250VAC - cewka 5V
    4. Kabelki do płytek prototypowych ;)

    Najwięcej zabawy było z samym przegotowaniem kodu na esp i kodu na serwer.
    Tam wszystko jest bardziej skomplikowane ;)
    To wszystko, pozdrawiam.

    Dodano po 13 [minuty]:

    mariuszmmakowski napisał:
    sqmir napisał:
    Super sprawa! Estetycznie i elegancko:)

    Ja jako ciągle początkujący w .Net zastanawiam się nad sposobem ładowania danych do bazy po http.

    Pomysł za który się nie zabrałem jeszcze to web api na serwerze i http post trigerowany przez arduino lub coś na embeded platformie /orange pi, rassbery/.

    W jaki sposób realizujesz "upload" danych do bazy, mogę prosić o krótki, blokowy opis użytych metod?

    Czy cały moduł zbierający temperaturę i robiący upload to na ESP82xx ?
    UPDATE: teraz widzę, to arduino a jeśli tak to jaki moduł WIFI został użyty?

    Pozdrawiam,
    Sławek


    Moduł, na którym działa system to: NodeMcu V3 WIFI.
    Jeśli chodzi o komunikacje między node a serwerem to tak...
    Node wysyła post na plik php który jest na serwerze pod danym adresem.
    Skrypt php się wykonuje i zwraca wszystkie informacje w formacie json.
    Oczywiście dane po https są szyfrowane tak, aby nikt ich nie mógł sobie odczytać.
    Komunikacja jest dwu kierunkowa dane lecą z serwera do node i z node do serwera.
    Dzięki temu wystarczy połączyć moduł z dowolną siecią wifi i wszystko działa, nie trzeba przekierowywać portów na routerze itd. Mamy dostęp zdalny z całego świata.

    Z ciekawostek, opóźnienie względem node a serwerem to jakieś 200ms, dzięki formatowi json ;)

    Napisałeś o projekcie raspberry, osobiście odradzam. Nie jest stabilny i jeśli pakujesz dużo danych na lokalną bazę danych to po kilku miesiącach będziesz miał kartę pamięci do wyrzucenia. Przerabiałem ten projekt wiele razy, stawiałem systemy na autorskim projekcie. Z raspberry zawsze były problemy. Jeśli chcesz mieć np. 200 pinów pinów wejściowych i wyjściowych. Wystarczy, że dokupisz sobie expander (PCF8574) pod i2c.

    Dodano po 5 [minuty]:

    PawelSkrzypulec76 napisał:
    Trochę mało szczegółów. Jakieś schematy, zdjęcia płytki drukowanej itp. bardzo by wszystkich interesowało. Tak myślę.


    Jeśli chodzi o elektronikę, projekt składa się z:
    1. NodeMcu V3 WIFI.
    2. Wyświetlacz lcd 2x16 z konwerterem i2c
    3. Moduł przekaźników 8 kanałów z optoizolacją - styki 10A/250VAC - cewka 5V
    4. Kabelki do płytek prototypowych ;)

    Najwięcej zabawy było z samym przegotowaniem kodu na esp i kodu na serwer.
    Tam wszystko jest bardziej skomplikowane ;)
    To wszystko, pozdrawiam.


    Dodam jeszcze że takich systemów na node mogę sobie dodać każdą ilość. Na serwerze jest panel do logowania, który łączy się z odpowiednim node po numerze seryjnym. Autoryzacja na serwerze jest tylko wtedy kiedy od bazy dodam numer seryjny node. W innym wypadku dane do serwera nie dochodzą i nie ma możliwości sterowania. Jest to fajne bo np 20 użytkowników na raz loguje się do panelu i każdy osobno steruje swoim node. Strona jest dostępna pod adresem: smartcontrol com pl
  • #6
    Slawek K.
    Poziom 31  
    Na raspberry da sie bez problemu zrobić, tylko nie na karcie pameci a wstarczy postawic system na dysku, np. SSD. Mam Domoticza od ponad roku i wszytsko śmiga bez problemu. Mam zdefiniowanych około setki urzadzen, z czego kilkadziesiąt to czujniki, i odczyty sa zapisywane w bazie co 30s w różnym czasie, więc danych jest duzo i zapisów również.

    Pozdr
  • #7
    osctest1
    Poziom 19  
    System zdalnego sterowania i odczytu temperatury opraty o Arduino
    mariuszmmakowski napisał:
    Sterowanie przekaźnikami i odczyt temperatury odbywa się przez autorski serwis.


    Co to znaczy?

    mariuszmmakowski napisał:
    Przerabiałem ten projekt wiele razy, stawiałem systemy na autorskim projekcie.

    Co Ty z tym autorskim? O co chodzi.
    mariuszmmakowski napisał:
    Z raspberry zawsze były problemy.
    Bzdury.
    mariuszmmakowski napisał:
    Moduł, na którym działa system to: NodeMcu V3 WIFI
    To Cię inny Kolega pytał czy to ESP?

    mariuszmmakowski napisał:
    Moduł przekaźników 8 kanałów z optoizolacją - styki 10A/250VAC - cewka 5V

    I coś takiego? Czekamy aż coś sfajczysz (módl się żeby nie chałupę)

    System zdalnego sterowania i odczytu temperatury opraty o Arduino

    Serwer "pełna profeska"

    System zdalnego sterowania i odczytu temperatury opraty o Arduino

    Zobaczyłem czy to może tylko brak przekierowań na https (co zresztą też dla zawodowca jest jest delikatnie rzecz ujmując żenujące) .... ale
    System zdalnego sterowania i odczytu temperatury opraty o Arduino

    mariuszmmakowski napisał:
    Oczywiście dane po https są szyfrowane tak, aby nikt ich nie mógł sobie odczytać.
    Jakośc tego nie widać na stronie. Ale załóżmy że same komunikaty są tak wysyłane, to samo https to za mało współcześnie - jakoś sobie nie wyobrażam żeby nie użyć HMAC-a aby zagwarantować autentyczność i integralność komunikatu.

    Jak byś nie napisał że:
    mariuszmmakowski napisał:
    Na co dzień zajmuje się programowaniem w c#, c++, python, java, php, html, css. Wykonuje aplikacje na systemy windows, linux, ios oraz android.
    to bym Cię (poza fizycznym wykonaniem) nawet pochwalił za chęci i inicjatywę do pierwszych wprawek i prób z uK.
  • #8
    mariuszmmakowski
    Poziom 6  
    osctest1 napisał:
    System zdalnego sterowania i odczytu temperatury opraty o Arduino
    mariuszmmakowski napisał:
    Sterowanie przekaźnikami i odczyt temperatury odbywa się przez autorski serwis.


    Co to znaczy?

    mariuszmmakowski napisał:
    Przerabiałem ten projekt wiele razy, stawiałem systemy na autorskim projekcie.

    Co Ty z tym autorskim? O co chodzi.
    mariuszmmakowski napisał:
    Z raspberry zawsze były problemy.
    Bzdury.
    mariuszmmakowski napisał:
    Moduł, na którym działa system to: NodeMcu V3 WIFI
    To Cię inny Kolega pytał czy to ESP?

    mariuszmmakowski napisał:
    Moduł przekaźników 8 kanałów z optoizolacją - styki 10A/250VAC - cewka 5V

    I coś takiego? Czekamy aż coś sfajczysz (módl się żeby nie chałupę)

    System zdalnego sterowania i odczytu temperatury opraty o Arduino

    Serwer "pełna profeska"

    System zdalnego sterowania i odczytu temperatury opraty o Arduino

    Zobaczyłem czy to może tylko brak przekierowań na https (co zresztą też dla zawodowca jest jest delikatnie rzecz ujmując żenujące) .... ale
    System zdalnego sterowania i odczytu temperatury opraty o Arduino

    mariuszmmakowski napisał:
    Oczywiście dane po https są szyfrowane tak, aby nikt ich nie mógł sobie odczytać.
    Jakośc tego nie widać na stronie. Ale załóżmy że same komunikaty są tak wysyłane, to samo https to za mało współcześnie - jakoś sobie nie wyobrażam żeby nie użyć HMAC-a aby zagwarantować autentyczność i integralność komunikatu.

    Jak byś nie napisał że:
    mariuszmmakowski napisał:
    Na co dzień zajmuje się programowaniem w c#, c++, python, java, php, html, css. Wykonuje aplikacje na systemy windows, linux, ios oraz android.
    to bym Cię (poza fizycznym wykonaniem) nawet pochwalił za chęci i inicjatywę do pierwszych wprawek i prób z uK.


    Jeśli chodzi o aktualny stan strony, faktycznie jest bez https. Cały czas rozwijam projekt i certyfikaty są wyłączone. Stosowanie w tym projekcie kluczy HMAC to przerost formy nad treścią. Node w celu autoryzacji wysyła dane takie jak: klucz api oraz serial chipu. Jeśli te dany nie istnieją w bazie danych na serwerze, autoryzacja się nie powiedzie. Nic się nie stanie, jeśli ktoś przechwyci pakiety https do serwera, ponieważ i tak są szyfrowane. Jedyna opcja na złamanie systemu to szukania dziur w stronie internetowej i próba uzyskania wglądu do bazy. Lub włam na serwer ;) Takie zabezpieczenie powstało tylko po to, aby jakiś cwaniak nie zgrał sobie z chipu obrazu i wgrał na swój esp. W tym wypadku, nawet jeśli zgra i połączy się z siecią, autoryzacja po stronie serwera się nie powiedzie, ponieważ nie będzie w stanie zmienić numeru seryjnego chipu.

    Pamiętajmy, że nie ma rzeczy nie do złamania, ;) niektóre systemy nie wymagają dużej ilości zabezpieczeń tylko takich, które dobrze działają. Każde zabezpieczenie to potencajlny backdoor dla osób które siedzią w temacie. Sam siedzę w temacie;)
    Pozdrawiam

    Dodano po 15 [minuty]:

    mariuszmmakowski napisał:
    mariuszmmakowski napisał:
    Sterowanie przekaźnikami i odczyt temperatury odbywa się przez autorski serwis.


    Co to znaczy?

    mariuszmmakowski napisał:
    Przerabiałem ten projekt wiele razy, stawiałem systemy na autorskim projekcie.

    Co Ty z tym autorskim? O co chodzi.
    mariuszmmakowski napisał:
    Z raspberry zawsze były problemy.
    Bzdury.
    mariuszmmakowski napisał:
    Moduł, na którym działa system to: NodeMcu V3 WIFI
    To Cię inny Kolega pytał czy to ESP?

    mariuszmmakowski napisał:
    Moduł przekaźników 8 kanałów z optoizolacją - styki 10A/250VAC - cewka 5V

    I coś takiego? Czekamy aż coś sfajczysz (módl się żeby nie chałupę)



    Sterowanie przekaźnikami i odczyt temperatury odbywa się przez autorski serwis.
    Co to znaczy?
    Znaczy to, tyle że sterować przekaźnikami oraz odczytywać temperaturę możesz przez stronę internetową po zalogowaniu, czyli autorski serwis.

    Z raspberry zawsze były problemy.
    Bzdury.
    Na jakiej podstawie tak uważasz, ile przerobiłeś projektów na rasppbery, jeśli robiłeś to jakie?

    Moduł, na którym działa system to: NodeMcu V3 WIFI
    To Cię inny Kolega pytał czy to ESP?

    Inny kolega pytał co jest modułem wifi.

    Moduł przekaźników 8 kanałów z optoizolacją - styki 10A/250VAC - cewka 5V
    I coś takiego? Czekamy aż coś sfajczysz (módl się żeby nie chałupę)

    Jest to projekt, który jest w trakcie przegotowania, rozwijany. Całość jest na biurku tak, aby można było łatwo ingerować i podłączać kolejne moduły. Logiczne jest, że gdybym montował całość w domu do codziennego użytku, tak by nie wyglądało. Chodziło o pokazanie projektu, który działa i jest dalej rozwijany. Jeśli czekasz na sfajczenie, może lepiej wyjdź na dwór do ludzi w sylwestra i obserwuj, tam szybciej ktoś coś sfajczy niż ja włączając przekaźnik sterowany 5v. Pozdrawiam wszystkich napinaczy ;)
  • #9
    osctest1
    Poziom 19  
    mariuszmmakowski napisał:
    Stosowanie w tym projekcie kluczy HMAC to przerost formy nad treścią. N
    Ciekawe na czym polega ten przerost? Toż to jest prościutkie do zrobienie a API ESP zapewnia biblioteki SHA i BASE64
  • #10
    mariuszmmakowski
    Poziom 6  
    osctest1 napisał:
    mariuszmmakowski napisał:
    Stosowanie w tym projekcie kluczy HMAC to przerost formy nad treścią. N
    Ciekawe na czym polega ten przerost? Toż to jest prościutkie do zrobienie a API ESP zapewnia biblioteki SHA i BASE64


    A skąd pewność że nie używam szyfrowania sha + md5 + sole i innych wariantów?
  • #11
    osctest1
    Poziom 19  
    mariuszmmakowski napisał:
    A skąd pewność że nie używam szyfrowania sha + md5 + sole i innych wariantów?
    bo się pochwaliłeś https, gdybyś używał to byś się też pochwalił. Do tego nawet strona bez https
  • #12
    mariuszmmakowski
    Poziom 6  
    osctest1 napisał:
    mariuszmmakowski napisał:
    A skąd pewność że nie używam szyfrowania sha + md5 + sole i innych wariantów?
    bo się pochwaliłeś https, gdybyś używał to byś się też pochwalił. Do tego nawet strona bez https


    Yhymmmmmmmm
  • Pomocny post
    #13
    sqmir
    Poziom 9  
    Panie @osctest1, nie wiem jakie masz zdolności techniczne oraz wiedzę ale interpersonalnych na pewno żadnych więc jeśli już czujesz się mocny w tematach tech to teraz pora zająć się rozwojem osobistym, w tej dziedzinie raczej szukaj kursów z serii "wstęp do zarysu podstaw".

    EDIT:

    Dlaczego admini nie reagują na tego typu posty? Nie róbcie z elektrody kącika dla frustratów którzy swoje kompleksy tu leczą.