Witam,
Hmmm wyszedł dość skomplikowany tytuł ale chyba każdy z was wie o co chodzi. Dzisiaj rozpoczyna się krótki cykl poradnika na temat jak uruchomić serwer HTTP (web server) na małym procku AVR. Uwaga! tym razem nie będziemy bawić się w implementację stosu TCP w procku. Tym razem zaprzęgniemy do roboty w tym zakresie moduł ATNEL-WIFI232-T, który posiada już wbudowany stos TCP. Przy okazji niejako uzyskamy taki serwer z możliwością pracy bezprzewodowej, czyli radiowo! po WiFi!. Przygotujcie się na dawkę szaleństwa ;) ... przy czym mówiąc to mam na myśli nie tylko fakt - super łatwej implementacji tego rozwiązania ale także (a może niestety) nader rozbudowanej dawki mojego poczucia humoru. Jeśli kogoś moje poczucie irytuje i nie odpowiada to proszę sobie od razu przewinąć filmik do czasu 19:10. ;)
Uwaga, zanim powstanie ostatnia część tego cyklu, oddaję już do waszej dyspozycji dostęp bezpośredni do serwera HTTP, który będziemy budowali razem w tym poradniku. Już możecie testować, sprawdzać co się dzieje, jak to pracuje itp ;) Wystarczy kliknąć w poniższy link:
Serwer uruchomiony jest w oparciu o zestaw ATB, procesor ATmega32A i moduł ATNEL-WIFI.
Po obejrzeniu ostatniej części, każdy z was będzie sam we własnym zakresie tworzył takie serwerki.
Serwer uruchomiony jest w oparciu o zestaw ATB, procesor ATmega32A i moduł ATNEL-WIFI.
zapraszam na pierwszą część:
część 01
część 02
część 03
część 03
część 04
część 05
część 06
część 07
;)
Czy stos w ATNEL-WIFI232-T obsługuje wiele ramek, czy tylko jedną jak w przypadku przykładów ze strony tuxgraphics.org na ENC28J60?
OdpowiedzUsuńA co to znaczy "obsługuje wiele ramek" ? nie umiem odpowiedzieć na tak zadane pytanie bo nie wiem co masz na myśli :( ... Ze swojej strony mogę tylko powiedzieć że ten moduł potrafi w JEDNYM momencie obsłużyć max 5 połączeń TCP. Biorąc zaś pod uwagę że ustalamy jak tu np 2 sekundy sesji dla TCP/HTTP to można powiedzieć że w każdych 2 sekundach, pięć nowych osób może wyświetlić sobie stronkę ;) .... być może o to ci chodziło?
UsuńOjj... przepraszam, ale napisałem, nie ramka, tylko pakiet... tak to jest jak się robi coś na szybko.
UsuńUżywam trybu WWW Serwer, a ich (tuxgraphics.org) obsługa stosu zapewnia tylko przesłanie strony o wielkości do 1500 bajtów (czyli jeden pakiet IP), a w pewnym momencie jest to dla mnie ograniczeniem.
Czy moduł ATNEL-WIFI232-T daje możliwość przesłania w takim trybie strony o wielkości przekraczającej 1500 bajtów (czyli w postaci wielu pakietów IP)?
Tak na prawdę to i tuxgraphics może przesyłać więcej w jednym pakiecie ;) bo tu mówimy o TCP a nie o UDP. To sztuczne ograniczenie w Tuxgraphics spowodowane jest raczej niedostatkiem pamięci RAM z jakim zwykle spotykają się użytkownicy procków 8-bitowych. Generalnie można sobie w tym stosie to poszerzyć no ale to już trzeba sobie pogrzebać nieźle w ich bibliotekach i uważać na setki zależności.
UsuńReasumując - skoro mamy TCP więc mamy przesyłanie danych strumieniowe a nie datagramy jak w UDP, to oznacza - że w module ATNEL-WIFI nie ma absolutnie żadnego ograniczenia ;) pod tym względem. Proszę zrozumieć - że procek widzi ten moduł przez RS232 i może pchać pan do tej RURY ile wlezie ;) .... ile wlezie
Bardzo podoba mi się Twoje rozwiązanie z użyciem modułu ATNEL-WIFI, ponieważ jeśli dobrze zrozumiałem z poradnika - możliwe jest postawienie dzięki temu modułowi schludnie wyglądającą stronę, za pośrednictwem której można sterować urządzeniami przez Internet z dowolnego miejsca.. i to wszystko w oparciu o skromny 8-bitowy procesor AVR. WI-FI to jednak komunikacja radiowa, która jest mniej pewna (bardziej zawodna) od transmisji przewodowej (po kablu sieciowym). Do rozwiązań domowych (amatorskich) ATNEL-WIFI jest jak znalazł, natomiast czy instalacja takiego systemu w zakładzie produkcyjnym nie byłaby ryzykowna? Naprawdę dobrze działa ten moduł u Ciebie i pytam, bo zastanawiam się nad wdrożeniem Twojego rozwiązania u siebie w firmie, ale nie mam doświadczenia w modułach sieciowych, stąd moje obawy. Chciałbym mieć możliwość zdalnego sterowania niewielkich linii produkcyjnych przez Internet.
OdpowiedzUsuńPrzychodzi mi na myśl rozwiązanie nieco inne niż to w Bluebook'u - tzn. komunikacja AVR ze stroną postawioną na serwerze hostingowym. Czy to jest najpewniejszy sposób, aby 8-bitowy AVR mógł komunikować się ze stroną zawierającą liczną grafikę?
Pozdrawiam, Slawek_G
No tak ale tu w tej wypowiedzi sobie kolega troszkę sam zaprzecza. Bo po pierwsze obawiasz się komunikacji radiowej a z drugiej strony marzy ci się przepasiona grafiką strona w 8 bitowym procku (nawet jeśli miałby procek targać to z hostingu) .... Ja ... wolałbym WIFI i skromną stronę niż kabel i wypasioną grafikę. To tak tytułem wstępu i troszkę z przymrużeniem oka.
UsuńNa poważnie to chyba kolega nic do tej pory nie robił z takimi modułami wifi i dlatego na razie boi się nowego i tego co nieznane. Rozumiem to - ale warto wziąć, dotknąć i spróbować a szczególnie w swoich przemysłowych warunkach bo jedne drugim nie równe, zamiast pytać się kogoś (nawet mnie) czy akurat u ciebie to zadziała? .... Powiem tak znam ludzi, którzy stosują to u siebie w rozwiązaniach przemysłowych i dzisiaj się cieszą bo są "do przodu" pod wieloma względami dzięki takim rozwiązaniom. Na prawdę polecam sprawdź ;) na naszym forum nawet jeden kolega opisywał że u siebie na hali ma 30 urządzeń pracujących z modułami wifi. Akurat nie moduły od nas bo wcześniej robił gdy my jeszcze ich nie mieliśmy - ale sam jest zaskoczony jak to ślicznie śmiga
a ja ze swojej strony polecałbym jeśli idzie o profesjonalne rozwiązanie napisać aplikację na PC czy na Androida czy na inny jeszcze system do komunikacji i sterowania po wifi ale za pomocą UDP. A nie tam bawić się w strony internetowe do sterowania maszynami przemysłowymi. Strony to mogą być dobre do jakiejś tam np konfiguracji urządzenia, którą się przeprowadza raz na jakiś czas .... Ale to tylko moje przemyślenia i oczywiście nie muszę mieć racji
komunikacja TCP zapewnia weryfikację poprawności przesłanych danych więc w środowisku produkcyjnym jak najbardziej się nadaje. Co do grafiki, a kto powiedział, że grafika musi być "podawana" z AVR-a? Wystarczy tylko wskazać skąd przeglądarka ma sobie pobrać grafikę a nawet skrypt CSS i mieć piękną stronę przesyłając z AVR-a tylko treść i opisy co gdzie jest. Sprawdzone i działa. Pozdrawiam.
UsuńNo właśnie na naszej stronce
Usuńhttp://www.wifi232.atnel.pl:8888
są właśnie grafiki ciągnięte nie z procka AVR ;) a z hostingu atnela. Tylko ja jeszcze nie umiem bawić się CSS'em ;) dlatego ta stronka tak biednie wygląda
wiecie może co używa pan mirek za programu do dzielenia aplikacji na pulpicie ??
OdpowiedzUsuńJa wiem :) ... gościu używa programu co się nazywa "Fences" :D
Usuńdziękuje :) Panie mirku
UsuńWitam, dopiero wieczorem będę mógł na spokojnie obejrzeć poradnik. Na szybko chciałbym się tylko dowiedzieć czy jest możliwość obsługi skryptów php czy tylko czysty html?
OdpowiedzUsuńProponowałbym nieco precyzyjniej zadawać pytania ;) Bo co to znaczy czy jest możliwość obsługi PHP ? Masz na myśli to czy w procku jest możliwość odpalania skryptów PHP ??? ;) to może najpierw jednak obejrzyj poradnik i zobacz o co chodzi ;) .... bo nie wiem jak sobie wyobrażasz odpalenie serwera PHP ? w procku ? .....
Usuńale jeśli pytasz czy można wysyłać z procka AVR zapytania PHP do serwerów na hostingu ? czy można analizować odpowiedzi ze skryptów PHP z hostingów - to odpowiedź brzmi TAK. Tyle że to akurat nie jest tematem tego poradnika - będzie w jednym z następnych ;)
Tak na marginesie to skąd Mirku tak spokojnego konika wziąłeś??? ;-P
OdpowiedzUsuń--
Grzegorz...
Chyba go w którymś poradniku pokażę ;) bo sporo osób pyta
UsuńJak zwykle super poradnik, już nie mogę się doczekać następnej części.
OdpowiedzUsuńMoże jeszcze prosty przykład jak zapalić i zgasić diodę w AVR za pomocą tej strony, i jak odczytać stany wejść procesora , czy temperatury po magistrali 1 wire.
No ale przecież już po TRZECIEJ części widać jak zgasić / zapalić diodę LED w AVR ... no panie kolego ;) a po co pokazuję i omawiam ten formularz ? ... wprawdzie pokazuję jak wpisać własne imię i żeby ono się wyświetliło na LCD i na stronie - no ale teraz rusz WYOBRAŹNIĘ proszę
Usuńtoż możesz wysłać sobie zamiast imienia np komendę LED_ON albo LED_OFF i w procku rozpoznaj te komendy i w zależności od nich albo zgaś albo zapal diodę ... no na prawdę ... tu ciężko już dalej coś pokazywać - przecież masz.
Tak samo "jak wyświetlić temperaturę" ???? ... toż w Bluebooku masz opis jak wyświetlać temperaturę na LCD, a teraz spójrz sobie w tym poradniku na zmienną o nazwie "licz1" czyli licznik odwiedzin .... co nie jest wyświetlany na stronie ? .... toż w IDENTYCZNY sposób możesz wyświetlić temperaturę - w czym widzisz problem ? no to DOKŁADNIE TO SAMO ;)
Niestety problem jest z tym serwerem na AVR.
OdpowiedzUsuńWpisałem swoje imię -> "send" i wywala błąd 404.
Cofam i robię to samo i OK.
Cofam do strony początkowej i błąd.
Odświeżam i tekst strony widoczny w przeglądarce.
Itp.
Raz dobrze, a raz źle.
Może tobie uda się napisać lepszy serwer http, tego ci życzę ;) A tymczasem nie bierzesz w ogóle pod uwagę panie kochany że setki ludzi próbują wejść jednocześnie i stąd problemy przejściowe ;) ... sprawdź sobie o innej porze a najlepiej to sam sobie postaw taki serwer w sieci LAN i wtedy sprawdź ... Zamiast pisać że z serwerem jest coś nie tak ... To nie jest hosting na którym leży np portal www.onet.pl .... panie, to jest 8-bitowy AVR
UsuńJa to wiem, ale chciałem zwrócić tylko uwagę aby inne osoby przypadkiem robiąc takie serwer nie wyobrażały sobie bóg wie czego ;)
UsuńNo ja jakoś nie mogę sobie nawet wyobrazić, żeby ktoś wpadł na pomysł postawienia portalu internetowego na takim AVR'ku ;) - to by trzeba było mieć ułańską fantazję
UsuńPnie Mirku, czy jest możliwość zamieszczenia w formie załącznika (pod tym poradnikiem) z zawartością kodu jaki został użyty w poradniku, w celu lepszej analizy kodu, na filmie jest to dość szybko pokazane, i dla zupełnie początkujących (takich jak ja) jest to trudne do ogarnięcia .
OdpowiedzUsuńPrzyłączam się do prośby wyżej, czy jest szansa na plik main.c z poradnika. Wczoraj próbowałem wykonać ćwiczenie z poradnika i niestety po kilku linijkach dałem sobie na luz, ciężko się przepisuje kod z filmu i dużo błędów powstaje.
OdpowiedzUsuńJa również proszę o kody z poradnika.
OdpowiedzUsuńNo MIrku, już wiem co odpowiesz. Że dajesz nam wędkę a my - ryby powinniśmy już sami łowić, ale wydaję mi się , że takich próśb o kod z tego poradnika jest więcej i doczekamy się od naszego mistrza tego kodu. Coś mi się wydaje , że w tym poradniku koń ( z bonanzy) się spłoszył i popędził szybko jak dziki, i nie wszystko udało się zanotować.
OdpowiedzUsuńMistrzuniu nasz odezwij się i wysłuchaj prośby swoich uczniów, również przyłączam się do swoich poprzedników o prośbę o kod z tego poradnika.
OdpowiedzUsuńMirek , no popatrz jak uzależniłeś swoich słuchaczy (uczniów od siebie) ( czyżby jakaś hibnoza atnelowska?), wystarczy kilka dni bez kontaktu z Tobą, a tu już panika się wkrada, czy nasz mistrz odpowie na nasze prośby????
OdpowiedzUsuńPanowie, panowie ... jaka hipnoza, jaki mistrz ? .... zwykły kowalski jestem ...
OdpowiedzUsuńa co do kodu to dajcie mi chwilkę czasu .... poważnie w zeszłym tygodniu nawet niedzieli wolnej nie miałem .... dzisiaj, poza egzystencją sporadyczną na forum czy YT ... jestem oderwany od kompa
Coś nasz Mistrzuniu całkiem zapomniał o swoich uczniach, tydzień mija od naszej prośby o kod , a tu cisza.
OdpowiedzUsuńMirku co z kodem? Ja wiem, że masz wiele pracy, ale bardzo by nam (początkującym) to pomogło.
OdpowiedzUsuńNo jeszcze będzie trzeba troszkę poczekać :(
UsuńBardzo dziękuję Panu Mirkowi za ten mega poradnik za pomocą , którego wiele klapek się w mojej głowie pootwierało i wiele nowych wizji powstało. Mega dzięki i szacunek. W wyborach prezydenckich Pan Mirek ma mój głos :)
OdpowiedzUsuńPozdrawiam
Wojciech Kukawski
Nie ma to jak dobre "wizje" ;) życzę dużo powodzenia i cieszę się, że mogłem choć troszkę pomóc ...
UsuńKto by pomyślał, że można znaleźć tak dokładny poradnik :). Widzę, że nie tylko mi przypadł do gustu. Bardzo pomocny, pomaga zrozumieć wiele kwestii :)
OdpowiedzUsuńLiczę na to, że kolejne które się ukażą będą równie treściwe ;) zapraszam wkrótce
UsuńInteresujący i bardzo rzeczowy wpis. Brawo! Dobrym pomysłem było zamieszczenie filmików z Youtube. Zawsze to fajny sposób dotarcia do potencjalnego odbiorcy. No i przede wszystkim obrazowy. A w dzisiejszym świecie obraz i dźwięk to bodźce, na które reagujemy najcześciej. Mamy też pamięć obrazkową. Świat się zmienia, przemy do przodu. Warto iść za tym postępem.
OdpowiedzUsuńDzień dobry. Czy planuje Pan w najbliższym czasie poruszyć temat WEB Client (php)? Pozdrawiam
OdpowiedzUsuńCały czas pracuję nad tym poradnikiem
UsuńDobry wieczór bardzo ciekawi mnie jak rozwiązał Pan wyświetlanie temperatury na stronie , jeśli przez nieuwagę przeoczyłem to przepraszam i proszę wskazać to nadrobię :)
OdpowiedzUsuńMati
PS
z niecierpliwością czekam na przesyłkę z modułem :)))))))
Już wiem Panie Mirku :))) przepraszam za kłopot wystarczyło chwilę się zagłębić
OdpowiedzUsuńMati
;)
UsuńWitam, co się stało z poradnikami?
OdpowiedzUsuńPo świętach postaram się to naprawić, teraz nie mam jak :(
UsuńWitam. Czy ATB WiFi Config będzie udostępniony w wersji z jakiej korzystasz w poradniku "część 6" czy ta wersja jest dostępna odpłatnie wraz z zakupem modułu WiFi. Wersja która jest obecnie dostępna na stronie nie generuje adresów położenia zmiennych w tablicy html[].
OdpowiedzUsuńMarek
Ok. Już doszedłem jak działa ta nowsza wersja. Ciąg znaków #@...@# jest zamieniany na 0x01 i zliczana jest ilość wystąpień tego ciągu. 0x01 powoduje wywołanie callbacka z parametrem jakim jest numer wystąpienia ciągu #@...@#.
UsuńMarek
No coś w ten deseń, ja sam już zapomniałem ;)
UsuńPotrzebuje pomocy do drugiej części w 3.50 minuty biblioteki test3 i lcd skąd je pobrać ?
OdpowiedzUsuń#0189 WIFI232 - HTTP web server - Part 02 w 4:27 minucie jest mowa o błędzie i jest on wyjaśniony w poprzednim poradniku. Można prosić o podanie, w którym poradniku znajdę takową informacje?
OdpowiedzUsuńWitam!
OdpowiedzUsuńCzy daliśmy wystarczająco dużo czasu na wklejenie tego kodu z poradnika ?
nie rozumiem o czym ty piszesz? jakie nie daliśmy? ;) jakiego czasu ? ... o co chodzi ?
UsuńOdnoszę się do wielu zapytań o kod z poradnika, wiele osób się o to pytało a ty odpowiadałeś: Dajcie mi jeszcze trochę czasu..." czasu już dość upłynęło.
Usuń