webserver ingang laag > html text kleur veranderen

Arduino specifieke Software
Berichten: 14
Geregistreerd: 18 Nov 2015, 10:51

webserver ingang laag > html text kleur veranderen

Berichtdoor samboerhoop » 28 Dec 2015, 11:52

Ik gebruik een Arduino nano, deze heb ik al via een webserver omgezet om 4 uitgangen te gebruiken als uitgang / relay

Nou zou ik graag ook 4 aparte ingangen van de nano willen gebruiken om bijvoorbeeld: ingang 1 > wanneer de laag word dan moet de tekst "CLOSED" veranderen van kleur groen naar rood en visa versa?

Hoe doe ik dat?

Advertisement

Berichten: 4067
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: webserver ingang laag > html text kleur veranderen

Berichtdoor shooter » 28 Dec 2015, 20:02

daar waar je de tekstkleur bepaalt kun je schrijven:
if (digitalRead(pinnumber)== HIGH){kleur=rood;}
paul deelen
shooter@home.nl

Berichten: 14
Geregistreerd: 18 Nov 2015, 10:51

Re: webserver ingang laag > html text kleur veranderen

Berichtdoor samboerhoop » 29 Dec 2015, 21:47

Dit is de sketch van de Nano:
cpp code
/* 
-----------------------

VCC - 5V
GND - GND
SCK - Pin 13
SO - Pin 12
SI - Pin 11
CS - Pin 10
OUT 1 - Digital pin 2
OUT 2 - Digital pin 3
OUT 3 - Digital pin 4
OUT 4 - Digital pin 5
IN 1 - Digital pin 6
IN 2 - Digital pin 7
IN 3 - Digital pin 8
IN 4 - Digital pin 9

------------------
*/

#include <EtherCard.h>

// MAC Address
static byte mymac[] = {
0xFA,0x5A,0x51,0x53,0x5A,0x5A };

// IP Address
static byte myip[] = {
10,0,1,180 };

byte Ethernet::buffer[1200];
BufferFiller bfill;

int OutputPins[] = {
2,3,4,5};

byte IN1 = 6; // Digital Pin 6
byte IN2 = 7; // Digital Pin 7
byte IN3 = 8; // Digital Pin 8
byte IN4 = 9; // Digital Pin 9

//int InputPins[] = {
// 6,7,8,9};

boolean PinStatus[] = {
1,2,3,4};

boolean InputStatus[] = {
5,6,7,8};

//-------------

const char http_OK[] PROGMEM =
"HTTP/1.0 200 OK\r\n"
"Content-Type: text/html\r\n"
"Pragma: no-cache\r\n\r\n";

const char http_Found[] PROGMEM =
"HTTP/1.0 302 Found\r\n"
"Location: /\r\n\r\n";

const char http_Unauthorized[] PROGMEM =
"HTTP/1.0 401 Unauthorized\r\n"
"Content-Type: text/html\r\n\r\n"
"<h1>401 Unauthorized</h1>";

//------------

void homePage()
{
bfill.emit_p(PSTR("$F"

"<html>"
"<meta http-equiv=\"refresh\" content=\"2\">"
"<title>Server Control Webserver</title>"
"<h3>Home Control Network Module 1</h3>"
"<body style='background-color:rgb(255,255,102);'>"

"<table class=fixed>"
"<col width=300px />"
"<col width=150px />"
"<tr>"
"<td><b>INPUTS:</b></td>"
"<td></td>"
"</tr>"
"<tr>"
"<tr>"
"<td>Outside Front Socket:</td>"
"<td>OPEN</td>"
"</tr>"
"<tr>"
"<td>Key Locker:</td>"
"<td>CLOSED</td>"
"</tr>"
"<tr>"
"<td>Front Door:</td>"
"<td>CLOSED</td>"
"</tr>"
"<tr>"
"<td>Input 4:</td>"
"<td>OPEN</td>"
"</tr>"
"<tr>"
"<td></br /></td>"
"<td></td>"
"</tr>"
"<tr>"
"<td><b>OUTPUTS:</b></td>"
"<td></td>"
"</tr>"
"<tr>"
"<td>Outside Front Socket:</td>"
"<td><a href=\"?ArduinoPIN1=$F\">$F</a></td>"
"</tr>"
"<tr>"
"<td>Hall Light ON:</td>"
"<td><a href=\"?ArduinoPIN2=$F\">$F</a></td>"
"</tr>"
"<tr>"
"<td>Outside Front Lights ON:</td>"
"<td><a href=\"?ArduinoPIN3=$F\">$F</a></td>"
"</tr>"
"<tr>"
"<td>Relay 4:</td>"
"<td><a href=\"?ArduinoPIN4=$F\">$F</a></td>"
"</tr>"
"</table></br />"

"Location: Server Room<br />"

"</body>"
"</html>"
),

http_OK,
PinStatus[1]?PSTR("off"):PSTR("on"),
PinStatus[1]?PSTR("<font color=\"green\"><b>ON</b></font>"):PSTR("<font color=\"red\">OFF</font>"),
PinStatus[2]?PSTR("off"):PSTR("on"),
PinStatus[2]?PSTR("<font color=\"green\"><b>ON</b></font>"):PSTR("<font color=\"red\">OFF</font>"),
PinStatus[3]?PSTR("off"):PSTR("on"),
PinStatus[3]?PSTR("<font color=\"green\"><b>ON</b></font>"):PSTR("<font color=\"red\">OFF</font>"),
PinStatus[4]?PSTR("off"):PSTR("on"),
PinStatus[4]?PSTR("<font color=\"green\"><b>ON</b></font>"):PSTR("<font color=\"red\">OFF</font>"));
// added //
// InputStatus[5]?PSTR("off"):PSTR("on"),
// InputStatus[5]?PSTR("<font color=\"green\"><b>ON</b></font>"):PSTR("<font color=\"red\">OFF</font>"),
// InputStatus[6]?PSTR("closed"):PSTR("open"),
// InputStatus[6]?PSTR("<font color=\"green\"><b>CLOSED</b></font>"):PSTR("<font color=\"red\">OPEN</font>"),
// InputStatus[7]?PSTR("closed"):PSTR("open"),
// InputStatus[7]?PSTR("<font color=\"green\"><b>CLOSED</b></font>"):PSTR("<font color=\"red\">OPEN</font>"),
// InputStatus[8]?PSTR("closed"):PSTR("open"),
// InputStatus[8]?PSTR("<font color=\"green\"><b>CLOSED</b></font>"):PSTR("<font color=\"red\">OPEN</font>"));
}

//------------------------

void setup()
{
Serial.begin(9600);

if (ether.begin(sizeof Ethernet::buffer, mymac, 10) == 0);

if (!ether.staticSetup(myip));
ether.printIp("My SET IP: ", ether.myip);

//------------------------

for(int i = 0; i <= 4; i++)
{
pinMode(OutputPins[i],OUTPUT);
digitalWrite (OutputPins[i],LOW);
PinStatus[i]=false;
}

// for(int i = 5; i <= 9; i++)
// {
// pinMode(InputPins[i],INPUT);
//digitalWrite (OutputPins[i],LOW);
//PinStatus[i]=false;
// }

pinMode(IN1,INPUT); // Digital Pin 6
pinMode(IN2,INPUT); // Digital Pin 7
pinMode(IN3,INPUT); // Digital Pin 8
pinMode(IN4,INPUT); // Digital Pin 9
digitalWrite(6, HIGH); // pullup resistor on digital pin 6
digitalWrite(7, HIGH); // pullup resistor on digital pin 7
digitalWrite(8, HIGH); // pullup resistor on digital pin 8
digitalWrite(9, HIGH); // pullup resistor on digital pin 9
}

// --------------------------------------

void loop()
{
delay(1);
word len = ether.packetReceive(); // check for ethernet packet
word pos = ether.packetLoop(len); // check for tcp packet

if (pos) {
bfill = ether.tcpOffset();
char *data = (char *) Ethernet::buffer + pos;
if (strncmp("GET /", data, 5) != 0) {
bfill.emit_p(http_Unauthorized);
}

else {

// Selecting Digital Output Pins - 2 till 5

data += 5;
if (data[0] == ' ') {
homePage(); // Return home page
for (int i = 0; i <= 3; i++)digitalWrite(OutputPins[i],!PinStatus[i+1]);
}

// "16" = "?ArduinoPIN1=on ".
else if (strncmp("?ArduinoPIN1=on ", data, 16) == 0) {
PinStatus[1] = true;
bfill.emit_p(http_Found);
}
else if (strncmp("?ArduinoPIN2=on ", data, 16) == 0) {
PinStatus[2] = true;
bfill.emit_p(http_Found);
}
else if (strncmp("?ArduinoPIN3=on ", data, 16) == 0) {
PinStatus[3] = true;
bfill.emit_p(http_Found);
}
else if (strncmp("?ArduinoPIN4=on ", data, 16) == 0) {
PinStatus[4] = true;
bfill.emit_p(http_Found);
}

//------------------------------------------------------

else if (strncmp("?ArduinoPIN1=off ", data, 17) == 0) {
PinStatus[1] = false;
bfill.emit_p(http_Found);
}
else if (strncmp("?ArduinoPIN2=off ", data, 17) == 0) {
PinStatus[2] = false;
bfill.emit_p(http_Found);
}
else if (strncmp("?ArduinoPIN3=off ", data, 17) == 0) {
PinStatus[3] = false;
bfill.emit_p(http_Found);
}
else if (strncmp("?ArduinoPIN4=off ", data, 17) == 0) {
PinStatus[4] = false;
bfill.emit_p(http_Found);
}

else {
// Page not found
bfill.emit_p(http_Unauthorized);
}
}

// Selecting Input Pins - IN1 till IN4

if (digitalRead(IN1) == LOW) {
Serial.println(F("Outside Front Socket ON"));
}

if (digitalRead(IN2) == LOW) {
Serial.println(F("Key Locker Open"));
}

if (digitalRead(IN3) == LOW) {
Serial.println(F("Front Door Open"));
}

if (digitalRead(IN4) == LOW) {
//Serial.println(F("Relay 4"));
// PinStatus[1] = true; // Turn ON Output 1 Relay1 Pin 2 - Assosciate pin to output
delay(1);
}

delay(1);
ether.httpServerReply(bfill.position()); // send http response
}
}

Waar pas ik dat dan toe, zie bovenstaande sketch ?

Berichten: 14
Geregistreerd: 18 Nov 2015, 10:51

Re: webserver ingang laag > html text kleur veranderen

Berichtdoor samboerhoop » 04 Jan 2016, 15:43

Niemand die me kan helpen?

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: webserver ingang laag > html text kleur veranderen

Berichtdoor nicoverduin » 04 Jan 2016, 21:13

Er zijn wel een paar dingen waar je op moet letten. De software die je hebt is die van een server. Dus wat er gebeurt is dat de browser naar de server gaat (net als een gewone browser). Er wordt door de browser een zgn. http request verstuurd en de server reageert. Nu wil je dat, als er iets op de server gebeurt, dat je dan op de browser dit te zien krijgt. Hier is een kleine tutorial hoe zoiets werkt (of google op Arduino + jouw ethernet shield + AJAX + webserver). https://startingelectronics.org/tutoria ... -tutorial/
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: ninojohuo en 93 gasten