A Internet das Coisas (IOT) tem simplificado as coisas no mundo. Com o Xboard Relay, poderá não só monitorizar dados através da Internet, mas também controlá-lo através da Internet. O Xboard Relay combina um microprocessador Atmega 32u4 e um chip wiz5100 que é totalmente compatível com o Arduino Leonardo e a biblioteca Ethernet, tem um conector Xbee e 2 relés que permitem uma fácil detecção e controlo através da Internet.
Um cabo micro USB é o único hardware necessário para fazer o upload do sketch.
Especificações:
• MCU: Atmega32u4;
• Velocidade do Relógio: 16MHz;
• Memória Flash: 32 KB (ATmega32u4) dos quais 4 KB usados pelo bootloader;
• SRAM: 2,5KB (ATmega32u4);
• EEPROM: 1 KB (Atmega32u4);
• Chip Ethernet: Wiz5100;
• Fonte de alimentação: 7.2 - 12V;
• Fonte USB: Micro USB @ 5V;
• Pinos de saída: 2 Analógicos / 1 I2C / 4 Pinos de saída digitais;
Informação do relé:
• Corrente nominal: 10A (NO) 5A (NC);
• Tensão de comutação máxima: 150VAC 24VDC;
• Interface digital;
• Sinal de controlo: Nível TTL;
• Classificação de contacto (carga restante): 10A 277VAC / 24VDC;
• Tensão de comutação Máx. 250VAC / 30VDC 250VAC / 30VDC;
• Corrente de comutação Máx. 15A;
• Potência de comutação Máx. 2770VA 240W 2770VA 240W;
• Classificação UL: 10A 120VAC / 10A 277VAC;
• Tempo de operação (em nomi. Vot.): 10ms;
• Tempo de liberação (em nomi. Vot.): 5ms.
Documentação:
→ Ficha do Produto
→ Esquema
→ Dimensões e Layout
→ Datasheet atmega32u4
→ Datasheet W5100
→ Livraria MQTT
Aplicações IOS:
→ Download app Xhouse
→ Código exemplo Xhouse e Livrarias
→ Tutorial Xhouse;
→ Projecto Xhouse - Com IOT é Fácil
Aplicações Android:
→ App Android Souliss
Inclui:
• 1x X-board Relay.
Código Exemplo:
#include <SPI.h>
#include <Ethernet.h>
EthernetServer server(80);
// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = {
0xDE, 0xCD, 0xAE, 0x0F, 0xFE, 0xED };
// Initialize the Ethernet server library
// with the IP address and port you want to use
// (port 80 is default for HTTP):
void setup() {
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
// start the Ethernet connection:
if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP");
// no point in carrying on, so do nothing forevermore:
for(;;)
;
}
// print your local IP address:
Serial.print("My IP address: ");
for (byte thisByte = 0; thisByte < 4; thisByte++) {
// print the value of each byte of the IP address:
Serial.print(Ethernet.localIP()[thisByte], DEC);
Serial.print(".");
}
Serial.println();
// start the Ethernet connection and the server:
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
}
void loop() {
// listen for incoming clients
EthernetClient client = server.available();
if (client) {
Serial.println("new client");
// an http request ends with a blank line
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
// if you've gotten to the end of the line (received a newline
// character) and the line is blank, the http request has ended,
// so you can send a reply
if (c == 'n' && currentLineIsBlank) {
// send a standard http response header
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connnection: close");
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
// add a meta refresh tag, so the browser pulls again every 5 seconds:
client.println("<meta http-equiv="refresh" content="5">");
client.println("<link rel="stylesheet" type="text/css" href="http://www.dfrobot.com/ihome/stylesheet/stylesheet.css" />");
client.println("<center> <a href="http://www.dfrobot.com"><img src="http://alturl.com/qf6vz"></a> </center> ");
client.println("<br />");
client.println("<div>");
// output the value of each analog input pin
for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
int sensorReading = analogRead(analogChannel);
client.print("analog input ");
client.print(analogChannel);
client.print(" is ");
client.print(sensorReading);
client.println("<br />");
}
// output the value of each digital input pin
for (int digitalChannel = 2; digitalChannel < 10; digitalChannel++) {
int sensorReading = digitalRead(digitalChannel);
if(digitalChannel!=7&&digitalChannel!=8)
{
client.print("Digital input ");
client.print(digitalChannel);
client.print(" is ");
client.print(sensorReading);
client.println("<br />");
}
else
{
client.print("Relay ");
client.print(digitalChannel);
client.print(" is ");
client.print(sensorReading);
client.println("<br />");
}
}
client.println("</div>");
client.println("</html>");
break;
}
if (c == 'n') {
// you're starting a new line
currentLineIsBlank = true;
}
else if (c != 'r') {
// you've gotten a character on the current line
currentLineIsBlank = false;
}
}
}
// give the web browser time to receive the data
delay(1);
// close the connection:
client.stop();
Serial.println("client disonnected");
}
}