Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Fibaro Fibaro
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Stacja pogodowa z WiFi - przesyłanie informacji do aplikacji komputerowej

Adix3 19 Kwi 2015 19:35 1101 1
  • #1 19 Kwi 2015 19:35
    Adix3
    Poziom 13  

    Witam. Zrobiłem sobie stację pogodową na uC, która dokonuje pomiaru temperatury, wilgotności oraz siły i kierunku wiatru. Mikrokontroler zajmuje się zbieraniem danych z czujniku i wyświetlaniem informacji na wyświetlaczu. Przeglądając ostatnio jakieś forum natrafiłem na moduły WiFi ESP8266. Chciałbym podłączyć taki moduł do mikrokontrolera i uzyskać dostęp do informacji przez internet.

    Nie bawiłem się jeszcze tymi modułami więc mam pytanie, jak dokładnie ten moduł działa? Z tego co wiem to można nawiązać połączenie TCP/IP z jakąś aplikacją i wysyłać pakiety danych, coś na wzór WinSocka. Przynajmniej tak mi się wydaje, że tak to działa. Zdaje się, że można też prowadzić komunikację UDP.

    No i najważniejsze pytanie jak rozwiązać wymianę informacji ze stacją pogodowa i aplikacją na komputerze? Z racji tego, że stacja pogodowa z tym modułem WiFi będzie łączyć się ze "światem" niestety przez łącze Netii (zmienne IP), tak więc w przypadku gdy dojedzie do rozłączenia routera z internetem, to po ponownym połączeniu będę miał inne IP. Więc odpada bezpośrednia komunikacja aplikacji komputerowej (napisanej pewnie w C#) ze stacją pogodową, za pomocą TCP/IP czy nawet UDP. Musiałbym za każdym razem gdy zmieni mi się IP routera, wpisywać nowy adres do aplikacji komputerowej, co może być męczące.

    Myślałem nad wykorzystaniem jakiegoś pośredniczącego serwera o stałym IP. Mam taki pomysł, ale nie wiem czy możliwy w realizacji, dlatego chciałbym zapytać czy to będzie działać, a mianowicie:

    stacja pogodowa łączyłaby się za pomocą modułu ESP8266 z jakimś dyskiem sieciowym np. google drive i tak zapisywała do jakiegoś pliku dane z czujników - o ile to możliwe. Potem aplikacja w komputerze łączyłaby się z tym samym dyskiem i odczytywał dane z pliku a następnie odpowiednio je prezentowała.

    Czy coś takiego jest możliwe? W ogóle czy moduł ESP8266 może zapisywać jakieś dane do pliku na serwerze?

    A może jakieś inne propozycje?

  • Fibaro
  • #2 20 Kwi 2015 18:46
    ostrytomasz
    Poziom 22  

    Moduł może działać w zależności od firmware albo jak modem (zestaw komend AT) albo niezależnie (ma wewnętrzny mikrokontroler, powstało np. firmware interpretujące skrypty lua).
    U mnie (link) w tym momencie coś podobnego działa przy wykorzystaniu osobnego mikrokontrolera (miałem już wcześniejszy program a w chwili uruchamiania SDK do ESP8266 nie było jeszcze oficjalnie dostępne - trochę pójście na łatwiznę ale ESP nie ma też ADC którego potrzebowałem). Raz na 15 minut AVR za pośrednictwem ESP8266 wywołuje (wysyła HTTP POST) skrypt php przekazując ciąg tekstowy z pomiarami. Skrypt php parsuje go (mocno powiedziane - trzy wartości) i zapisuje dane do bazy oraz dla mojej wygody (odczyt za pośrednictwem pluginu gg, tylko ostatni pomiar) do pliku tekstowego.
    Wydaje mi się, że jakiś mały hosting znaleźć można obecnie za darmo. Serwisy google mogą być o tyle problematyczne że prawdopodobnie wymagają SSL co w takim zastosowaniu może być przesadą.

    Edit: zmieniłem dwa dni temu układ na ESP8266 (bez osobnego mikrokontrolera) + BMP180 + Si7021. Ze względu na dużą ilość przykładów programuje się to łatwiej niż AVR. Z Si7021 jestem na razie średnio zadowolony - wygląda na to, że pomiar wilgotności dosyć łatwo nasyca się na poziomie 100% (w porównaniu z SHT11) pozostając na takim poziomie przez dłuższy czas. Być może jest to kwestia tego, że SHT11 używałem bez membrany ochronnej, a może po prostu Si7021 tak ma.

 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME