Spisu treści:

Podłączony kubek: 5 kroków (ze zdjęciami)
Podłączony kubek: 5 kroków (ze zdjęciami)

Wideo: Podłączony kubek: 5 kroków (ze zdjęciami)

Wideo: Podłączony kubek: 5 kroków (ze zdjęciami)
Wideo: marzenia jednak sie spelniaja #genzie #shorts 2024, Listopad
Anonim
Połączony kubek
Połączony kubek

Czasami rano, popijając kawę przed pójściem do biura, chciałbym zobaczyć, czego oczekuje ode mnie w skrzynce odbiorczej. tj. liczba i ton otrzymanych e-maili… czy projekt, który właśnie ukończyłem dzień wcześniej, działa, czy nie i czy są na jego temat pozytywne lub negatywne komentarze. Z drugiej strony nie mam nic przeciwko otwieraniu aplikacji klienta poczty na telefonie komórkowym i czytaniu e-maili podczas śniadania.

Z tych rozważań wywodzi się idea tego projektu; używa kubka do kawy wzbogaconego diodami LED, które zmieniają swoje kolory w oparciu o wynik analizy sentymentu wykonanej na ostatnich nieprzeczytanych wiadomościach otrzymanych na moim koncie e-mail. Wystarczy podłączyć kubek, a diody LED zmienią kolor na zielony, jeśli ostatnio odbierane wiadomości e-mail będą miały pozytywne wiadomości, czerwony kolor na odwrót.

Analiza sentymentu nieprzeczytanych wiadomości e-mail jest wykonywana przez usługi IBM Watson IoT. Płytka Arduino MKR1000 służy do sterowania paskiem LED oraz do łączenia się z usługami IBM Watson IoT przez WiFi za pomocą protokołu MQTT.

Krok 1: Komponenty sprzętowe

Komponenty sprzętowe
Komponenty sprzętowe
Komponenty sprzętowe
Komponenty sprzętowe

Płyta rozwojowa sprzętu:

Arduino MKR1000

Zestawienie komponentów sprzętu

  • 3x rezystory 100ohm
  • 3x tranzystory NPN TIP122
  • 1x gniazdo zasilania
  • 1x Taśma świetlna LED RGB (AglaiaLT-S2)
  • Zapasowe kable

Okablowanie do sterowania paskiem LED z Arduino MKR1000 oparte jest na tym samouczku:

Krok 2: Utwórz konto w IBM Watson IoT i zarejestruj swoje urządzenie

Aby stworzyć aplikację w chmurze, która będzie w stanie wykonywać analizę sentymentu nieprzeczytanych wiadomości e-mail za pomocą IBM Watson IoT, konieczne jest najpierw założenie bezpłatnego konta testowego (https://www.ibm.com/internet-of-things/trial/). Drugim krokiem jest stworzenie aplikacji na platformę Watson IoT i zarejestrowanie płyty Arduino MKR1000; jest to teraz standardowa procedura łączenia platform sprzętowych z IBM Watson IoT i jest dobrze udokumentowana w przewodnikach IBM Quickstart:

console.ng.bluemix.net/docs/services/IoT/i…

IBM dostarcza również szablonowe szablony dla IoT, które przyspieszają te kroki, ograniczając usługi i środowiska wykonawcze potrzebne do uruchomienia aplikacji IoT. W tym projekcie wykorzystano IoT for Electronics Starter Boilerplate.

Instrukcja rejestracji urządzenia krok po kroku znajduje się tutaj:

console.ng.bluemix.net/docs/services/IoT/i…

Zanotuj swoje org-id, credential, device-id i device-type po zakończeniu procedury rejestracji urządzenia, ponieważ będą one potrzebne do skonfigurowania Arduino Sketch i aplikacji NodeRED.

Krok 3: Opracuj aplikację Node-RED do analizy nastrojów

Opracuj aplikację Node-RED do analizy nastrojów
Opracuj aplikację Node-RED do analizy nastrojów

NodeRED to wizualne narzędzie, które można wykorzystać w platformie IBM Watson IoT do tworzenia aplikacji okablowania urządzeń i usług w chmurze (nodered.org).

Opracowana aplikacja NodeRED jest bardzo prosta i składa się z dwóch przepływów, jednego do analizy sentymentu wiadomości e-mail, a drugiego do rejestrowania stanu Arduino MKR1000 (wynik sentymentu otrzymany przez urządzenie i kombinacja RGB dla wyświetlanej diody LED).

Pierwszy przepływ łączy się okresowo z kontem e-mail i pobiera ostatnie nieprzeczytane wiadomości e-mail; konfiguracja zależy od Twojego konta e-mail. Każdy otrzymany e-mail jest wysyłany do pola analizy sentymentu, które zwraca wynik (mniejszy lub wyższy od 0) na podstawie negatywnej/pozytywnej treści analizowanego tekstu (patrz informacje https://github.com/thisandagain/sentiment/blob/mas… dla więcej szczegółów). Wynik sentymentu jest wysyłany do prostego okna funkcyjnego, które oblicza średnią ostatnich otrzymanych danych i przekazuje wynik do następnego węzła. Wreszcie ostatni blok wysyła wiadomość zawierającą wartość wyniku sentymentu do podłączonego urządzenia za pomocą protokołu MQTT; ten blok musi być skonfigurowany z poświadczeniami wygenerowanymi podczas procesu rejestracji urządzenia.

Drugi przepływ służy do celów testowych w celu wizualizacji stanu płyty Arduino; łączy wejściowy węzeł IoT dla płyty Arduino ze stroną internetową IBM quickstart w celu wizualizacji danych (https://quickstart.internetofthings.ibmcloud.com/). Węzeł wejściowy IoT jest skonfigurowany jak powyżej, aby otrzymywać komunikaty o stanie z płyty Arduino za pomocą protokołów MQTT. Komunikaty o stanie zawierają wynik sentymentu i kombinację RGB dla diod LED aktualnie używanych w Arduino.

Aplikacja Node-RED została wyeksportowana do schowka i dołączona tutaj jako plik.txt.

Krok 4: Szkic Arduino

Szkic Arduino oparty jest na bibliotece klienta MQTT autorstwa Gilberto Conti (https://github.com/256dpi/arduino-mqtt), która została zmodyfikowana do połączenia z IBM Watson IoT. Kod składa się z trzech części:

  • setup(): połącz się z WiFi AP i brokerem IBM MQTT; zarejestrować wywołanie zwrotne dla wiadomości otrzymanych z IBM Watson IoT
  • loop(): ustaw pin RGB do sterowania diodami LED; wyślij do IBM Watson IoT status urządzenia (RGB i wynik sentymentu)
  • messageReceived(…): wywołanie zwrotne wywołane odebraniem wiadomości z wynikiem sentymentu z aplikacji Watson IoT. Wynik jest mapowany na wartość RGB (ujemny: czerwony; dodatni: zielony).

Skonfiguruj kod w następujący sposób, na podstawie danych uwierzytelniających wygenerowanych podczas procedury rejestracji urządzenia (identyfikator org, typ urządzenia, identyfikator urządzenia):

  • MQTT_MODE = IBM_API_KEY
  • char *client_id = "d:identyfikator-twojego-organizacji:typ-twojego-urządzenia:id-twojego-urządzenia";
  • char *user_id = "użyj-token-auth";
  • char *hasło = "twoje-hasło";
  • char *ibm_hostname = "identyfikator-twojej-organizacji.messaging.internetofthings.ibmcloud.com";

Aplikacja subskrybuje temat iot-2/cmd/+/fmt/string, a wywołanie zwrotne messageReceived analizuje komunikaty pod kątem sentymentu typu polecenia.

Komunikaty o stanie są publikowane w temacie: iot-2/evt/status/fmt/json

Uwaga: pamiętaj o aktualizacji certyfikatu SSL dla MKR1000; postępuj zgodnie z instrukcjami tutaj: https://github.com/arduino-libraries/WiFi101-Firm… i wprowadź nazwę hosta_ibm, aby pobrać i zainstalować certyfikaty główne w MKR1000.

W załączeniu szkic Arduino.

Krok 5: Podłącz swój kubek

Podłącz swój kubek
Podłącz swój kubek
Podłącz swój kubek
Podłącz swój kubek

Byłoby fajnie zrobić trochę więcej integracji elektroniki i diod LED w kubku, ale do tego projektu po prostu przykleiłem pasek LED wokół kubka, jak pokazano na zdjęciu.

Następnie podłączam taśmę LED do obwodu płytki stykowej, zasilam diodę LED oraz Arduino MKR1000 i czekam na otrzymanie wiadomości z sentymentem z aplikacji NodeRED. Na zdjęciu testowałem na przykład wysyłając na moje konto maile zawierające tekst typu "Świetna robota!, Twój projekt jest wspaniały!" itp.

Możliwe jest również sprawdzenie na publicznej stronie IBM Quickstart (https://quickstart.internetofthings.ibmcloud.com) stanu aplikacji Arduino w czasie rzeczywistym (wyświetlany kod RGB i otrzymany wynik sentymentu); wystarczy wprowadź identyfikator urządzenia..

Teraz mogę wreszcie cieszyć się kawą w podłączonym kubku.

Zalecana: