Stap 1: Bouwen de arduino Circuit
monteren van het circuit van de arduino per de afbeelding. Belasting de geleverde Sketch Vergeet niet om uw IP-adres ingesteld op een beschikbaar op uw netwerk. Zodra dit is gedaan kun je de setup zonder de openremote software met behulp van een web browser, Chrome of firefox beter werken als ze niet proberen om het bestand te downloaden. zomaar in http://192.168.2.157 of wat je ip is die u gebruikt en zou je iets als dit
{"A1": 373, "A0": 371, "S0": 91, "RED": 0, "GROEN": 255, "BLUE": 54, "D7": 0, "TEMP": 77.90,}
het is een JSON-bestand blijkt de waarde van 2 analoge ingangen, de servo positie, de woede van de kleur voor de 3 LED's van 0 - 255, de status van schakelaar 1 op pin 7 en de temp. Als u wilt wijzigen een van de waarden in de webbrowser Voer http://192.168.2.157/pinP3=200 zal dit de site om te veranderen
{"A1": 364, "A0": 363, "S0": 91, "RED": 200, "GROEN": 255, "BLUE": 54, "D7": 0, "TEMP": 77.90,}
en de rode led gaat naar bijna volledige helderheid. Schakelaar 1 op (digitale pin7) gebruiken
http://192.168.2.157/pinD7=1 voor op- of http://192.168.2.157/pinD7=0 voor korting
{"A1": 369, "A0": 368, "S0": 91, "RED": 200, "GROEN": 255, "BLUE": 54, "D7": 1, "TEMP": 77.90,}
merk de "D7" gewijzigd in een 1 en de LED op moet komen. Als u de naam wilt wijzigen van alle 3 kleuren op zodra u gebruik van dit http://192.168.2.157/pinC1, 255,255,255 maken kunt zal dit alle 3 kleuren R, G, B in die volgorde op 255 volledige helderheid ingesteld.
{"A1": 365, "A0": 364, "S0": 91, "RED": 255, "GROEN": 255, "BLUE": 255, "D7": 1, "TEMP": 77.90,}
Hier is een kopie van de arduino IDE sketch
/*
* Reageren op aanvragen in de URL voor het wijzigen van de poorten van de digitale en analoge uitgang
* Toon het aantal poorten gewijzigd en de waarde van de analoge input pinnen.
* bijvoorbeeld:
-de verzenden van http://192.168.1.157/?pinD2=1 digital pin 2 ingeschakeld
digitale pin 2-de verzenden van http://192.168.1.157/?pinD2=0 uitgeschakeld
-de verzenden van http://192.168.1.157/?pinP3=150 draait rode kleur tot 150
-de verzenden van http://192.168.1.157/?pinP5=100 draait groene kleur tot 100
* verzenden http://192.168.1.157/?pinC1, 255,255,255 draait alle kleuren tot wit op één regel
-de verzenden van http://192.168.1.157/?pinP6=200 draait blauwe kleur tot 200 max val van 0 tot 255
servo verhuist-de verzenden van http://192.168.1.157/?pinS1=90 naar 90 deg mark
-de verzenden van http://192.168.2.157 {"A1": 369, "A0": 368, "S0": 11, "RED": 0, "groen": 255, "BLUE": 54, "D7": 1, "TEMP": 78.35,}
*/
#include
#include
#include
#include //only voor ds18b20 temp
#include //only voor ds18b20 temp
#define ONE_WIRE_BUS 2
Privacy oneWire(ONE_WIRE_BUS);
DallasTemperature sensoren (& Privacy);
DeviceAddress Sensor1 = {0x28, 0xAC, 0xD2, 0x6E, 0x04, 0x00, 0x00, 0xF9}; verschillend voor elk apparaat! schets gebruiken om te zoeken
byte mac [] {} =
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xF0};
IP-adres ip (192,168,2, 157);
IP-adres myDns(192,168,2,254);
IP-adres gateway (192, 168, 2, 254);
EthernetServer server(80);
int brightnessR = 0; moeten alleen voor rgb
int brightnessG = 0; moeten alleen voor rgb
int brightnessB = 0; moeten alleen voor rgb
int pos = 0; slechts voor servo nodig
int timer = 0;
Servo myservo; slechts voor servo nodig
VOID Setup
{
sensors.setResolution (Sensor1, 10); voor temp
sensors.setWaitForConversion(false); voor temp
sensors.requestTemperatures(); voor temp
myservo.attach(9); alleen behoefte aan servo welke pin servo is aangesloten
Serial.begin(9600);
Ethernet.begin (mac, ip);
server.begin();
Serial.println("Ready");
pinMode(3,OUTPUT);
pinMode(6,OUTPUT);
pinMode(5,OUTPUT);
pinMode(7,OUTPUT);
}
void loop
{
Deze timer zorgt ervoor dat de temp sensor te veel lopen en vertragen schets
timer (timer + 1) =;
Als (timer == 1000) {}
sensors.requestTemperatures(); voor temp
timer = 0;
}
EthernetClient client = server.available();
Als (client) {}
terwijl (client.connected()) {}
Als (client.available()) {}
items weergeven van het aantal pin wijzigen aanvragen
int digitalRequests = 0;
int analogRequests = 0;
Als (client.find ("GET /")) {/ / zoek naar 'GET'
penningen die beginnen met "pin" vinden en stoppen op de eerste lege regel
zoeken naar het einde van de lijn voor 'pin'
terwijl (client.findUntil ("pin", "\n\r")) {}
char type = client.read(); D of A
de volgende ascii integer-waarde in de gegevensstroom is de pin
int pin = client.parseInt();
int val = client.parseInt(); het gehele getal nadat dat is de waarde
int valg = client.parseInt();
int herddog77 = client.parseInt();
Als (type == had') {}
Serial.Print ("Digital pin");
pinMode (pin, uitvoer);
digitalWrite (pin, val);
}
Als (type == de ') {}
Serial.Print ("Servo input");
myservo.write(val);
POS = val;
delay(15);
}
Als (type == 'C') {}
Serial.Print("Color");
analogWrite (3, val);
analogWrite (5, valg);
analogWrite (6, herddog77);
brightnessR = val;
brightnessG = valg;
brightnessB = herddog77;
}
Als (type == 'P') {}
Serial.Print("pwn");
pinMode (pin, uitvoer);
analogWrite (pin, val);
Als (pin 3 ==) {}
brightnessR = val;
}
Als (pin == 5) {}
brightnessG = val;
}
Als (pin 6 ==) {}
brightnessB = val;
}
}
anders als (type 'A' ==) {}
Serial.Print ("analoge pin");
analogWrite (pin, val);
analogRequests ++;
}
Serial.Print(PIN);
Serial.Print("=");
Serial.Print(val);
Serial.Print(",");
Serial.Print(valg);
Serial.Print(",");
Serial.println(valb);
}
}
Serial.println();
///*
verzenden van een standaard http-antwoordheader
client.println ("HTTP/1.1 200 OK");
client.println ("Content-Type: application/json");
client.println();
output van de waarde van elke analoge invoer pin als een json-p-object
client.Print("{");
client.Print("\"a1");
client.Print ("\": ");
client.Print(analogRead(1));
client.Print(",");
//***********************************
client.Print("\"a0");
client.Print ("\": ");
client.Print(analogRead(0));
client.Print(",");
//***********************************
client.Print("\"S0");
client.Print ("\": ");
client.Print(POS);
client.Print(",");
//************************************
client.Print("\"Red");
client.Print ("\": ");
client.Print(brightnessR);
client.Print(",");
//***********************************
client.Print("\"Green");
client.Print ("\": ");
client.Print(brightnessG);
client.Print(",");
//***********************************
client.Print("\"Blue");
client.Print ("\": ");
client.Print(brightnessB);
client.Print(",");
client.Print("\"D7");
client.Print ("\": ");
int sw1 = digitalRead(7);
Als (sw1 == HIGH) {}
client.Print("1");
}
Als (sw1 == LOW) {}
client.Print("0");
}
client.Print(",");
//***********************************
client.Print("\"temp");
client.Print ("\": ");
zweven tempC1 = sensors.getTempC(Sensor1);
client.Print(DallasTemperature::toFahrenheit(tempC1));
client.Print(",");
client.println("}");
breken;
}
}
de web browser tijd geven om te ontvangen van de gegevens
delay(1);
client.stop();
}
}