Arduino Yun Messager (3 / 4 steg)
Steg 3: Övriga protokoll och kod
RESTEN protokollet innebär meddelandet ser ut som /arduino/message/this är mitt budskap
Om din arduino kallades arduino och var belägen vid IP adress 192.168.1.34 skulle då full resten vara:
http: //192.168.1.14/arduino/message/I fick detta meddelande över Wifi :-)
Obs: några blanksteg eller specialtecken kommer att ersättas av deras Hex koder av klientens webbläsare innan du skickar till Yun. Till exempel:
192.168.1.14/arduino/message/I%20got%20this%20%20%20message%20over%20Wifi%20:-%29
Här är koden. Som ni ser är det en ganska enkel mod av bron exempel och Adafruit's TFT exempel:
/*
Från: Arduino Yun Bridge exempel
http://Arduino.cc/en/tutorial/Bridge
Anpassad från exemplet skiss för Adafruit 2.2" SPI visning
Skrivet av Limor stekt/Ladyada för Adafruit industrier.
Detta bibliotek fungerar med det Adafruit 2.2" TFT Breakout w/SD-kortet
---> http://www.adafruit.com/products/1480
*/
#include "Bridge.h"
#include "YunServer.h"
#include "YunClient.h"
#include "SPI.h"
#include "Adafruit_GFX.h"
#include "Adafruit_ILI9340.h"
#if defined(__SAM3X8E__)
#undef __FlashStringHelper::F(string_literal)
#define F(string_literal) string_literal
#endif
Detta är stiften används för UNO
för vederbörlig/Mega/Leonardo använda hårdvara SPI stiften (vilket är olika)
#define _sclk 13
#define _miso 12
#define _mosi 11
#define _cs 10
#define _rst 9
#define _dc 8
Adafruit_ILI9340 tft = Adafruit_ILI9340 (_cs, _dc, _rst);
Lyssna på standardport 5555, webserver på Yun
vidarebefordrar det alla HTTP-begäranden för oss.
YunServer server;
void setup() {
Bridge start
pinMode(13,OUTPUT);
digitalWrite 13, låg.
Bridge.BEGIN();
digitalWrite 13, hög.
Lyssna efter inkommande anslutning endast från localhost
(ingen från det externa nätverket kan ansluta)
server.listenOnLocalhost();
Server.BEGIN();
TFT.BEGIN();
tft.fillScreen(ILI9340_BLACK);
tft.setRotation(1);
}
void loop() {
Få kunder kommer från server
YunClient klient = server.accept();
Det finns en ny klient?
om (klient) {
Processen begäran
process(Client);
Nära anslutning och frigöra resurser.
client.stop();
}
Delay(50); Poll varje 50 MS
}
{Ogiltig process (YunClient klient)
Läs kommandot
String kommando = client.readStringUntil('/');
är "meddelande" kommando?
om (kommandot == "meddelande") {
messageCommand(client);
}
}
void messageCommand (YunClient klient) {
Sträng meddelande = client.readStringUntil('/');
Skicka feedback till klient
client.Print(F("Message"));
client.Print F ("in").
client.println(Message);
Uppdatera datastore nyckel med det aktuella meddelande värdet
Sträng key = "Meddelande";
Bridge.Put (nyckel, meddelande);
Skicka till skärmen
tft.fillScreen(ILI9340_WHITE);
tft.setCursor (5, 5);
tft.setTextColor(ILI9340_BLACK);
tft.setTextSize(4);
TFT.println(Message);
}