Lei: Sakernas Internet Wi-Fi omgivande lampan (3 / 6 steg)
Steg 3: Programmering Lei
För att styra vår lampa använt vi Lelylan (http://dev.lelylan.com/) som erbjuder, bland annat en instrumentpanel som tillåter oss att interagera med våra lampa via en webbläsare.
Lampan fungerar sådär:
-När är aktiverat, den ansluter till Lelylan och ansluter sig till ett ämne som rapresent enheten, nästan.
-När vi samverkar med lampa genom instrumentpanelen, lelylan mqtt mäklaren skickar en uppdatering till alla ämne abonnenter, i detta fall endast fysiska lampan.
För att få cc3200 arbetar med lelylan vi behöver för att kunna ansluta och interagera med en mqtt mäklare och skriva och tolka JSON data. Så 3 bibliotek måste ingå i skissen
-PubSubClient (som bör ingå redan i Energia IDE, du måste ange MAX_PACKET_SIZE till 512 byte (behövs för Lelylan att arbeta).)
-ArduinoJSON (som kan laddas ner här)
-Wifi (som bör ingå redan i Energia IDE)
Lelylan verk av rappresenting fysiska enheter som virtuella objekt, så vi måste skapa en virtuell enhet i instrumentpanelen och få den relativa DEVICE_ID och DEVICE_SECRET behövs i skissen (se handboken för den arduino yun en översikt på hur man ställer du Lelylan enhet). Varje virtuell enhet har en typ som definierar vilka egenskaper och metoder kan användas på den. Vi skapade en anpassad ljus typ kallas "Lei" http://lelylan.github.io/types-dashboard-ng/#/types/54986532bbd5a4c34c000001/
När du har installerat enheten är id och hemliga det ett par andra parametrar som behövs:
#define WIFI_SSID "XXX"
#define WIFI_PWD "XXXXX"
#define DEVICE_IN_TOPIC "enheter/___YOUR_DEVICE_ID___/get"
#define DEVICE_OUT_TOPIC "enheter/___YOUR_DEVICE_ID___/set"
Skissen låter helt enkelt vår lampa att lyssna och tillämpa uppdateringar från Lelylan instrumentpanelen.
Koden (som ska bäddas) är kommenterade och bör vara ganska rak fram emot att följa, hur som helst om du har någon fråga inte tveka att kontakta oss. På grund av vissa indrag frågor föreslår jag er att kolla koden på min gist https://gist.github.com/bugduino/6e33999e53c5c98d87d5.
Det finns en del fortfarande oavslutade (t.ex rainbow läge, som kommer att använda funktionen setFade) om du vill skicka in lappen jag skulle gärna uppdatera koden.