Arduino Ethernet modul?
Sziasztok! Kezdő vagyok ezen a téren, még csak ismerkedek az Arduinoval. Szeretném kipróbálni az Ethernet modult, de nem jutok előre. Egy gyári példával próbáltam először, gondoltam ez biztosan nem hibás. Egy Nano-t és egy ENC28J60 modult használok erre a célra. Szeretném elérni, hogy ha rádugom a modult az itthoni routerre, gépről tudjak hozzá csatlakozni (későbbiekben így irányítani ez-azt). Van ötletetek mi lehet a gond?
Ezzel a gyári mintaprogrammal próbálkoztam:
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
};
IPAddress ip(192, 168, 1, 177);
EthernetServer server(80);
void setup() {
Serial.begin(9600);
while (!Serial) {
;
}
Ethernet.begin(mac, ip);
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
}
void loop() {
EthernetClient client = server.available();
if (client) {
Serial.println("new client");
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
if (c == '\n' && currentLineIsBlank) {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");
client.println("Refresh: 5");
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
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 />");
}
client.println("</html>");
break;
}
if (c == '\n') {
currentLineIsBlank = true;
} else if (c != '\r') {
currentLineIsBlank = false;
}
}
}
delay(1);
client.stop();
Serial.println("client disconnected");
Ethernet.maintain();
}
}
Esetleg rosszul kötöttem össze a Nano-t a modullal? (10-13-as kivezetéseket használtam egy leírás alapján)
Azt nem tudom milyen modult vettél. Ezt jó lenne ha megírnád.
A nano sem volt a legjobb választás, mert az ethernet shield-et nem tudod rátenni. Bár asszem rémlik olyan shield, ami jó rá.
A shieldnek feszültséget kell kapnia, a 10-13-as lábat nem tudom mire érted?
A progit be kell égetni a nano-ba. A cuccot pedig a PC-d böngészőjén keresztül érheted el (már amennyiben összekötöd azt egy patch kábel segítségével a PC-d, vagy a routered rj45-ös csatijával), ha begépeled az IP címet, megjelenik a http 1.1 felirat. Ez egy sima szerver.
A feszültséget és a földet természetesen rákötöttem. A 10, 11, 12, 13-as kivezetésre kötöttem az ethernet shield CS, SI, SO és SCK "tüskéit".
Ezt a fajta modult vettem hozzá:
A program bele van égetve, a böngészőbe pedig a programban lévő IP címen próbálom elérni természetesen :) Egyedül azt nem tudom, hogy miért nem jó :)
Így kötötted be?
------------------------------
Ha a gépre, PC-dre rákötöd a nanot és megnyitod az arduino keretrendszerben a soros terminalt, majd a reset gombot megnyomod a nano-n, akkor ki kell irnia, hogy készen áll.
Annyit kérdeznék még, írtam egy olyan kódot, amivel böngészőből tudok egy LED-et kapcsolgatni. 2 gomb van, egyik a LED be másik a LED ki. Azt szeretném, hogy ha rányomok egyik vagy másik gombra ugyanúgy kapcsoljon, de ezután a böngészőben nyisson meg egy adott oldalt. Ezt a hivatkozást hogyan tudom a kódba "beépíteni"?
if (readString.indexOf("?button1on") >0){
digitalWrite(led, HIGH);
}
Gondolom ebbe a részbe kellene valahogy egy hivatkozást beszúrni.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!