Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλημέρα παιδιά..προσπαθώ να προγραμματίσω το arduino έτσι ώστε από τον browser ή μια εφαρμογή στο κινητό μου να μπορώ να ελέγξω κάποια relay στο σπίτι και να πάρω δεδομένα από αισθητήρες..το θέμα μου είναι οτι αντί για την default παρουσίαση του browser,θέλω να φτιάξω εγώ την εμφάνιση.πώς μπορώ στον κώδικα του arduino να το βάλω να παίρνει το css από την sd κάρτα;;και ίσως να φορτώνει κάποιες εικόνες σαν background;;κάποιος τρόπος θα υπάρχει να διαβάσει από την sd..σωστά;;

  • Απαντ. 35
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Συχνή συμμετοχή στο θέμα

Δημοσ.

όπου server είτε ο υπολογιστής,είτε κάποια άλλη συσκευή συνδεδεμένη μόνιμα στο δίκτυο του σπιτιού,σωστά;;πχ raspberry;;στον κώδικα πώς θα του έδειχνα να δει από το τοπικό δίκτυο;;

Δημοσ.

εκεί που χρησιμοποιώ το arduino δεν έχει πρόσβαση στο ίντερνετ..έχεις δίκιο οτι δεν χρειάζεται να το σερβίρω απο τον μικροελεγκτή...

αν έφτιαχνα μια html σελίδα;;θα το έκανε σωστά;;

Δημοσ.

Αν η html σελίδα σου έχει κάποιο τρόπο επικοινωνίας με το arduino για να παίρνει και να στέλνει τα δεδομένα ναι μπορείς να το κάνεις με html και δικά σου css.

 

To θέμα είναι να δεις πως μπορείς να πάρεις δεδομένα από το arduino μέσω web.

Δημοσ.

Αν η html σελίδα σου έχει κάποιο τρόπο επικοινωνίας με το arduino για να παίρνει και να στέλνει τα δεδομένα ναι μπορείς να το κάνεις με html και δικά σου css.

 

To θέμα είναι να δεις πως μπορείς να πάρεις δεδομένα από το arduino μέσω web.

θέλω από την sd να το κάνω..και δε μπορώ να φανταστώ πώς θα το κάνω να παίρνει το css και την html σελίδα από την sd κι όχι να δημιουργείται από το arduino,όπως τώρα..θα μπορούσα κάπως να στήσω server με το raspberry;;και πώς θα μπορούσε να πάρει από εκεί το css αρχείο;;πχ από το ίντερνετ το παίρνει με μια εντολή τύπου :  

client.println("<link rel='stylesheet' type='text/css' href='http://homeautocss.net84.net/a.css'/>");

αυτό θα μπορούσε να γίνει και από την sd;;
Δημοσ.

μπορείς να έχεις ένα raspberry που θα κάνει τον web server

πάνω του θα συνδέσεις το arduino και από το raspberry θα στέλνεις serial ανάλογα με το τι θα πατάς στην κάθε σελίδα

 

αλλιως μπορείς να βάλεις στο arduino ένα ethernet shield και να είναι και web server ταυτόχρονα

Δημοσ.

έχω shield στο arduino...αν θες δημοσιεύω και τον κώδικα που χρησιμοποιώ (από ένα tutorial)για τον έλεγχο των relay..το θέμα είναι πώς μπορώ να τον τροποποιήσω για να παίρνει δεδομένα είτε από την sd είτε από ένα raspberry που θα παίζει το ρόλο του server...

Δημοσ.

λογικά κάνεις client.print("{html tags...}"); σωστά;

γιατί δεν κάνεις και print και το css ;

δες αυτό το example π.χ. http://www.w3schools.com/html/html_css.aspέχει το "css" part μέσα στο html file,

εσύ με το client.print() στέλνει στον client κάθε γραμμή του html αρχείου τυπικά...

Δημοσ.

πώς να τροποποιήσω τον κώδικα δηλαδή;;να το κάνω πχ 

 client.println("<H1><font size=9 color=red>CHRISTMAS LIGHTS</font></H1>");       
το θέμα είναι οτι μου μεγαλώνει τα γράμματα μέχρι ενός σημείου..και οτι δεν έχω καταφέρει να βάλω background image.. 
ένα τυπικό css για το πρόγραμμα που φτιάχνω είναι αυτό που δίνουν εδώ.. 
που εννοείται οτι θα του κάνω αλλαγές..αν το περάσω γραμμή γραμμή με client.print,νομίζω δε δουλεύει σωστά..
Δημοσ.

αν το βάλεις μέσα στο <head> <style> γιατί όχι;

π.χ.

<head>
<style>
body {
        margin:50px 0px; padding:0px;
        text-align:center;
        }
h1
{
text-align: center;
font-family:"Trebuchet MS",Arial, Helvetica, sans-serif;
}
a
{
text-decoration:none;
width:75px;
height:50px;
border-color:black;
border-top:2px solid;
border-bottom:2px solid;
border-right:2px solid;
border-left:2px solid;
border-radius:10px 10px 10px;
-o-border-radius:10px 10px 10px;
-webkit-border-radius:10px 10px 10px;
font-family:"Trebuchet MS",Arial, Helvetica, sans-serif;
-moz-border-radius:10px 10px 10px;
background-color:#525252;
padding:8px;
text-align:center;
}
a:link {color:white;}      /* unvisited link */
a:visited {color:white;}  /* visited link */
a:hover {color:white;}  /* mouse over link */
a:active {color:white;}  /* selected link */

</style>
</head>
Δημοσ.

ενσωμάτωσα αυτό 

client.println("<HEAD>");
          client.println("<style>");
          client.println("<background-color:#525252>");
          client.println("<meta name='apple-mobile-web-app-capable' content='yes' />");
          client.println("<meta name='apple-mobile-web-app-status-bar-style' content='black-translucent' />");
          client.println("<link rel='stylesheet' type='text/css' href='http://homeautocss.net84.net/a.css' />");
          client.println("<TITLE><font size=9 color=red>Christmas Lights</font></TITLE>");
          client.println("</style>");
          client.println("</HEAD>");

το χρώμα του background παρέμεινε άσπρο..

Δημοσ.

αυτός είναι του tutorial,τον έχω τροποποιήσει λίγο,αλλά είναι στη φάση που τον δουλεύω και τον επεικτείνω..
 


#include <SPI.h>
#include <Ethernet.h>
 
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
byte ip[] = { 192, 168, 1, 177 }; // ip in lan
byte gateway[] = { 192, 168, 1, 1 }; // internet access via router
byte subnet[] = { 255, 255, 255, 0 }; //subnet mask
EthernetServer server(80); //server port
 
String readString;
 
//////////////////////
 
void setup(){
 
  pinMode(4, OUTPUT);
  pinMode(6, OUTPUT); //pin selected to control
  //start Ethernet
  Ethernet.begin(mac, ip, gateway, subnet);
  server.begin();
  //the pin for the servo co
  //enable serial data print
  Serial.begin(9600);
  Serial.println("server LED test 1.0"); // so I can keep track of what is loaded
}
 
void loop(){
  // Create a client connection
  EthernetClient client = server.available();
  if (client) {
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
 
        //read char by char HTTP request
        if (readString.length() < 100) {
 
          //store characters to string
          readString += c;
          //Serial.print(c);
        }
 
        //if HTTP request has ended
        if (c == '\n') {
 
          ///////////////
          Serial.println(readString); //print to serial monitor for debuging
 
          client.println("HTTP/1.1 200 OK"); //send new page
          client.println("Content-Type: text/html");
          client.println();
 
          client.println("<HTML>");
          client.println("<HEAD>");
          client.println("<style>");
          client.println("<background-color=#525252>");
          client.println("<meta name='apple-mobile-web-app-capable' content='yes' />");
          client.println("<meta name='apple-mobile-web-app-status-bar-style' content='black-translucent' />");
          client.println("<link rel='stylesheet' type='text/css' href='http://homeautocss.net84.net/a.css' />");
          client.println("<TITLE><font size=9 color=red>Christmas Lights</font></TITLE>");
          client.println("</style>");
          client.println("</HEAD>");
          client.println("<BODY>");
          client.println("<H1><font size=9 color=red>CHRISTMAS LIGHTS</font></H1>");       
          client.println("<br />");
          client.println("<br />");
          client.println("<br />");
          client.println("<br />");
          client.println("<br />");
          client.println("<H1><font size=9 color=red>TREE-DOOR<font></H1>");
          client.println("<a href=\"/?lighton1\"\"><font size=6 color=black>ON</font>     </a>");
          client.println("<a href=\"/?lightoff1\"\"><font size=6 color=black>OFF</font></a><br />");  
          client.println("<br />");
          client.println("<br />");
          client.println("<br />");
          client.println("<H1><font size=6 color=red>other lights</font></H1>");
          client.println("<a href=\"/?lighton2\"\"><font size=6 color=black>ON</font>    </a>");
          client.println("<a href=\"/?lightoff2\"\"><font size=6 color=black>OFF</font></a><br />");        
          client.println("<hr />");
          client.println("</BODY>");
          client.println("</HTML>");
 
          delay(1);
          //stopping client
          client.stop();
 
          ///////////////////// control arduino pin
          if(readString.indexOf("?lighton1") >0)//checks for on
          {
            digitalWrite(4, HIGH);    // set pin 4 high
            Serial.println("Led On");
          }
          else{
          if(readString.indexOf("?lightoff1") >0)//checks for off
          {
            digitalWrite(4, LOW);    // set pin 4 low
            Serial.println("Led Off");
          }
          }
          
          if(readString.indexOf("?lighton2") >0)//checks for on
          {
            digitalWrite(6, LOW);    // set pin 4 high
            Serial.println("Led On");
          }
          else{
          if(readString.indexOf("?lightoff2") >0)//checks for off
          {
            digitalWrite(6, HIGH);    // set pin 4 low
            Serial.println("Led Off");
          }
          }
           //clearing string for next read
           readString="";
        }
      }
    }
  }
}

δες τον μόλις μπορέσεις!χίλια ευχαριστώ για τη βοήθεια!!

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα

  • Δημιουργία νέου...