![Stwórz prosty przycisk Tweetuj twardą drogę: 6 kroków Stwórz prosty przycisk Tweetuj twardą drogę: 6 kroków](https://img.gwsigeps.com/img/circuits/make-an-easy-button-tweet-the-hard-way-7.jpg)
Spisu treści:
- Kieszonkowe dzieci:
- Krok 1: Części
- Krok 2: Modyfikacja łatwego przycisku
- Krok 3: Schemat sprzętu
- Krok 4: Przepływ pracy i moduły kodu
- Krok 5: Utwórz nową aplikację Twitter
- Krok 6: Operacja
- Podłącz go do komputera z uruchomionym skryptem Pythona lub podobnym.
- Podłącz go do zhakowanego routera (fajnie - wiesz kim jesteś).
- Korzystanie z zewnętrznego serwera proxy, np. ThingTweet, biblioteka Arduino NeoCat, Arduino Tweet Library.
- Nie wymaga zewnętrznego komputera / routera.
- Nie ma zagrożeń bezpieczeństwa związanych z metodą trzecią. Przekazywanie poświadczeń bezpieczeństwa przez transport niezabezpieczony jest ryzykowne. Jeśli używasz serwera proxy do generowania tweetów, upewnij się, że rozumiesz ryzyko.
Intencją tego pouczającego jest zapewnienie innym podstawowego samodzielnego szkieletu do generowania tweetów z mikrokontrolera. Sama aplikacja jest dość prosta; naciśnij przycisk i wygeneruje pół losowy Tweet.
Kieszonkowe dzieci:
Krok 1: Części
Do tego projektu potrzeba tylko kilku części
- STM32 Discovery Board lub podobne
- WIZnet W5100 Network Module breakout -
- Nokia 5110 Graphic LCD breakout -
- Zasilacz Breadboard 5V / 3.3V -
- Staples® Easy ButtonTM -
Krok 2: Modyfikacja łatwego przycisku
- Usuń cztery gumowe nóżki i cztery małe śruby pod nimi.
- Odlutuj przewody Vss i Vdd, które łączą się z zaciskami akumulatora.
- Wyjmij zaciski akumulatora.
- Przylutuj nowe przewody do padów Vss i Vdd.
- Przylutuj drut do pustej podkładki w pobliżu przełącznika przyciskowego (patrz rysunek).
- Wywierć otwór w komorze baterii i przeprowadź przez nią trzy przewody.
- Złóż przycisk ponownie.
- Vss - ziemia
- Vdd - dodatnie napięcie zasilania (3 V, chociaż wydaje się, że poradzi sobie z 3,3 V)
- Odczyt przycisku - 0 V wzrasta do 3 V po naciśnięciu przycisku.
Krok 3: Schemat sprzętu
Sprzęt jest dość prosty. Ograniczenia czasowe oznaczały, że nadal jest on rozłożony na płytce kuchennej, ale planuję wkrótce uzupełnić bardziej trwały obwód ze wszystkimi częściami dopasowanymi do małej podstawy pod przyciskiem.
Zasilacz zapewnia Discovery Board 5V, a następnie jest obniżany do 3,3V przez wbudowany regulator, aby uruchomić wszystkie urządzenia peryferyjne.
Zmodyfikowany przycisk jest podłączony do PA1 Discovery Board i dostarczany z 3.3V, co nie wydaje się wpływać na jego standardowe działanie (ścieżka dźwiękowa „to była łatwa”).
Moduł sieciowy WIZnet W5100 jest podłączony do urządzenia peryferyjnego SPI1 (piny PA5, PA6 i PA7) z dodatkowymi połączeniami dla / Reset (pin PA2) i / Slave Select (pin PA4)
Moduł graficzny Nokia 5110 LCD jest podłączony do urządzenia peryferyjnego SPI2 (piny PB13 i PB15) z dodatkowymi połączeniami dla / Reset (pin PB10), Data / Command (pin PB11) i / Slave Select (pin PB12).
Istnieje szeroka gama pinów IO ogólnego przeznaczenia i urządzeń peryferyjnych pozostających w Discovery Board dla bardziej zaawansowanych aplikacji Twittering w przyszłości.
Krok 4: Przepływ pracy i moduły kodu
Plik binarny ma obecnie rozmiar nieco poniżej 35 KB. Kod nie jest obecnie zoptymalizowany, więc powinno być możliwe uzyskanie pliku binarnego poniżej 32K przy odrobinie pracy; oczywiście zależy to od platformy i kompilatora.
Poniżej przedstawiono przegląd modułów kodu źródłowego projektu. Ograniczenia czasowe oznaczają, że kod nie jest tak dobrze komentowany, jak bym zwykle chciał, ale mam nadzieję, że dzięki dokumentacji w tym podręczniku moduły powinny być dość łatwe do naśladowania.
Pospolity
słownik.c
- użyteczna klasa pomocnicza, która kontroluje posortowaną połączoną listę par nazwa / wartość.
sha1.c
hmacsha1.c
- Służy do tworzenia skrótu żądania OAuth, a następnie szyfrowania go za pomocą Tajemnicy konsumenta i Token dostępu Tajny.
- Nie mogę zaliczyć tych modułów; pochodzą w dużej mierze z biblioteki Crypto AVR (http://www.das-labor.org/wiki/Crypto-avr-lib).
- Kodowanie i dekodowanie Base64.
Kierowcy
easybutton.c
- Sterownik zmodyfikowanego łatwego przycisku Staples.
- Sterownik graficzny Nokia 5100 (SPI).
- Sterownik modułu sieciowego WIZnet W5110 (SPI).
Protokoły
Transport
udp.c
tcp.c
- Moduł WIZnet dba o te dwa protokoły warstwy transportowej, więc technicznie są one również objęte modułami sterownika, ale zostały one wyodrębnione ze względu na przejrzystość.
Podanie
formdata.c
- Metody klienta HTTP do wysyłania żądań GET i POST do serwera WWW.
- Metody serwera HTTP do przyjmowania przychodzących wywołań GET i POST.
- Uzyskaj adres IP, maskę podsieci, bramę i adres IP serwera DNS z sieciowego serwera DHCP.
- Rozwiąż dany adres URL na odpowiedni adres IP.
- OAuth wymaga dokładnego znacznika czasu; moduł ten żąda aktualnego czasu z serwera Simple Network Time Protocol.
Serwer internetowy
webserver.c
- Listener dla żądań HTTP GET i POST.
- Umożliwia ustawienie klucza konsumenta OAuth, tajnego klucza konsumenta, tokenu dostępu i tajnego tokenu dostępu.
Świergot
twitter.c
- Implementacja interfejsu API Twittera (obecnie używana jest tylko aktualizacja statusu).
- Większość ciężkiego podnoszenia jest obsługiwana przez moduł OAuth.
- Podstawowy moduł struktury Twittera.
- Wygeneruj unikalny identyfikator dla żądania (nonce).
- Wygeneruj znacznik czasu dla żądania.
- Wygeneruj bazę sygnatur dla żądania OAuth.
- Oblicz hash bazy sygnatur (SHA1).
- Podpisz hash używając Secret Consumer i Secret Token Access (HMAC-SHA1).
- Wyślij podpisane żądanie do serwera WWW (HTTP GET lub POST).
Krok 5: Utwórz nową aplikację Twitter
- Klucz klienta
- Tajemnica konsumenta
- Token dostępu
- Token dostępu Tajny
Token informuje Twittera, jakiego użytkownika używa Tweeting.
Tajemnica konsumenta i Token Secret nie są wysyłane do interfejsu API Twittera, ale są używane do obliczenia kryptograficznego skrótu żądania, który jest używany jako podpis zapobiegający manipulacji. Żądanie zawiera unikalny identyfikator (nonce) i znacznik czasu, który musi znajdować się w ciągu pięciu minut od czasu UTC. Tylko jedno żądanie zostanie zaakceptowane dla danego parowania nonce / timestamp.
Aby uzyskać te klucze / tajemnice, musisz utworzyć nową aplikację Twitter.
Przejdź do http://dev.twitter.com/apps - użyj danych logowania Twittera, aby się zalogować.
Wybierz „Zarejestruj nową aplikację”.
Wprowadź szczegóły aplikacji
- Nazwa aplikacji - wszystko, co lubisz
- Opis - wszystko, co lubisz
- Strona aplikacji - (wymagane) wszystko, co lubisz
- Organizacja - (opcjonalnie) wszystko, co lubisz
- Typ aplikacji - klient
- Domyślny typ dostępu - Odczyt i zapis
- Ikona aplikacji - użyj domyślnego lub prześlij własne
Zwykle dla aplikacji żądasz Token dostępu i Token dostępu Secret dla każdego użytkownika; w tym przypadku, ponieważ dla aplikacji będzie tylko jeden użytkownik, istnieje skrót. Na stronie ustawień aplikacji wybierz „My Access Token”, aby uzyskać Token dostępu i Token dostępu Secret.
Gratulacje, jesteś gotowy, aby zrobić swój pierwszy tweet.
Krok 6: Operacja
- Podłącz gniazdo Ethernet do swojej sieci / routera.
- Sprawdź na wyświetlaczu LCD, jaki adres IP został przypisany.
- W przeglądarce internetowej przejdź do adresu IP (np.
- Wprowadź Klucz Konsumenta, Sekret Konsumenta, Token Dostępu i Token Dostępu, które uzyskałeś i kliknij Ustaw.
- Na wyświetlaczu pojawi się „Ready”, a przycisk zostanie uzbrojony.
- Tweetuj, dopóki się nie nudzisz, albo twoi znajomi przestaną Cię śledzić