Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: hoonza123 04. 08. 2013, 14:46:53
-
Dobrý den, když chci nahrát první program z článku Arduino: webový server i klient do ruky (http://www.root.cz/clanky/arduino-webovy-server-i-klient-do-ruky/), abych zkusil pingnout, tak mi to vypíše:
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ěď
-
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š.
-
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 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
-
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.
-
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 ()
{
;
}
-
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ý ?
-
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?
-
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...
-
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!
-
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.
-
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.
-
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.
-
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?
-
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
-
Začnu odzadu.
Se senzorem Ti neporadím, nikdy jsem o něm neslyšel ani nečetl. Pokud angličtina není problém, tak jdi rovnou a forum.arduino.cc a zeptej se tam, jsou tam schopný lidi, poradí Ti.
Takovou stránku z Arduina podle mě nevyždímeš. Ale můžeš do Arduina udělat server (webovej nebo třeba SNMP), hned vedle Arduina píchnout třeba Raspberry Pi (protože málo žere, málo topí a nestojí majlant; pokud ne RPi, tak prostě nějakej počítač), který si vyžádá informace z Arduina po ethernetu a následně je zpracuje a vyflusne hotovou grafickou stránku.
Arduino by tak mělo za úkol měřit, připravit info k "odevzdání" a na vyžádání po síti jej předat. Ideální je na to SNMP, je na to dělaný. Ale lze použít i HTTP requesty. Záleží, jak to bude na ...
Raspberry Pi by mělo požádat jednou za čas (5 minut?) Arduino o informace, ukládat si je někam a z nich pak tvořit výstup, kterej uvidí uživatel (třeba právě prostřednictvím webu). Záleží právě na tom, jak budeš chtít informace na Raspberry Pi sbírat. Můžeš pomocí HTTP requestů nebo pomocí SNMP nebo i jinak (telnet, po seriový lince "skrz USB", ...).
Port forwarding bys pak dělal na IP adresu RPi.
-
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 ?
Záleží na tom, jaká verze to je. Existují verze, které mají SD kartu, na kterou se statický obsah (obrázky, css apod.) nahrají a arduino je zvládne servírovat. S nějakými složitějšími věcmi jako grafy apod. ale nepočítej, to už chce minimálně Raspberry.
-
No tak nejde mi o to aby to bylo graficky takhle, raspberi kupovat nechci protože by mi to už neutáhly panely. Stačí mi jenom když to bude ty hodnoty vypisovat pod sebe. Celkově bude 6 čidel na analogu. To je vše
-
No tak nejde mi o to aby to bylo graficky takhle, raspberi kupovat nechci protože by mi to už neutáhly panely. Stačí mi jenom když to bude ty hodnoty vypisovat pod sebe. Celkově bude 6 čidel na analogu. To je vše
To není problém.
-
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
Na to cidlo google vyhodi radu odpovedi, to by nemel byt problem, zadej: acs712 arduino
Grafy se daji docela dobre generovat pomoci:
https://developers.google.com/chart/image/docs/chart_wizard
napr:
http://chart.googleapis.com/chart?chxr=0,0,24|1,-30,40&chxs=0,676767,11.5,0,lt,676767&chxt=x,y&chs=600x500&cht=lxy&chco=3072F3,FFFF00,FF9900,E0E0E0,E0E0E0&chds=0,24,-30,40,0,24,-30,40,0,24,-30,40,0,24,-30,40,0,24,-30,40&chd=t:-1|27.9,28.7,27.9,24.7,28.2,33.7,33.8,26.6,31.2,34.3,26.6,29.5,26.9,35.7,33.6,28.2,34.7,30.7,29.0,29.8,28.6,29.4,27.9,28.70|-1|24.8,24.7,24.6,24.5,24.4,24.3,24.2,24.2,25.1,24.3,23.4,24.4,23.4,24.0,0.0,0.0,24.5,24.1,2.2,2.2,2.3,0.0,25.2,25.00|-1|14.5,14.0,13.4,13.2,12.9,12.7,12.6,13.3,18.3,13.8,13.6,14.5,12.4,24.8,17.0,16.4,16.0,12.7,34.3,33.5,30.7,20.3,14.9,14.20|-1|0,0,0,0,0,0,0,0,0,0|21,21|-20,30&chdl=Modry|Zluty|Venku&chdlp=b&chls=1|1|1|1|1&chma=0,0,5,20|0,5&chtt=Teploty
coz arduino nema az tak problem krmit.
Napriklad:
http://gsiot-sn8x-txkt.try.yaler.net/
blbnou mi cidla a radiovy prenos, rusi se to s PWM pro podsvetleni 7 segmentovek, nemel jsem cas to resit, proto nesmysle teploty. V soucasne dobe funguje jako internetovy cas k posteli, takze ta webova stranka moc neslape.
https://dl.dropboxusercontent.com/u/24710673/yaler_pokus_046.zip
https://dl.dropboxusercontent.com/u/24710673/transmiter_06/transmiter_06.ino
-
Proč to děláš Arduinem?
Kup si malinu (raspberry) a máš 3/4 problémů vyřešených dík operačnímu systému!
Dělal jsem přesně to samé.
Malina si vyčte data ze střídače (rozebere jeho webovou stránku), přes sériovou linku si protokolem modbus vytahá data z analyzátoru sítě a pomocí 1wire si bere data z osvitového senzoru, který jsem udělal z brouka na monitoring baterie. Jelikož měří i teplotu, dá se snadno počítat polynom pro její kompenzaci.
Vše končí v rrdtool ...
Ani jsem si neužil céčka, komunikaci se střídačem (kostal) je na SourceForge v pythonu, pro modbus jsem si upravil knihovnu v perlu a 1 wire má podporu v kernelu.
Cron to celé co 5 minut spouští a bylo to hotové za 3 dny po večerech.
Pokud se chceš vydat touto cestou, mohu pomoci. (i když mne zdejší linuxoví guru jistě pomluví, jak to mám zbastlené ...)
-
(i když mne zdejší linuxoví guru jistě pomluví, jak to mám zbastlené ...)
Proč? Proč vymýšlet kolo, když všechny komponenty jsou už hotové? Nevýhoda RPi je jenom ve vyšší spotřebě a alespoň teoreticky menší robustnosti kvůli složitějšímu SW vybavení.
-
Dělal jsem TCPIP stack jak pro AVR, tak pro PIC32.
Na stole chodil.
Běda, když to mělo běžet v provozu 24 hodin denně ...
Běda, když jsem potřeboval něco přidat či modifikovat...
Stálo to mnoho času a energie. A čas je to, co nemám.
Proto "blikám ledkou" ne pomocí 2 tranzistorů, ale malinou s 500MB operačním systémem ...
Trochu mne to jako technikovi vadí, ale holt pokrok nezastavíš ...
Derivát debianu na malině mi sice moc nevoní (jsem masochista na Slackware s terminálem), ale balíčky jsou dík komunitě odladěné a "apt-get install" se v začátcích, kdy člověk neví kde dřív začít sakra hodí.
-
Tak jsem to nakonec vyřešil... na jednou solárním fóru zdarma spravuje pro ostatní pomocí arduina webové stránky (nemusím mít pevnou ip). Takže paráda, ale teďka mám problém. Přišlo mi dnes arduino mini s usb>ttl převodníkem. Jak nainsteluji software abych do něj mohl nahrávat ? Stáhl jsem z arduina nějaký .inf soubor co se má přidat a arduino mini by mělo chodit. Bohužel pořád nefunguje nevíte co s tím ? Mám win 7 děkuji.
-
Tak jsem to nakonec vyřešil... na jednou solárním fóru zdarma spravuje pro ostatní pomocí arduina webové stránky (nemusím mít pevnou ip). Takže paráda, ale teďka mám problém. Přišlo mi dnes arduino mini s usb>ttl převodníkem. Jak nainsteluji software abych do něj mohl nahrávat ? Stáhl jsem z arduina nějaký .inf soubor co se má přidat a arduino mini by mělo chodit. Bohužel pořád nefunguje nevíte co s tím ? Mám win 7 děkuji.
Potřebuješ ovladač k tomu převodníku, s Arduinem to nesouvisí, to komunikuje jenom pomocí sériáku. V těch převodnících bývá tohle: http://www.ftdichip.com/Products/ICs/FT232R.htm
-
Jo děkuji už to jde... Teďka další problém když dám upload, tak mi to nahrává a u konce mi to vyhodí error. Co s tím ? Koukal jsem na net a zkoušel jsem držet reset chvilku když uplouduju, ale nepomohlo to :-(
-
tak mi to nahrává a u konce mi to vyhodí error. Co s tím ?
Je potřeba nahodit řešení.
-
avrdude: stk500_getsync(): not in sync: resp=0x00
-
http://lmgtfy.com/?q=stk500_getsync()+not+in+sync+resp%3D0x00
Znamená to, že s Arduinem nekomunikuješ. Může to být tisíc různých věcí, od špatného zapojení, špatný driver, špatně nastavený port.