<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=4&amp;t=11140&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-03-22T11:53:40+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=11140&amp;mode</id>
<entry>
<author><name><![CDATA[RafPe]]></name></author>
<updated>2015-03-22T11:53:40+01:00</updated>
<published>2015-03-22T11:53:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11140&amp;p=124210#p124210</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11140&amp;p=124210#p124210"/>
<title type="html"><![CDATA[Nadchodzi HTTP POST z Atnel Wifi]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11140&amp;p=124210#p124210"><![CDATA[
Witam wszystkich! <br /><br />Po swietnych poradnikach Mirka nadszedl dzis czas aby dodac troche do tego swietnego materialu. Mozliwe ze ktos juz to opisywal - jednak chcialem sie z Wami podzielic jak wykonac HTTP POST czyli wyslac dane do naszej strony. Ja osobiscie uzywam tego do wysylania danych ktore zbieram w domu do chmurki w Microsoft Azure. <br /><br />Jest to praca w toku - wiec jesli ktos bedzie tak mily i podzieli sie swoimi uwagami / poprawkami bedzie naprawde super! <br /><br />Wiec zaczynamy! Specjalnie dla forumowiczow stworzylem strone do testowania wraz z baza danych. Strona jest dostepna pod adresem <!-- m --><a class="postlink" href="http://atnelforum.azurewebsites.net/" >http://atnelforum.azurewebsites.net/</a><!-- m --> a pomoc dotyczaca obecnych tam metod jest pod adresem <!-- m --><a class="postlink" href="http://atnelforum.azurewebsites.net/help" >http://atnelforum.azurewebsites.net/help</a><!-- m --><br /><br />Wiekszosc kodu zrodlowego , ktory przedstawiam bazuje na tym , ze posiadasz Mirkowskie biblioteki do UART'a i chociaz widziales/(as) poradniki o zapytaniach GET.  Swoj poradnik zaczynam od wprowadzenia nowej struktury , ktora bedzie mi pomagac w rekonfiguracji klienta WWW <br /><br />[syntax=c]// ----------------------------------------------------------- Definicje typow<br />typedef struct<br />{<br />char *   targetServer;// Server do ktorego bedziemy sie odwolywac<br />uint16_t targetPort;// Port w serverze do ktorego bedziemy sie dobierac<br />} THTTPSERVER;// Nazwa naszej structury<br /><br /><br />// ----------------------------------------------------------- Zmienne i wskazniki<br />THTTPSERVER tsrv;<br />THTTPSERVER * ptrTsrv = &amp;tsrv;// wskaznik na nasza zmienna<br /><br />//------------------------------------------------------------ Funkcje<br />void wifi_reProgram2( THTTPSERVER * serverConfig);[/syntax]<br /><br />Widzac powyzsze juz wiemy , ze bedziemy mieli tym razem takze mozliwosc przekazywania numeru portu do jakiego chcemy wyslac informacje. Przyczyna jest prosta - nie zawsze wysylam pod domyslny port 80!<br /><br />Funkcja do rekonfiguracji z potencjalem na zmiany z wykorzystaniem pinow LINK i READY <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> ja na chwile obecna uzywam okropniastych delay_ow :/ <br /><br />[syntax=c]void wifi_reProgram2( THTTPSERVER * serverConfig)<br />{<br />uart_putc('+');//#BEGIN: Przejscie w tryb konfiguracji wifi<br />_delay_ms(150);<br />uart_putc('+');<br />_delay_ms(150);<br />uart_putc('+');<br />_delay_ms(150);<br />uart_putc('a');<br />_delay_ms(300);//#END: Przejscie w tryb konfiguracji wifi<br /><br />uart_puts(&quot;AT+NETP=TCP,Client,&quot;);// Ustawiamy nasza komende do zmiany docelowego servera oraz portu (port takze moze przeciez byc inny!<br />uart_putint( serverConfig-&gt;targetPort, 10);uart_puts(&quot;,&quot;);// Dokladamy nasz port<br />uart_puts( serverConfig-&gt;targetServer );// Ustawiamy nasz server<br />uart_puts(&quot;\r&quot;);// Wciskamy enter :)<br />_delay_ms(300);<br />uart_puts(&quot;AT+Z\r&quot;);<br /><br /><br />lcd_cls();<br />lcd_str(&quot;Rebooting...&quot;);<br />_delay_ms(5000); // wstretny delay :( mozna to zmienic na operacje kiedy Wifi jest ready &amp; link jest up :)<br />}[/syntax]<br /><br />No a teraz rekonfiguracja Wifi <br /><br />[syntax=c]ptrTsrv-&gt;targetPort = 80;<br />ptrTsrv-&gt;targetServer = &quot;atnelforum.azurewebsites.net&quot;;// Nasz docelowy server<br /><br />lcd_cls();<br />lcd_str(&quot;Reconfiguring wifi&quot;);<br /><br />wifi_reProgram2(ptrTsrv);// Robimy rekonfiguracje naszego Wifi[/syntax]<br /><br />No wiec mamy nasza funkcje przygotowana! Sprawdzmy wiec czy dziala poprawnie ? wykonamy odpytanie do strony zawierajaca pomoc znajdujaca sie pod adresem <!-- m --><a class="postlink" href="http://atnelforum.azurewebsites.net/help" >http://atnelforum.azurewebsites.net/help</a><!-- m --><br /><br />[syntax=c]uart_puts(&quot;GET /help HTTP/1.0\r\nHost: atnelforum.azurewebsites.net\r\n\r\n&quot;);// Wyswietl pomoc znajdujaca sie pod adresem http://atnelforum.azurewebsites.net/help[/syntax]<br /><br />A oto i rezultat takiego odpytania <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br /><br /><a href="http://forum.atnel.pl/_obrazki/o/4344/ebffe60661e88365e4010c9c52d6524b.png"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/4344/ebffe60661e88365e4010c9c52d6524b.png" alt="Obrazek" /></a><br /><br /><br /><br />Jesli spojrzycie jeszcze raz pod linka z pomoca dla naszych dostepnych metod zobaczycie co musimy wyslac aby dane znalazly sie w bazie danych :<br /><br /><a href="http://forum.atnel.pl/_obrazki/o/4344/02af5f3e0e622b51cfbeaf73a42f56f4.png"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/4344/02af5f3e0e622b51cfbeaf73a42f56f4.png" alt="Obrazek" /></a><br /><br />Wiec przyszedl czas zeby wyslac informacje , ktore chce zeby znalazly sie tam uzywajac naszego AVR'ka - OTO MAGICZNY KOD <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br /><br /><br />[syntax=c]char * httpPost = &quot;POST http://atnelforum.azurewebsites.net/api/avr HTTP/1.0\r\nContent-Length: 65\r\nHost : atnelforum.azurewebsites.net\r\nContent-Type : application/json\r\n\r\n{\&quot;Id\&quot;: 1,\&quot;Message\&quot;: \&quot;Pierwszy moj post :) \&quot;,\&quot;ForumNick\&quot;: \&quot;RafPe\&quot;}&quot;;<br /><br /><br />uart_puts(httpPost);[/syntax]<br /><br />No i sukces! Oto informacja o tym u mnie na konsoli <br /><br /><a href="http://forum.atnel.pl/_obrazki/o/4344/214f76e0b4762110cf53a24cf78bbb34.png"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/4344/214f76e0b4762110cf53a24cf78bbb34.png" alt="Obrazek" /></a><br /><br />Pojawia sie tutaj dosc wazna kwestia. Jesli przyjszysz sie informacjom ktore wysylalem do servera : <br /><br />[syntax=c]POST http://atnelforum.azurewebsites.net/api/avr HTTP/1.1<br />Host: atnelforum.azurewebsites.net<br />Content-Length: 65<br />content-type: application/json<br /><br />{&quot;Id&quot;: 1,&quot;Message&quot;: &quot;Pierwszy moj post :) &quot;,&quot;ForumNick&quot;: &quot;RafPe&quot;}[/syntax]<br /><br />Pojawily sie interesujace naglowki HTTP ( wszystkie mozesz znalezc pod adresem <!-- m --><a class="postlink" href="http://en.wikipedia.org/wiki/List_of_HTTP_header_fields#Field_names" >http://en.wikipedia.org/wiki/List_of_HT ... ield_names</a><!-- m -->). Podalem informacje serverowi ze bede wysylal dane w formacie JSON. Nastepnie musze tez podac informacje o dlugosci jaka wyslalem (akurat w moim przypadku bylo to 65 - jesli zmienisz dane musisz obliczyc te wartosc) <br /><br /><br />to tak naprawde tyle jesli chodzi o HTTP post. Ma to ogromny potencjal do stworzenia malej biblioteki gdzie naglowki bylby to np array , gdzie dlugosc obliczana bylaby automatycznie przed wysylaniem <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> wszelkie krytyczne uwagi mile widziane! <br /><br /><br /><span style="font-size: 200%; line-height: normal">zobacz tych ktorym HTTP post sie udal <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> <!-- m --><a class="postlink" href="http://atnelforum.azurewebsites.net/api/avr" >http://atnelforum.azurewebsites.net/api/avr</a><!-- m --></span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4344">RafPe</a> — 22 mar 2015, o 11:53</p><hr />
]]></content>
</entry>
</feed>