Proiectul isi propune sa fie o interfata catre internet pentru alte microprocesoare. In acest scop, primeste (via multiple protocoale de fir) o adresa IP, un port si date si construieste un cadru Ethernet, un pachet IP cu adresa data ca destinatie si o datagrama UDP cu portul destinatie primit. Ideea a plecat de la o statie meteo; o astfel de statie ar fi inutila daca nu ar putea sa isi comunice rezultatele, iar pentru ca o aplicatie care sa le primeasca sa fie disponibila pentru diverse medii, statia trebuie sa se poata conecta la internet. Statia meteo mi-a fost luata de sub nas, dar ideea de a lega alte dispozitive la internet ramane.
Schema bloc:
Legaturi de pini:
Lista piese:
Am incercat initial sa scriu partea din librarie dorita: protocoalele Ethernet (partial), IP si UDP.
Nedisponibilitatea DHCP m-a dus (dupa batai de cap majore) la utilizarea librariei (pentru care ma astept sa mi se scada mare parte din punctaj).
Protocolul UART de comunicare este functional si functioneaza astfel: punctul de acces trimite un byte, semnaland ca a terminat pregatirea. Dupa aceea, orice pachete trimise au formatul <adresa IPv4> <port> <lungime (2B)> <date>, trimis in big endian.
Neplacute. Codul functioneaza… partial? chiar si cu folosirea bibliotecii. Este foarte posibil sa ma intorc cu o alta placuta cu conexiune Ethernet integrata; sunt nesatisfacut.
Implementarea unei biblioteci intregi este foarte dificila! Cine s-ar fi gandit la asta! (nu eu. )
Doua placute Arduino nu pot fi programate in paralel; asta a produs foarte multa distractie. Si mai multa distractie a produs faptul ca protocolul USART e paralel cu USB-ul si deci cu monitorul serial. Mmmmm.
Ta-daaa!
Am sa iau sectiunea asta ca pe o serie de commit-uri.