Arduino: nahrání prvního programu

Arduino: nahrání prvního programu
« kdy: 04. 08. 2013, 14:46:53 »
Dobrý den, když chci nahrát první program z článku Arduino: webový server i klient do ruky, abych zkusil pingnout, tak mi to vypíše:

Kód: [Vybrat]
D:\arduino-1.0.5\libraries\Ethernet\utility\w5100.cpp: In member function
'void W5100Class::init()':

D:\arduino-1.0.5\libraries\Ethernet\utility\w5100.cpp:28: error: 'delay' was
not declared in this scope

D:\arduino-1.0.5\libraries\Ethernet\utility\w5100.cpp:30: error: 'SPI' was
not declared in this scope

D:\arduino-1.0.5\libraries\Ethernet\utility\w5100.cpp: In static member
function 'static uint8_t W5100Class::write(uint16_t, uint8_t)':

D:\arduino-1.0.5\libraries\Ethernet\utility\w5100.cpp:133: error: 'SPI' was
not declared in this scope

D:\arduino-1.0.5\libraries\Ethernet\utility\w5100.cpp: In static member
function 'static uint16_t W5100Class::write(uint16_t, const uint8_t*, uint16
_t)':

D:\arduino-1.0.5\libraries\Ethernet\utility\w5100.cpp:146: error: 'SPI' was
not declared in this scope

D:\arduino-1.0.5\libraries\Ethernet\utility\w5100.cpp: In static member
function 'static uint8_t W5100Class::read(uint16_t)':

D:\arduino-1.0.5\libraries\Ethernet\utility\w5100.cpp:159: error: 'SPI' was
not declared in this scope

D:\arduino-1.0.5\libraries\Ethernet\utility\w5100.cpp: In static member
function 'static uint16_t W5100Class::read(uint16_t, uint8_t*, uint16_t)':

D:\arduino-1.0.5\libraries\Ethernet\utility\w5100.cpp:172: error: 'SPI' was
not declared in this scope

Dávám tam stejné ip i MAC jako jsou tam napsané...

Děkuji za odpověď
« Poslední změna: 04. 08. 2013, 22:25:38 od Petr Krčmář »


Pavouk106

  • *****
  • 2 394
    • Zobrazit profil
    • Můj blog
    • E-mail
Re:Arduino - problém s programem
« Odpověď #1 kdy: 04. 08. 2013, 20:06:32 »
Zkus Arduino IDE 1.0.4 (aneb - stáhni si starší verzi programu z arduino.cc). Teď jsem chtěl akorát taky přejít na 1.0.5 a hlásilo mi to taky haldu chyb u programu, kterej jsem v pohodě zkompiloval na 1.0.4. Dál tedy jedu na starý verzi, dokud si nenajdu čas řešit problém s tou novou...

Možná to tím nebude, ale zkusit to můžeš.

Re:Arduino - problém s programem
« Odpověď #2 kdy: 04. 08. 2013, 21:08:34 »
Zkus Arduino IDE 1.0.4 (aneb - stáhni si starší verzi programu z arduino.cc). Teď jsem chtěl akorát taky přejít na 1.0.5 a hlásilo mi to taky haldu chyb u programu, kterej jsem v pohodě zkompiloval na 1.0.4. Dál tedy jedu na starý verzi, dokud si nenajdu čas řešit problém s tou novou...

Možná to tím nebude, ale zkusit to můžeš.

Tak jsem zkusil stáhnout 1.0.4 a pořád stejné :-(

Vojta

Re:Arduino - problém s programem
« Odpověď #3 kdy: 04. 08. 2013, 21:37:54 »
Zkus Arduino IDE 1.0.4 (aneb - stáhni si starší verzi programu z arduino.cc). Teď jsem chtěl akorát taky přejít na 1.0.5 a hlásilo mi to taky haldu chyb u programu, kterej jsem v pohodě zkompiloval na 1.0.4. Dál tedy jedu na starý verzi, dokud si nenajdu čas řešit problém s tou novou...

Možná to tím nebude, ale zkusit to můžeš.

Tak jsem zkusil stáhnout 1.0.4 a pořád stejné :-(

Zkus v 022, pri prechodu na 1.0 byly nejake zmeny v knihovnach a musely se rucne upravovat.

http://arduino.cc/en/Main/ReleaseNotes

Re:Arduino - problém s programem
« Odpověď #4 kdy: 04. 08. 2013, 21:44:50 »
Zkusil jsem 022 a zase chyba:

In file included from D:\arduino-0022\libraries\Ethernet\Client.cpp:1:
D:\arduino-0022\libraries\Ethernet\utility/w5100.h:14:17: error: SPI.h: No such file or directory

As of Arduino 0019, the Ethernet library depends on the SPI library.
You appear to be using it or another library that depends on the SPI library.


Vojta

Re:Arduino: nahrání prvního programu
« Odpověď #5 kdy: 04. 08. 2013, 22:32:58 »
Pridej SPI.h

#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 0, 88 };
void setup()
{
  Ethernet.begin(mac, ip);
}
void loop ()
{
  ;
}

Re:Arduino: nahrání prvního programu
« Odpověď #6 kdy: 04. 08. 2013, 22:58:26 »
Děkuji už to funguje, ještě dotaz ping test funguje jenom když dám ip adresu 10.0.0.X, jiný nefungují - napíše časový limit vypršel... Jak je to možný ?

Re:Arduino: nahrání prvního programu
« Odpověď #7 kdy: 05. 08. 2013, 02:51:34 »
Děkuji už to funguje, ještě dotaz ping test funguje jenom když dám ip adresu 10.0.0.X, jiný nefungují - napíše časový limit vypršel... Jak je to možný ?
Jakou IP ma nastavene Arduino? Ma Arduino nastavenou branu?
"Kdo v zájmu bezpečí obětuje část své svobody, v konečném důsledku přijde o svobodu i svou bezpečnost."

Re:Arduino: nahrání prvního programu
« Odpověď #8 kdy: 05. 08. 2013, 12:25:20 »
Tak podle článku  http://arduino8.webnode.cz/news/lekce-15-arduino-jako-web-server/

Musí být dána ip arduina podle ip routeru, jenom změnit poslední číslo. IP mého routeru je 10.0.0.xxx, takže mi bude fungovat jenom 10.0.0.xxx...

Pavouk106

  • *****
  • 2 394
    • Zobrazit profil
    • Můj blog
    • E-mail
Re:Arduino: nahrání prvního programu
« Odpověď #9 kdy: 05. 08. 2013, 15:27:13 »
S tím pingem na jinou IP adresu - to z principu fungovat nemůže.

Tvoje podsíť je 10.0.0.0/24 (tedy máš IP adresy 10.0.0.xxx). Pokud bys na Arduinu chtěl mít IP například 192.168.1.xxx, musel bys buď změnit IP celý podsítě (což je zbytečná blbost kvůli tomuhle, akorát by se něco podělalo...) nebo dodělat route (cestu), která by ty dvě podsítě "spojila" (tzn. počítače i další zařízení by o sobě navzájem věděly, věděly by, jak se navzájem najít).

Nejspíš o tom moc vědět nebudeš a ten router (od O2) bych radši nijak nenastavoval = jeď na Arduinu na IP 10.0.0.xxx

Nenastavuj mu 10.0.0.138, to bejvá (u O2) adresa routeru!

Re:Arduino: nahrání prvního programu
« Odpověď #10 kdy: 06. 08. 2013, 14:01:35 »
Všechno funguje bezvadně. Chci se zeptat, když chci udělat z arduina clienta abych se mohl na něj připojit odkud chci, jak se to dělá ? Je to zpoplatněné ? Abych se na něj připojil, tak bych chtěl mít nějakou normální adresu: www.XXXX.xx Jde to nějak udělat ? Když tak mi prosím pošlete nějaký linky kde bych se o tom mohl dozvědět více děkuji moc.

Pavouk106

  • *****
  • 2 394
    • Zobrazit profil
    • Můj blog
    • E-mail
Re:Arduino: nahrání prvního programu
« Odpověď #11 kdy: 06. 08. 2013, 14:27:40 »
Nejspíš nemysíš klienta, ale server. Klient přijímá data, server je vydává. Ty jsi klient, když se připojuješ k Arduinu jako serveru, abys zjistil například teplotu na čidle.

Potřebuješ na to mít veřejnou IP adresu, na tu se musíš poptat u svýho poskytovatele. Potom bys musel na svym routeru nastavit port forwarding na IP adresu toho Arduina.

Veřejnou IP adresu víceméně pravděpodobně máš (O2), otázka je, jak často a jestli vůbec Ti jí poskytovatel mění. Kamarád má net od O2 a má stále jednu IP adresu už dlouhou dobu. Měnili mu jí snad jen jednou a to s výměnou ADSL -> VDSL.

Nemusíš mít adresu ve stylu www.xyz.cz (doménu), to není nutností, dá se přistupovat přímo na veřejnou IP adresu.

Pokud bys ale chtěl adresu typu www.xyz.cz (doménu), dá se zařídit u registrátora. Jsou to firmy, který často nabízí i servery a hostingy. Já osobně mám doménu u forpsi.cz, existuje jich ale halda, stačí si vybrat - CZ doména stojí většinou kolem 200,- na rok. Ale jako první stále potřebuješ veřejnou IP adresu.

Lze taky využít služeb například no-ip.org, kde si můžeš nechat udělat doménu stylu xyz.no-ip.org zdarma. Nevýhoda je ta, že pak nemáš vlastní doménu, ale jen subdoménu (rozdíl mezi xyz.cz a xyz.no-ip.org). Opět potřebuješ nejdřív veřejnou IP.

Re:Arduino: nahrání prvního programu
« Odpověď #12 kdy: 06. 08. 2013, 16:18:02 »
Děkuji moc tak jsem si u o2 zjistil, že mám veřejnou, ale ne pevnou ip budu tedy muset platit ještě 120kč... Teď jenom k programu udělal jsem si podle http://arduino8.webnode.cz/news/lekce-15-arduino-jako-web-server/ ty 2 diody na stránce... Kdybych měl už pevnou IP a chtěl bych se připojovat na arduino pomocí IP, tak co ještě musím udělat ? Jenom ten port forwarding ? Program nijak měnit nemusím ? Děkuji moc a omluvám se že mám takto deb.lní dotazy.

Pavouk106

  • *****
  • 2 394
    • Zobrazit profil
    • Můj blog
    • E-mail
Re:Arduino: nahrání prvního programu
« Odpověď #13 kdy: 06. 08. 2013, 17:26:58 »
Nemáš debilní dotazy, jen to prostě neznáš, proto se ptáš... :-)

Pokud si podle nějakýho návodu udělal na Arduinu něco (nestudoval jsem odkaz) a pak jsi do prohlížeče napsal IP adresu Arduina (třeba 10.0.0.200), co se stane? Objeví se Ti to, co jsi chtěl? Pokud jo, tak pokračujem... :-)

Pokud bys na routeru udělal port forwarding z portu 80 (TCP) na vnějším rozhraní (veřejný IP) na port 80 na IP Arduina (např. 10.0.0.200), tak kdykoliv budeš mimo vlastní síť, stačí naťukat do prohlížeče svojí veřejnou IP a vidíš to samý co doma. Doma (v domácí síti) ale dál musíš používat vnitřní IP adresu. Nepraktický, ale funkční. Nepotřebuješ k tomu mít (a platit) doménu! Pokud bys chtěl tu zdarma, tak:

Ten web no-ip.org (kterej směruje stejně na noip.com) nabízí DynDNS službu = na PC doma Ti běží prográmek (ideálně non-stop), kterej zjišťuje Tvojí veřejnou IP a kdyby se změnila, tak zařídí změnu na noip.com. To kvůli tomu, aby pak ze stránky xyz.noip.com se vždy dalo dostat na Tvoje Arduino, nehledě na to, jaká je zrovna Tvoje veřejná IP.

Jestli Ti stojí 120Kč měsíčně za pevnou veřejnou IP kvůli Arduinu, to je otázka... Já osobně bych to jen kvůli nějakým experimentům nedělal, záleží na Tvym uvážení a Tvym využití.

Shrnutí: Musíš udělat jen port forwarding, na kódu bys nic měnit neměl. Za pevnou veřejnou bych neplatil, dokud bych si enbyl jistej tím, že jí 100% potřebuju.

Pár dotazů:
Začínáš s Arduinem?
Co má Tvůj projekt dělat?
Jak rozumíš tomu, co píšu?

Re:Arduino: nahrání prvního programu
« Odpověď #14 kdy: 06. 08. 2013, 18:15:16 »
Děkuji :-)
1. Arduinem se zabývám asi 4 měsíce, ale zatím jsem dělal jen základní věci - blikání diody, čtení hodnoty z analogu na serial monitoru...
2. Mám solární elektrárnu, kterou bych právě chtěl měřit na dálku (teplotu panelu, proudy a napětí), protože se jezdím koukat jednou za týden na mé panely.
3. Rozumím ti výborně sice si to musím víckrát přečíst něž mi to dojde, ale pochopím to :-)

Ještě dotaz, můžu pomocí arduina mít takto udělané stránky zvládne to ? http://fv-marsov.humlnet.cz/ nebo nějak podobně graficky ?

A ještě jeden, pokouším se na serial monitoru vyčíst hodnotu ze senzoru co měří proud (acs712) 20A+- 100mV/A Je někde rovnice jak udělat aby mi to fungovalo dobře ? Pokouším se to dělat podle této stránky, ale i když mám proud 0A, tak mi to píše -5.60

http://www.lucadentella.it/en/2011/11/29/sensore-di-corrente-con-arduino/

Dík