Ethernet WebServer (Duino MiniBoard + EthShield)
Ethernet WebServer (Duino MiniBoard + EthShield)
Az ArDunio-t tanulgatom, nézegetem.
A beépített Ethernet könyvtárat, hogyan lehetne működésre bírni? Talán a
Ardunio\hardware\libraries\Ethernet\utility\spi.h fájlt kellene konktretizálni?
Vagy mennie kéne alapból?
Az alapprogramot (az arduinoba beépített WebServer-t), ha felrakom az Ethernet modult nem hajlandó feltölteni a programot, csak ha a miniboard modul nélkül van.
A beépített Ethernet könyvtárat, hogyan lehetne működésre bírni? Talán a
Ardunio\hardware\libraries\Ethernet\utility\spi.h fájlt kellene konktretizálni?
Vagy mennie kéne alapból?
Az alapprogramot (az arduinoba beépített WebServer-t), ha felrakom az Ethernet modult nem hajlandó feltölteni a programot, csak ha a miniboard modul nélkül van.
MiniBoard nélkül feltöltöd. Kikapcs.
Ethernet Board rárak.
Örül:)
Mármint akkor, ha a 2 LED a beépítet csatlakozóban 0,5 sec periódusidővel villan 3-at...
Ezután inicializál a ENC modul a netre... Ha Routered van, akkor amiut érdemes meglesni: Auto connection (nálam full duplex), és 10 Mbit/sec. Néha szeretne 100-on kezdeni kommunikálni. Ez beállítási hibára utal vagy (nagyon ritkán) kábelhiba. A Collosion LED nem éghet/villoghat!
Ethernetből az ENC28J60-ashoz a letöltések közötti modul kell. remélem felraktam... Ha nem, este pótolom... A leírás (alkalmazási példák) most készül.
A pde fájl elején a IP cím beállítára vigyázz, azonos alhálózatra kell beállítani. Ha a Routered 192.168.1.254-en vagy akkor a 192.168.1.2....192.168.1.99 közé tedd be (a x.x.x.100 és az x.x.x.200 közt dinamikus címkiosztás van. Ezt a modul nem támogatja! És az ütközés elkerülése miatt érdemes ez alá rakni. 0 ill 255 végű nem lehet a cím!
Az ARDUINO 0012-es verziója csak a WizNet modult támogatja, az ENC28J60-asat direktben nem....
A kód feltöltése során esetlegesen szükség lehet a RESET kézzel megnyomására (főleg ha a ResetEnable jumper nincs felrakva..).
Ethernet Board rárak.
Örül:)
Mármint akkor, ha a 2 LED a beépítet csatlakozóban 0,5 sec periódusidővel villan 3-at...
Ezután inicializál a ENC modul a netre... Ha Routered van, akkor amiut érdemes meglesni: Auto connection (nálam full duplex), és 10 Mbit/sec. Néha szeretne 100-on kezdeni kommunikálni. Ez beállítási hibára utal vagy (nagyon ritkán) kábelhiba. A Collosion LED nem éghet/villoghat!
Ethernetből az ENC28J60-ashoz a letöltések közötti modul kell. remélem felraktam... Ha nem, este pótolom... A leírás (alkalmazási példák) most készül.
A pde fájl elején a IP cím beállítára vigyázz, azonos alhálózatra kell beállítani. Ha a Routered 192.168.1.254-en vagy akkor a 192.168.1.2....192.168.1.99 közé tedd be (a x.x.x.100 és az x.x.x.200 közt dinamikus címkiosztás van. Ezt a modul nem támogatja! És az ütközés elkerülése miatt érdemes ez alá rakni. 0 ill 255 végű nem lehet a cím!
Az ARDUINO 0012-es verziója csak a WizNet modult támogatja, az ENC28J60-asat direktben nem....
A kód feltöltése során esetlegesen szükség lehet a RESET kézzel megnyomására (főleg ha a ResetEnable jumper nincs felrakva..).
Minden OK
1.) Köszi, megy, megtaláltam a neten a kívánt modult, de azért töltsed föl a később jövőknek.
2.) Az IP cím kiosztás nagyon függ a router beállításaitól, tehát az 1-99 intervallum nem mindig jó (sok routeren pl.: 192.168.1.1 a router maga es rögtön a 2-100-ig van a címkiosztás, nálam meg 1,2,3-on mind router van es 100-120-ig oszt a DHCP)!. Az valóban igaz, hogy nem jó oda tenni statikus címet, ahol DHCP működik
.
És még egy kérdés: 1-wire eszközt lehet a d11-re rakni (alapból itt van az extboardon), ha fent van az EthSeild modul vagy más portot kell neki keresni (nagyon kezdő vagyok
)
2.) Az IP cím kiosztás nagyon függ a router beállításaitól, tehát az 1-99 intervallum nem mindig jó (sok routeren pl.: 192.168.1.1 a router maga es rögtön a 2-100-ig van a címkiosztás, nálam meg 1,2,3-on mind router van es 100-120-ig oszt a DHCP)!. Az valóban igaz, hogy nem jó oda tenni statikus címet, ahol DHCP működik
És még egy kérdés: 1-wire eszközt lehet a d11-re rakni (alapból itt van az extboardon), ha fent van az EthSeild modul vagy más portot kell neki keresni (nagyon kezdő vagyok
Szabad lábra tedd fel.
A D11-es foglalt. A SlaveIn van rajta...
Ami szabad:
D0, D1, D4-D9
Egy láb 2 féle funkciót nem szeret igazán:). Te sem tudsz egyidőben beszélni és enni is
... (legalábbis ezzel a hasonlattal szoktam élni)
Itt sem egyszerre teszed, hanem _egymás után_.
A legjobb, ha a funkciókat szétbontod....
Felraktam a File Cserebere alá a EthDuino.zip néven.
Tartalma:
etherShield_client (hőmérés adatbázisba)
etherShield_client1 (hőmérés adatbázisba)
etherShield_ping (ping)
etherShield_webserver (kapcsoló+hőmérő)
etherShield_web_switch (kapcsoló)
etherShield_web_temperature (hőmérő)
A D11-es foglalt. A SlaveIn van rajta...
Ami szabad:
D0, D1, D4-D9
Egy láb 2 féle funkciót nem szeret igazán:). Te sem tudsz egyidőben beszélni és enni is
Itt sem egyszerre teszed, hanem _egymás után_.
A legjobb, ha a funkciókat szétbontod....
Felraktam a File Cserebere alá a EthDuino.zip néven.
Tartalma:
etherShield_client (hőmérés adatbázisba)
etherShield_client1 (hőmérés adatbázisba)
etherShield_ping (ping)
etherShield_webserver (kapcsoló+hőmérő)
etherShield_web_switch (kapcsoló)
etherShield_web_temperature (hőmérő)
Forditási hiba
Sziasztok
Még nagyon kezdő vagyok. megrőbáltam a ethernet minta progit beforditani de ezt a hiba üzenetet kapom
c:/arduino-0013/hardware/tools/avr/bin/../lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/crtm168.o:(.init9+0x0): undefined reference to `main'
Couldn't determine program size: C:\arduino-0013\hardware/tools/avr/bin/avr-size: 'C:\Users\Papa\AppData\Local\Temp\build4671.tmp\etherShield_webserver.hex': No such file
Még nagyon kezdő vagyok. megrőbáltam a ethernet minta progit beforditani de ezt a hiba üzenetet kapom
c:/arduino-0013/hardware/tools/avr/bin/../lib/gcc/avr/4.3.0/../../../../avr/lib/avr5/crtm168.o:(.init9+0x0): undefined reference to `main'
Couldn't determine program size: C:\arduino-0013\hardware/tools/avr/bin/avr-size: 'C:\Users\Papa\AppData\Local\Temp\build4671.tmp\etherShield_webserver.hex': No such file
Webszerver "titkosítás"
Sziasztok!
Játszadoztam tegnap az AVRDuino+Eth. Shield eszközökkel és feltöltöttem a hozzá kapott hőmérős projektet. Regisztráltam magam a DynDNS szolgáltatásnál így elérhető lett a kis eszközöm a publikus WEB-ről is.
Ezzel kapcsolatban merült fel bennem egy kérdés, hogy hogyan lehetne biztonságosabbá tenni az eszközt, értem ez alatt hogy csak jelszó ismeretében lehessen látni az oldalt. Mint pl. ahogyan az a routereknél működik.
Olvasgattam a fórumokat de ilyen témában nem találtam hozzászólást.
Előre is köszi a válaszokat.
Játszadoztam tegnap az AVRDuino+Eth. Shield eszközökkel és feltöltöttem a hozzá kapott hőmérős projektet. Regisztráltam magam a DynDNS szolgáltatásnál így elérhető lett a kis eszközöm a publikus WEB-ről is.
Ezzel kapcsolatban merült fel bennem egy kérdés, hogy hogyan lehetne biztonságosabbá tenni az eszközt, értem ez alatt hogy csak jelszó ismeretében lehessen látni az oldalt. Mint pl. ahogyan az a routereknél működik.
Olvasgattam a fórumokat de ilyen témában nem találtam hozzászólást.
Előre is köszi a válaszokat.
Udv néktek,
rövid elmerülésem az Ethshiled lelkivilágában kissé kiábrándított... a TG-s 3.x IP stack az gyakorlatilag szinte webszerverre van optimalizálva, egy telnet szervert megírni vele majdnem lehetetlen. Az UDP küldés elég dzsörzé, a vevő pufferben kapott udp csomagnak irkálja át a fejlécét és ír bele a tartalmába, a válaszban a forrásportot nem írja át, sajnálták azt a két sort amit bele kellett volna rakni hogy az initnél beállított portszámról válaszoljon. TEchnikailag úgy néz ki hogy a géped küld pl. udp 45000-rol a shield pl. 200-asara es a valasz a shiledbol a 45000-rol jon a geped 45000-resere. Mivel udp-ben nincs connection, ez nem sert szabvanyt, de ...
A nagyobbik banat, hogy az udp kuldo fv-bol csak egy van, ami csak valaszt kepes kuldeni, es nincs is kiexportalva az ARduino library-ba, tehat *nem tudsz udp csomagot kuldeni* !
A C forrasa az eredeti tuxgraphics.org-os ethernet + tcpip libnek nincs verziószámmal ellátva, így csak tippelni lehet h a 3.x-bol melyik verzio van becsomagolva....
A jo hir, hogy van az eredeti libnek 2010.02-es kiadasa 4.x-es verzioszammal ami bar nem kompatibilis a 3.x-szel de van benne altalanos celu udp es tcp kliens, dns resolver .... A rossz hir hogy nincs hozza Arduino lib.
rövid elmerülésem az Ethshiled lelkivilágában kissé kiábrándított... a TG-s 3.x IP stack az gyakorlatilag szinte webszerverre van optimalizálva, egy telnet szervert megírni vele majdnem lehetetlen. Az UDP küldés elég dzsörzé, a vevő pufferben kapott udp csomagnak irkálja át a fejlécét és ír bele a tartalmába, a válaszban a forrásportot nem írja át, sajnálták azt a két sort amit bele kellett volna rakni hogy az initnél beállított portszámról válaszoljon. TEchnikailag úgy néz ki hogy a géped küld pl. udp 45000-rol a shield pl. 200-asara es a valasz a shiledbol a 45000-rol jon a geped 45000-resere. Mivel udp-ben nincs connection, ez nem sert szabvanyt, de ...
A nagyobbik banat, hogy az udp kuldo fv-bol csak egy van, ami csak valaszt kepes kuldeni, es nincs is kiexportalva az ARduino library-ba, tehat *nem tudsz udp csomagot kuldeni* !
A C forrasa az eredeti tuxgraphics.org-os ethernet + tcpip libnek nincs verziószámmal ellátva, így csak tippelni lehet h a 3.x-bol melyik verzio van becsomagolva....
A jo hir, hogy van az eredeti libnek 2010.02-es kiadasa 4.x-es verzioszammal ami bar nem kompatibilis a 3.x-szel de van benne altalanos celu udp es tcp kliens, dns resolver .... A rossz hir hogy nincs hozza Arduino lib.
Erre jó, hogy van Bascom forrás, így abban az UDP, TCP/IP, Ping és ARP készen van....

Eth kiegészítő:
http://blog.thiseldo.co.uk/?p=329
http://code.rancidbacon.com/LearningAbo ... noEthernet
Illetve a WizNetShieldet használom még, abban sokminden készen van....
Eth kiegészítő:
http://blog.thiseldo.co.uk/?p=329
http://code.rancidbacon.com/LearningAbo ... noEthernet
Illetve a WizNetShieldet használom még, abban sokminden készen van....
Az arduino lib-ben van arp es icmp, szep is - jo is. Egy kicsit hakkeltem az arduino illeszto kodot es mar van udp kuldes 
Ahogy a masodik linken irjak, a tcp nagy banat mert ha meg az mss-t le is tudod szoritani, a max datagram meretet mar nehez es ha tul sok adatot kapsz, akkor vege, valamit felulir a kodban... Remote code execution exploit, vagy uj bootloader?
Ahogy a masodik linken irjak, a tcp nagy banat mert ha meg az mss-t le is tudod szoritani, a max datagram meretet mar nehez es ha tul sok adatot kapsz, akkor vege, valamit felulir a kodban... Remote code execution exploit, vagy uj bootloader?
Trükk:
NE ATMega168, hanem 328ban használd és így az 1600 (1500)-as csomagméret kihasználható (kód felülírás nélkül!)
A SRAMban az M168ban kicsi a TCPIP csomagméret helye, és a SRAM egy részét felülírja (ahol a többi adat van). M328 esetén megúszható.
A programkódbana ENC28J60 következő csomagot 1:1-ben bemásolja a SRAMban. Így ha az beleírható, hogy csak a lefoglalt méretig tegye, akkor kivédted a felülírást. A csomag végét kiolvashatod az ENCből, csak az AVRbe ne másold be. Az exploitot így (is) ki tudod védeni (ekkor max csonkolt TCP csomagod lesz...
NE ATMega168, hanem 328ban használd és így az 1600 (1500)-as csomagméret kihasználható (kód felülírás nélkül!)
A SRAMban az M168ban kicsi a TCPIP csomagméret helye, és a SRAM egy részét felülírja (ahol a többi adat van). M328 esetén megúszható.
A programkódbana ENC28J60 következő csomagot 1:1-ben bemásolja a SRAMban. Így ha az beleírható, hogy csak a lefoglalt méretig tegye, akkor kivédted a felülírást. A csomag végét kiolvashatod az ENCből, csak az AVRbe ne másold be. Az exploitot így (is) ki tudod védeni (ekkor max csonkolt TCP csomagod lesz...
