Nano Input bron kode ?
9 berichten
• Pagina 1 van 1
- samboerhoop
- Berichten: 14
- Geregistreerd: 18 Nov 2015, 10:51
Nano Input bron kode ?
Ik heb een Adruino Nano en wil een ingang aansluiten en laten zien via een webserver, hoe kan ik dat doen?
Advertisement
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Nano Input bron kode ?
Om je wat verder te helpen:
http://foreglance.com/20140822/arduino- ... -web-page/
http://foreglance.com/20140822/arduino- ... -web-page/
- samboerhoop
- Berichten: 14
- Geregistreerd: 18 Nov 2015, 10:51
Re: Nano Input bron kode ?
Zover was ik al
Zie mijn code: viewtopic.php?f=8&t=1570&p=10688&hilit=ingang+nano#p10688
uitgangen werken, nu de ingangen nog !!
Zie mijn code: viewtopic.php?f=8&t=1570&p=10688&hilit=ingang+nano#p10688
uitgangen werken, nu de ingangen nog !!
Re: Nano Input bron kode ?
Heb je hier wat aan?
http://startingelectronics.org/tutorials/arduino/ethernet-shield-web-server-tutorial/
Part 6 Reading a Switch
http://startingelectronics.org/tutorials/arduino/ethernet-shield-web-server-tutorial/
Part 6 Reading a Switch
- samboerhoop
- Berichten: 14
- Geregistreerd: 18 Nov 2015, 10:51
Re: Nano Input bron kode ?
Ok, thanks.
but this is for an arduino uno and a nano is programmed differently. a nano doesn't understand "client.println" etc...
but this is for an arduino uno and a nano is programmed differently. a nano doesn't understand "client.println" etc...
Re: Nano Input bron kode ?
een nano kan precies hetzelfde, maar is wel afhankelijk van de lib die je gebruikt.
paul deelen
shooter@home.nl
shooter@home.nl
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Nano Input bron kode ?
Ik heb op je topic gereageerd. Je zult het moeten zoeken in een AJAX achtige oplossing voor een webserver.samboerhoop schreef:Zover was ik al
Zie mijn code: viewtopic.php?f=8&t=1570&p=10688&hilit=ingang+nano#p10688
uitgangen werken, nu de ingangen nog !!
- samboerhoop
- Berichten: 14
- Geregistreerd: 18 Nov 2015, 10:51
Re: Nano Input bron kode ?
Het is me gelukt om via de UIPEthernet.h library de Nano aan te sturen.
Bedankt voor de tip
Nou zit er nog een bug in van de currentLineIsBlank aansturing. Nadat je op een link heb gedrukt de toevoeging bijv: "?relay1off" weer word verwijderd, zodat deze niet continue doorloopt na de volgende refresh. Wat heb ik verkeerd gedaan ?
cpp code
Bedankt voor de tip
Nou zit er nog een bug in van de currentLineIsBlank aansturing. Nadat je op een link heb gedrukt de toevoeging bijv: "?relay1off" weer word verwijderd, zodat deze niet continue doorloopt na de volgende refresh. Wat heb ik verkeerd gedaan ?
cpp code
#include <UIPEthernet.h> // Used for Ethernet
#include <SPI.h>
//"-- BUGS or to Do's--"));
//" POST link inputs to Fibaro or within another way"));
//" Colours on / off, when "ON" pressed color will change to red and "OFF" will go to grey colorand when
"OFF" pressed changed color will change to green and "ON" color will go to grey "));
//" Refresh blank page issue"));
//" Hang ups"));
// **** ETHERNET SETTING ****
byte mac[] = {0x54, 0x34, 0x41, 0x30, 0x30, 0x31 };
IPAddress ip (10, 0, 1, 180);
EthernetServer server (80);
byte Relay1 = 2;
byte Relay2 = 3;
byte Relay3 = 4;
byte Relay4 = 5;
byte Input1 = 6;
byte Input2 = 7;
byte Input3 = 8;
byte Input4 = 9;
String readString;
void setup() {
Serial.begin(9600);
// start the Ethernet connection and the server:
Ethernet.begin(mac, ip);
server.begin();
// Assign Inputs and Outputs //
pinMode(2, OUTPUT); // Relay 1
pinMode(3, OUTPUT); // Relay 2
pinMode(4, OUTPUT); // Relay 3
pinMode(5, OUTPUT); // Relay 4
pinMode(6, INPUT); // Input 1
pinMode(7, INPUT); // Input 2
pinMode(8, INPUT); // Input 3
pinMode(9, INPUT); // Input 4
// Start with outputs LOW //
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
// Pullup Resistors //
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
Serial.print("IP Address: ");
Serial.println(Ethernet.localIP());
}
void loop() {
// Create a client connection
EthernetClient client = server.available();
if (client) {
boolean currentLineIsBlank = true; // added
while (client.connected()) {
if (client.available()) {
char c = client.read();
//read char by char HTTP request
if (readString.length() < 100) { // 100
//store characters to string
readString += c;
Serial.print(c);
}
//if HTTP request has ended
// if (c == '\n' ) { // old relay code
if (c == '\n' && currentLineIsBlank) { // switch input
Serial.println(readString); //print to serial monitor for debuging
client.println(F("HTTP/1.1 200 OK")); //send new page
client.println(F("Content-Type: text/html"));
client.println(F("Connnection: close")); // added
client.println();
client.println(F("<!DOCTYPE html>")); // added
client.println(F("<HTML>"));
client.println(F("<HEAD>"));
client.println(F("<TITLE>NANO-1</TITLE>"));
client.println(F("<meta http-equiv=\"refresh\" content=\"5\">")); // added
client.println(F("</HEAD>"));
client.println(F("<body style='background-color:rgb(255,255,102);'>"));
client.println(F("<H2>Home Control NANO-1</H2>"));
client.println(F("<hr />"));
client.println(F("<table class=fixed>"));
client.println(F("<col width=300px />"));
client.println(F("<col width=150px />")); //150
client.println(F("<tr>"));
client.println(F("<td><b>INPUTS</b></td>"));
client.println(F("<td></td>"));
client.println(F("</tr>"));
client.println(F("<tr>"));
client.println(F("<td>Outside Front Socket</td>"));
GetSwitchState1(client);
client.println(F("</tr>"));
client.println(F("<tr>"));
client.println(F("<td>Front Door:</td>"));
GetSwitchState2(client);
client.println(F("</tr>"));
client.println(F("<tr>"));
client.println(F("<td>Key Locker:</td>"));
GetSwitchState3(client);
client.println(F("</tr>"));
client.println(F("<tr>"));
client.println(F("<td>Input 4:</td>"));
GetSwitchState4(client);
client.println(F("</tr>"));
client.println(F("<tr>"));
client.println(F("<td></br /></td>"));
client.println(F("<td></td>"));
client.println(F("</tr>"));
client.println(F("<tr>"));
client.println(F("<td><b>OUTPUTS</b></td>"));
client.println(F("<td></td>"));
client.println(F("</tr>"));
client.println(F("<tr>"));
client.println(F("<td>Outside Front Socket:</td>"));
client.println(F("<td><a href=\"/?relay1on\"\">ON</a> <a href=\"/?relay1off\"\">OFF</a></td>"));
client.println(F("</tr>"));
client.println(F("<tr>"));
client.println(F("<td>Veranda Spots:</td>"));
client.println(F("<td><a href=\"/?relay2on\"\">ON</a> <a href=\"/?relay2off\"\">AUTO</a></td>"));
client.println(F("</tr>"));
client.println(F("<tr>"));
client.println(F("<td>Alleyway Light:</td>"));
client.println(F("<td><a href=\"/?relay3on\"\">ON</a> <a href=\"/?relay3off\"\">AUTO</a></td>"));
client.println(F("</tr>"));
client.println(F("<tr>"));
client.println(F("<td>Relay 4:</td>"));
client.println(F("<td><a href=\"/?relay4on\"\">ON</a> <a href=\"/?relay4off\"\">OFF</a></td>"));
client.println(F("</tr>"));
client.println(F("</table></br />"));
client.println(F("<hr />"));
client.println(F("<p>Location: Server Room</p>"));
client.println(F("</BODY>"));
client.println(F("</HTML>"));
delay(1);
//stopping client
client.stop();
//Relay 1 control buttons
if (readString.indexOf("?relay1on") >0){
digitalWrite(Relay1, LOW); }
if (readString.indexOf("?relay1off") >0){
digitalWrite(Relay1, HIGH); }
//Relay 2 control buttons
if (readString.indexOf("?relay2on") >0){
digitalWrite(Relay2, LOW); }
if (readString.indexOf("?relay2off") >0){
digitalWrite(Relay2, HIGH); }
//Relay 3 control buttons
if (readString.indexOf("?relay3on") >0){
digitalWrite(Relay3, LOW); }
if (readString.indexOf("?relay3off") >0){
digitalWrite(Relay3, HIGH); }
//Relay 4 control buttons
if (readString.indexOf("?relay4on") >0){
digitalWrite(Relay4, LOW); }
if (readString.indexOf("?relay4off") >0){
digitalWrite(Relay4, HIGH); }
//clearing string for next read
readString="";
//
//------- dont know what the use from this code is //
break;
// }
// every line of text received from the client ends with \r\n
if (c == '\n') {
// last character on line of received text
// starting new line with next character read
currentLineIsBlank = true;
}
else if (c != '\r') {
// a text character was received from client
currentLineIsBlank = false;
}
// -------// added
}
}
}
}
}
//---------- INPUTS ACTIONS -----------------------//
void GetSwitchState1(EthernetClient cl)
{
if (digitalRead(Input1) == HIGH) {
cl.println(F("<td><div style= color:green; >OFF</div></td>"));
// digitalWrite(Relay2, LOW);
}
else {
cl.println(F("<td><div style= color:red; >ON</div></td>"));
// digitalWrite(Relay2, LOW);
}
}
void GetSwitchState2(EthernetClient cl)
{
if (digitalRead(Input2) == HIGH) {
cl.println(F("<td><div style= color:red; >OPEN</div></td>"));
}
else {
cl.println(F("<td><div style= color:green; >CLOSED</div></td>"));
}
}
void GetSwitchState3(EthernetClient cl)
{
if (digitalRead(Input3) == HIGH) {
cl.println(F("<td><div style= color:red; >OPEN</div></td>"));
}
else {
cl.println(F("<td><div style= color:green; >CLOSED</div></td>"));
}
}
void GetSwitchState4(EthernetClient cl)
{
if (digitalRead(Input4) == HIGH) {
cl.println(F("<td><div style= color:green; >OFF</div></td>"));
}
else {
cl.println(F("<td><div style= color:red; >ON</div></td>"));
}
}
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Nano Input bron kode ?
Dat komt omdat je eerst een boodschap naar de client stuurt en dan pas gaat verwerken. Als je niet wilt dat er iets gebeurt als je niets doet, dan kan je overwegen om tot de verwerking van de relais wachten eerst te bepalen wat je terug wilt sturen naar de client. En dan die client print verder opbouwen. dat doe je tenslotte wel voor de switches
9 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: uqeleipa, uveyadihiqe en 14 gasten