szakdoga téma + későbbi segítség
szakdoga téma + későbbi segítség
Sziasztok!
Mérnök informatikus hallgató vagyok, szakdoga előtt állok, Arduinoban gondolkodom DE nincs témám.
Ez év November 30-ig le kellene adnom. Ismereteim elég hiányosak ezért fordultam hozzátok, remélem tudtok segíteni.
Remélem együtt kitalálunk valami szakdogának való témát. Bármi érdekel, ha 3-4 hónap alatt kivitelezhető!
Köszönettel
István
Mérnök informatikus hallgató vagyok, szakdoga előtt állok, Arduinoban gondolkodom DE nincs témám.
Ez év November 30-ig le kellene adnom. Ismereteim elég hiányosak ezért fordultam hozzátok, remélem tudtok segíteni.
Remélem együtt kitalálunk valami szakdogának való témát. Bármi érdekel, ha 3-4 hónap alatt kivitelezhető!
Köszönettel
István
Re: szakdoga téma + későbbi segítség
Egy javaslat:
- háztartási eszközök automatizálása és internethez kapcsolása Arduino segítségével
Kiválasztasz mondjuk 3 lámpát (inkább LED-et, hogy ne csapjon agyon a villany szerelésnél).
A neten keresztül beállíthatod, hogy a lámpák hogyan viselkedjenek.
- mondjuk este 10-től reggel 8-ig világítson
- vagy éjszaka és szürkületkor világítson (fényérzékelés)
- vagy fotocellás bekapcsolás, érzékelés után 10 percig ég
Mindezt interneten keresztül beállíthatod.
Az elektronikus megvalósítás nem lesz nehéz (fényérzékeny ellenállás + infraled).
A szoftver kicsit nehezebb lesz:
- EEPROM használat a beállítások mentésére (könnyű)
- mini HTML webkiszolgáló elkészítése (nehéz)
- a különféle esetek (beállított időzítés + fényérzékelés + fotocella) lekezelése (közepes).
De: látványos, el lehet adni szakdolgozatnak.
Én ha ma nekifogok 1 hét múlva kész lesz, de mivel kezdő vagy, ezért a 3-4 hónap reálisnak tűnik és a konzulens sem fog elhajtani, hogy túl egyszerű az egész.
230-at relével csak papíron kapcsoljál.
- háztartási eszközök automatizálása és internethez kapcsolása Arduino segítségével
Kiválasztasz mondjuk 3 lámpát (inkább LED-et, hogy ne csapjon agyon a villany szerelésnél).
A neten keresztül beállíthatod, hogy a lámpák hogyan viselkedjenek.
- mondjuk este 10-től reggel 8-ig világítson
- vagy éjszaka és szürkületkor világítson (fényérzékelés)
- vagy fotocellás bekapcsolás, érzékelés után 10 percig ég
Mindezt interneten keresztül beállíthatod.
Az elektronikus megvalósítás nem lesz nehéz (fényérzékeny ellenállás + infraled).
A szoftver kicsit nehezebb lesz:
- EEPROM használat a beállítások mentésére (könnyű)
- mini HTML webkiszolgáló elkészítése (nehéz)
- a különféle esetek (beállított időzítés + fényérzékelés + fotocella) lekezelése (közepes).
De: látványos, el lehet adni szakdolgozatnak.
Én ha ma nekifogok 1 hét múlva kész lesz, de mivel kezdő vagy, ezért a 3-4 hónap reálisnak tűnik és a konzulens sem fog elhajtani, hogy túl egyszerű az egész.
230-at relével csak papíron kapcsoljál.
Re: szakdoga téma + későbbi segítség
A netes rész az most slágertéma. És a bluetooth, WiFi is.
De a szakdolgozatot sokan azzal rontják el, hogy a WiFi stack/Bluetooth stack amit leírogatnak (erre van a 3256 db könyv/cikk és a szabványok/RFC-k). A megvalósítást add el. A saját ötletet.
Tipp: legyen egy blog mögötte, ahol a _folyamatot_ publikálod. Ezt építettem, ezt a kódot használom, ez a trükk benne. Ilyen megoldást használ más, ezért jó/nem jó.
Ezzel 2..5 legyet ütsz egy csapásra:
1, készül a szakdolgozat váza és készen van egy jegyzeted hozzá,
2, megtanulsz fogalmazni/írni (nekem 4 év kellett, mire (normális) anyagokat tudtam összehozni (volt eleje-közepe-vége és mondanivalója is)
3, a publikálás után lehet belőle egy 1-2-3 oldala _szakcikk_ szakmai folyóiratban
4, van publikációd! Sőt, beküldhető 1-2 helyre poszterként vagy akár előadásként (TDK, stb.)
5, a munkaerőpiacon igen jól mutat az önéletrajzban ha van 1245 db infomérnök és ugyanennyi álláspályázat. de egy párnak van _szakmai_ előélete. És a referenciád _publikus_. Na kit vesznek fel munkára?:)
Tipp: tanuld meg a szoftveralkalmazás mellett a _hardware_ tervezést. mit teszünk miért és miért nem, A következő 20 éven elfogynak erről a területről az emberek! Mindenki a készt akarja alkalmazni...
Ami jó _és_ piacképes (ha már lehet, akkor legyen zsebpénz a diplomamunka):
1, Netes elérés, PWM kimenet és szobai LED világítás vezérlés, órával.
Ébresztő beállítható óra/perc alapon. Ébresztés _előtt_ a LED-eket elkezdi felkapcsolni, mintha napfelkelte lenne. Kipihenten érkezel az ébrenlétbe. Erre pszichológia/humánbiológia tök jól ráhúzható (Határterületi fejlesztés: senki sem ért rajtad kívül hozzá!).
Ébresztés lehet NET-rádióval (Sima MP3 dekóderchip), mintaalkalmazás
Tudjon Infravevőt kezelni: távirányítóval is beállítható.
Infraadót is kezelhet: akkor bekapcsolja ébresztésnek a TV-t.
Ha van rajta relé, akkor a 230V-os kávéfőzőt is beindíthatja ébredés előtt 6 perccel (forró kávé vár). Azt hogy behozza: azt asszonyban hívják
. (Az nem fejlesztés, hanem állapot.)
De ez _modulárisan_ továbbgondolható. Így meg van a termék váza + a koncepcióterv is.
Idő/feladatigény:
Arduino+net: instructables/arduino oldalon van minta (kezdőnek a _megértés_ nehéz, az utánépítéssel nem lesz diplomatéma. De működik, alapnak jó)
LED: PWM: könnyű, és ötletes
IR vevő: alacsony/könnyű szint, angol/magyar full dokumentáció;a 60 nap alatt Arduino tanfolyamban most jön (tényleg : feliratkoztál rá: http://www.tavir.hu/60nap)
IR adó: alacsony/könnyű szint, angol full dokumentáció; mint előbbi pont
ÓraIC: közepes szint; készen van, magyarázattal a 60 napos tanfolyamban (I2C, DS1307-es RTC modul)
Relékimenet: tranzisztorkapcsolt , egyszerű: Egyszerű elektronika a főoldalon a Könyvek közt.
De a szakdolgozatot sokan azzal rontják el, hogy a WiFi stack/Bluetooth stack amit leírogatnak (erre van a 3256 db könyv/cikk és a szabványok/RFC-k). A megvalósítást add el. A saját ötletet.
Tipp: legyen egy blog mögötte, ahol a _folyamatot_ publikálod. Ezt építettem, ezt a kódot használom, ez a trükk benne. Ilyen megoldást használ más, ezért jó/nem jó.
Ezzel 2..5 legyet ütsz egy csapásra:
1, készül a szakdolgozat váza és készen van egy jegyzeted hozzá,
2, megtanulsz fogalmazni/írni (nekem 4 év kellett, mire (normális) anyagokat tudtam összehozni (volt eleje-közepe-vége és mondanivalója is)
3, a publikálás után lehet belőle egy 1-2-3 oldala _szakcikk_ szakmai folyóiratban
4, van publikációd! Sőt, beküldhető 1-2 helyre poszterként vagy akár előadásként (TDK, stb.)
5, a munkaerőpiacon igen jól mutat az önéletrajzban ha van 1245 db infomérnök és ugyanennyi álláspályázat. de egy párnak van _szakmai_ előélete. És a referenciád _publikus_. Na kit vesznek fel munkára?:)
Tipp: tanuld meg a szoftveralkalmazás mellett a _hardware_ tervezést. mit teszünk miért és miért nem, A következő 20 éven elfogynak erről a területről az emberek! Mindenki a készt akarja alkalmazni...
Ami jó _és_ piacképes (ha már lehet, akkor legyen zsebpénz a diplomamunka):
1, Netes elérés, PWM kimenet és szobai LED világítás vezérlés, órával.
Ébresztő beállítható óra/perc alapon. Ébresztés _előtt_ a LED-eket elkezdi felkapcsolni, mintha napfelkelte lenne. Kipihenten érkezel az ébrenlétbe. Erre pszichológia/humánbiológia tök jól ráhúzható (Határterületi fejlesztés: senki sem ért rajtad kívül hozzá!).
Ébresztés lehet NET-rádióval (Sima MP3 dekóderchip), mintaalkalmazás
Tudjon Infravevőt kezelni: távirányítóval is beállítható.
Infraadót is kezelhet: akkor bekapcsolja ébresztésnek a TV-t.
Ha van rajta relé, akkor a 230V-os kávéfőzőt is beindíthatja ébredés előtt 6 perccel (forró kávé vár). Azt hogy behozza: azt asszonyban hívják
De ez _modulárisan_ továbbgondolható. Így meg van a termék váza + a koncepcióterv is.
Idő/feladatigény:
Arduino+net: instructables/arduino oldalon van minta (kezdőnek a _megértés_ nehéz, az utánépítéssel nem lesz diplomatéma. De működik, alapnak jó)
LED: PWM: könnyű, és ötletes
IR vevő: alacsony/könnyű szint, angol/magyar full dokumentáció;a 60 nap alatt Arduino tanfolyamban most jön (tényleg : feliratkoztál rá: http://www.tavir.hu/60nap)
IR adó: alacsony/könnyű szint, angol full dokumentáció; mint előbbi pont
ÓraIC: közepes szint; készen van, magyarázattal a 60 napos tanfolyamban (I2C, DS1307-es RTC modul)
Relékimenet: tranzisztorkapcsolt , egyszerű: Egyszerű elektronika a főoldalon a Könyvek közt.
Re: szakdoga téma + későbbi segítség
UPC routerem van, de nem tudok portot nyitni! -.-
Valamelyikőtök tudna skype-on segítíteni?
neoisti néven vagyok fent!
Valamelyikőtök tudna skype-on segítíteni?
neoisti néven vagyok fent!
Re: szakdoga téma + későbbi segítség
Típus? Azonosító? Az UPC az maximum a szolgáltató....
Re: szakdoga téma + későbbi segítség
Sikerült azóta, default port 0-0 volt, megadni 8081-et akartam, de így kellett 8081-8081, azóta működik!
Róbert neked írtam párszor skype-on, rég nem láttalak fent!
Pedig kellene a segítséged!
Róbert neked írtam párszor skype-on, rég nem láttalak fent!
Pedig kellene a segítséged!
Re: szakdoga téma + későbbi segítség
Szombat este / vasárnap este ált.vagyok....
Re: szakdoga téma + későbbi segítség
Kód: Egész kijelölése
#include <Ethernet.h>
#include <SPI.h>
#include <SD.h>
#include <Time.h>
#include <EthernetUdp.h>
// MAC address from Ethernet shield sticker under board
byte mac[] = { 0xDE, 0xAC, 0xCE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,0,17); // IP address, may need to change depending on network
EthernetServer server(80); // create a server at port 80
IPAddress timeServer(132, 163, 4, 101);
const int timeZone = 2;
EthernetUDP Udp;
unsigned int localPort = 8888;
File webFile;
String HTTP_req=""; // stores the HTTP request
String http="";
boolean vizsgal = true;
char c;
void setup()
{
Ethernet.begin(mac,ip); // initialize Ethernet device
delay(2000);
server.begin(); // start to listen for clients
Serial.begin(9600); // for diagnostics
pinMode(4,OUTPUT);
digitalWrite(4,HIGH);
pinMode(32,OUTPUT); // LED on pin 2
Serial.print("Initializing SD card...");
if (!SD.begin(4)) {
Serial.println(" failed!");
return;
}
Serial.println(" done.");
if (!SD.exists("index.htm")) {
Serial.println("HIBA - Nem talalom a fajlt!");
return; // can't find index file
}
Serial.println("SUCCESS - Found index.htm file.");
Udp.begin(localPort);
Serial.println("Varakozas synk");
setSyncProvider(getNtpTime);
}
time_t prevDisplay = 0;
void loop()
{
EthernetClient client = server.available(); // try to get client
if (client) { // got client?
while (client.connected()) {
if (client.available()) { // client data available to read
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Charset: utf-8");
client.println("Connection: close");
client.println();
webFile = SD.open("index.htm"); // open web page file
if (webFile) {
while(webFile.available()) {
client.write(webFile.read()); // send web page to client
// c= client.read(); // read 1 byte (character) from client
// // save the HTTP request 1 char at a time
// // last line of client request is blank and ends with \n
// // respond to client only after last line received
// HTTP_req+=c;
// Serial.println(HTTP_req);
char c=client.read();
HTTP_req+=c;
}
}
Serial.print(HTTP_req);
if(c=='\n'){
if(HTTP_req.indexOf("option=8")>0)
{
Serial.println("BENT VAGYOK ; ]") ;
digitalWrite(32,HIGH);
delay(10);
}
}
webFile.close();
}
//time();
} // end if (client.available())
}
delay(1); // give the web browser time to receive the data
client.stop(); // close thA lényeg az lenne, hogy csináltam egy weboldalt, amit rátoltam sd kártyára, el tudom érni, bejön ahogy kell.
A GET részig minden oké, Serial.print-el kiíratom a HTTPRequest-et, szépen látszik amire kíváncsi vagyok.
Tehát, ledet akarok kapcsolni, ha megkap egy adott "parancsot".
A feltétel részt amely a HTTP_req string-ben tárolt szövegből kikeresi az "option=8"-at, és ezáltal kapcsolna a relé, ami egy ledet zár közre, nem akar világítani, a relé meg se nyikkan, de rx || tx-re kötve működik.
Légyszíves, aki megtalálja a hibát, írja meg mert én már 2 órát *****-am vele. :/
Re: szakdoga téma + későbbi segítség
Az option=8 a legelején van a szövegnek?
Mert az indexOf eredménye ekkor 0, tehát a feltétel hamis. A BENT VAGYOK-ot kiírja?
Látatlanban elég nehéz bármit írni. Annyit vettem észre, hogy az indexOf-ot rosszul használod, de ettől még működhetne.
Van ténylegesen 32 lábad (atmega2560-as Arduino)?
Mert az indexOf eredménye ekkor 0, tehát a feltétel hamis. A BENT VAGYOK-ot kiírja?
Látatlanban elég nehéz bármit írni. Annyit vettem észre, hogy az indexOf-ot rosszul használod, de ettől még működhetne.
Van ténylegesen 32 lábad (atmega2560-as Arduino)?
Re: szakdoga téma + későbbi segítség
A "bent vagyok"-ot eddig 2 alkalommal írta ki.
Az if elágazást ide oda rakosgattam, nem tudom már mikor írta ki.
De a DigitalWrite(2,HIGH) utasítás nem valósult meg soha.
Pedig egy blokkban vannak egymás alatt.
A Serial.print(HTTP_req)-ről teszek fel délután képet.
A HTTP_req-ben egy több soros szöveg van.
Külföldi oldalakon is az indexOF-ot használták, de lehet igazad van. Közvetlen a HTTP_req+=c után kellene tennem az indexOf-os if elágazást.
Az if elágazást ide oda rakosgattam, nem tudom már mikor írta ki.
De a DigitalWrite(2,HIGH) utasítás nem valósult meg soha.
Pedig egy blokkban vannak egymás alatt.
A Serial.print(HTTP_req)-ről teszek fel délután képet.
A HTTP_req-ben egy több soros szöveg van.
Külföldi oldalakon is az indexOF-ot használták, de lehet igazad van. Közvetlen a HTTP_req+=c után kellene tennem az indexOf-os if elágazást.
Re: szakdoga téma + későbbi segítség
1. Az indexOf -1-gyel tér vissza, ha nincs benne.
2. Ez minek kell bele? Mi történne, ha kivennéd?
Kód: Egész kijelölése
if(HTTP_req.indexOf("option=8")>=0)Kód: Egész kijelölése
if(c=='\n'){Re: szakdoga téma + későbbi segítség
Kód: Egész kijelölése
char c;
while(webFile.available()) {
client.write(webFile.read()); // send web page to client
char c=client.read();
HTTP_req+=c;
}
if(c=='\n'){
}
Az informatikailag helyes válasz, hogy fogalmunk sincs róla, mert sosem adtunk neki értéket. Az avr-gcc kinullázza c-t induláskor, ezért valószínűsíthető, hogy ott 0-van, de más fordító alatt más is lehet.
( a belső és a külső c változó más változó! )
A helyes válasz: valamennyi van c változóban, AVR alatt valószínűsíthetően 0.
Re: szakdoga téma + későbbi segítség
indexOf-ot meg ha -1 el teszem egyenlővé akkor fordítva működik a feltétel, mint ahogy szeretném.
Tehát , ha nem teljesül a feltétel, akkor kapcsol be a led?
Ha nem lesz a GET által "option=8", azaz nem találja, akkor LED=ON!
Vagy én gondolkodom rosszul
Közben átnéztem a kódot amit beillesztettem, c változóból annyi van mint égen a csillag, lehet bekavar?!
Tehát , ha nem teljesül a feltétel, akkor kapcsol be a led?
Ha nem lesz a GET által "option=8", azaz nem találja, akkor LED=ON!
Vagy én gondolkodom rosszul
Közben átnéztem a kódot amit beillesztettem, c változóból annyi van mint égen a csillag, lehet bekavar?!
Re: szakdoga téma + későbbi segítség
Sketch:
Serial monitor:
Ott van az "?option=8", de nem kapcsol be a LED.
Ötlet?
Kód: Egész kijelölése
#include <Ethernet.h>
#include <SPI.h>
#include <SD.h>
#include <Time.h>
#include <EthernetUdp.h>
// MAC address from Ethernet shield sticker under board
byte mac[] = { 0xDE, 0xAC, 0xCE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,0,17); // IP address, may need to change depending on network
EthernetServer server(80); // create a server at port 80
IPAddress timeServer(132, 163, 4, 101);
const int timeZone = 2;
EthernetUDP Udp;
unsigned int localPort = 8888;
File webFile; // stores the HTTP request
String HTTP;
void setup()
{
Ethernet.begin(mac,ip); // initialize Ethernet device
server.begin(); // start to listen for clients
Serial.begin(9600); // for diagnostics
pinMode(4,OUTPUT);
digitalWrite(4,HIGH);
pinMode(32,OUTPUT); // LED on pin 2
Serial.print("Initializing SD card...");
if (!SD.begin(4)) {
Serial.println(" failed!");
return;
}
Serial.println(" done.");
if (!SD.exists("index.htm")) {
Serial.println("HIBA - Nem talalom a fajlt!");
return; // can't find index file
}
Serial.println("SUCCESS - Found index.htm file.");
Udp.begin(localPort);
Serial.println("Varakozas synk");
setSyncProvider(getNtpTime);
}
time_t prevDisplay = 0;
void loop()
{
EthernetClient client = server.available(); // try to get client
if (client) { // got client?
while (client.connected()) {
if (client.available()) { // client data available to read
char c=client.read();
if(HTTP.length()<100){
HTTP+=c;
Serial.print(HTTP);
}
if (c=='\n'){
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Charset: utf-8");
client.println("Connection: close");
client.println();
webFile = SD.open("index.htm"); // open web page file
if (webFile) {
while(webFile.available()) {
client.write(webFile.read()); // send web page to client
}
webFile.close();
}
break;
}
if(HTTP.indexOf("?option=8")>-1){
digitalWrite(32,HIGH);
}
else{
if(HTTP.indexOf("?option=")>-1)
{
digitalWrite(32,LOW);
}
}
HTTP="";
}// end if (client.available())
} // end while (client.connected())
delay(1); // give the web browser time to receive the data
client.stop(); // close the connection
} //end if (client)
} //LOOP ENDKód: Egész kijelölése
Initializing SD card... done.
SUCCESS - Found index.htm file.
Varakozas synk
Transmit NTP Request
Receive NTP Response
GET /favicon.ico HTTP/1.1
GET /?option=8 HTTP/1.1
GET /down_arrow_select.jpg HTTP/1.1
GET /favicon.ico HTTP/1.1
Ötlet?
Re: szakdoga téma + későbbi segítség
Tipp:
helyett ?
A HTTP.indexOf() milyen értéket ad vissza? Debugsort ráengednék.... (println...)
Kód: Egész kijelölése
if(HTTP.indexOf("?option=8")>-1)Kód: Egész kijelölése
if(HTTP.indexOf('?option=8')>-1)A HTTP.indexOf() milyen értéket ad vissza? Debugsort ráengednék.... (println...)