Zdravím,
obracím se na Vás s prosbou.Dorazil mi k Arduinu Mega ethernet shield, který bych chtěl použít pro ruční ovládání relé přes web v domácí síti.
Připojil jsem ho k Arduino, zapojil do něj síťový kabel, který mám přes switch napojený do síťovky v PC (nastavil jsem si na síťovce adresu 192.168.0.2 a masku 255.255.255.0) a nahrál do Arduino tento program pro prvotní zkoušku toho ethernet shieldu (ip jsem si v programu zmenil na 0.150, aby to odpovídalo nastavení v PC.
kód:
#include <SPI.h>
#include <Ethernet.h>
// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip( 192, 168, 0, 150);
// Initialize the Ethernet server library
// with the IP address and port you want to use
// (port 80 is default for HTTP):
EthernetServer server(80);
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 and the server:
Ethernet.begin(mac, ip);
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("Connection: close"); // the connection will be closed after completion of the response
client.println("Refresh: 5"); // refresh the page automatically every 5 sec
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
// 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 />");
}
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");
}
}
Na tom modulu svítí kontrolky, že to má napájení (přes USB), že je to připojené, atd. ,ale když zadám do prohlížeče adresu toho modulu
http://192.168.0.150, tak se nic nenačte.
Když dám ping na adresu 192.168.0.150, tak na tom modulu bliká kontrolka rx a dostávám jen odpověď:
Odpověď od 192.168.0.2: Cílový hostitel není dostupný.
Program je standardní ten co je v aplikaci na zkoušku, takže by v něm chyba být neměla.
Netušíte někdo co by mohlo být ještě za problém, že se stránka nenačte?
Všude píšou, připojte, nahrajte program "web server" a jede to...
Předem děkuji za pomoc
Naposledy upravil jiri255 dne ne květen 18 2014, 11:32, celkově upraveno 1 krát.
Založen: Mar 08, 2005 Příspěvky: 912 Bydliště: Českobudějovicko
Zaslal: so květen 17 2014, 21:57 Předmět:
while (!Serial)
proběhne ?
hledal bych právě tam, nejdřív, pokud neni nějaký jiný důvod jako třeba špatný ethernet kabel tak to vypadá že se to vůbec nedostane dál, dal bych tam do while od serveru nějaký řádek aby posílal někam na seriák něco aby jsi věděl že se ta smyčka spustila. Přápadně na počítači nainstalovat wireshaark a koukat co tam kde lítá, jestli něco vůbec.
Založen: Apr 02, 2011 Příspěvky: 18042 Bydliště: Nový Bydžov
Zaslal: so květen 17 2014, 23:14 Předmět:
Kontrolovals RJ kabel? Jednou jsem koupil zmetek, blbě zapojený. Máš na obou stranách stejnou síťovou masku? Nemáš někde kolizi IP adres? Pokud to je běžně v sériový produkci tak to bude spíš něco takovýhleho, pokud ne tak máš smolík a je vadnej.
Jirka
tak jsem odzkoušel kabel a je funkční, ale nedalo mi to a s arduina jsem vykopnul ten ethernet shield a nahrál jsem tam program na blikání té ledky na pinu 13, abych začal od úplného začátku a ejhle ona ani po resetu nebliká.
Teď mě napadá jedna otázka předtím než jsem tam nasadil ten modul jsem tam měl nahranej program pro ovládání relátek, dráty jsem vyházel zapojil jsem tam ethernet modul připojil k pc přes USB a nahrál ten program web server... nemohl ten program pro ovládání relé, co tam byl předtím, udělat nějaký problém v kombinaci s tím ethernet modulem, protože teď se mi na arduinu při nahrávání programu ledky nerozblikají, ale ani to nevyhodí při nahrávání žádnou chybu Lze to Arduino nějak vrátit do továrního nastavení?
tak nenapadlo mě nic blbějšího než prostě zmáčknout reset, držet ho a pustit do toho program na blikání té ledky, pak jsem to odpojil od PC a znovu připojil a sláva ledka bliká
Nahrál jsem tam tedy úplný základ
kód:
void setup()
{
}
void loop()
{
}
a opět odpojil od pc a připojil ten ethernet modul. Znovu jsem to připojil k PC nahrál ten program web server viz výše a běží.
Vůbec netuším co se té desce stalo nebo proč stávkovala, ale teď už to šlape
Díky všem za pomoc
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.