This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| et:examples:storage:network [2015/02/26 14:46] – raivo.sell | et:examples:storage:network [2020/07/20 09:00] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ~~PB~~ | ||
| ====== Andmesalvestus pilve ====== | ====== Andmesalvestus pilve ====== | ||
| //Vajalikud teadmised: | //Vajalikud teadmised: | ||
| Line 13: | Line 12: | ||
| {{ : | {{ : | ||
| ===== Praktika ===== | ===== Praktika ===== | ||
| - | Andmete salvestamiseks pilve on vaja esiteks valida sobiv pilveteenus või seadistada ise pilveserver. Lihtsam on kasutada olemasolevaid suurfirmade teenused. Samas on küllalt lihtne teha ka ise vastav funktsionaalsus, | + | Andmete salvestamiseks pilve on vaja esiteks valida sobiv pilveteenus või seadistada ise pilveserver. Lihtsam on kasutada olemasolevaid suurfirmade teenused. Samas on küllalt lihtne teha ka ise vastav funktsionaalsus, |
| - | Kuna pilveteenuste pakkujate nimekiri pidevalt muutub ja samuti muutuvad nende hinnapoliitika ning funktsionaalsus on järgnev näide tehtud minimalistliku lahendusena, | + | Kuna pilveteenuste pakkujate nimekiri pidevalt muutub ja samuti muutuvad nende hinnapoliitika ning funktsionaalsus on järgnev näide tehtud minimalistliku lahendusena, |
| Näiterakenduses on kasutusel lihtne temperatuuriandur, | Näiterakenduses on kasutusel lihtne temperatuuriandur, | ||
| - | Esmalt seadistatakse veebi- ja andmebaasi server, luues tühi andmebaas | + | Esmalt seadistatakse veebi- ja andmebaasi server, luues tühja andmebaasi |
| <code sql> | <code sql> | ||
| Line 52: | Line 51: | ||
| FROM monitor ORDER BY id ASC"); | FROM monitor ORDER BY id ASC"); | ||
| - | while( $row = mysql_fetch_array($result) ) { | + | while ($row = mysql_fetch_array($result)) { |
| - | // Tabeli koostamine | + | |
| | | ||
| | | ||
| Line 122: | Line 121: | ||
| </ | </ | ||
| - | ~~PB~~ | + | < |
| Mikrokontrolleri kood peab ühilduma serveri koodiga ja seda just andmete formaadi ning URL-i osas. | Mikrokontrolleri kood peab ühilduma serveri koodiga ja seda just andmete formaadi ning URL-i osas. | ||
| Line 128: | Line 127: | ||
| parameeter s on anduri ID ja parameeter v on anduri lugem. Ajatempel pannakse igale sisestusele automaatselt andmete saabumise järgi. | parameeter s on anduri ID ja parameeter v on anduri lugem. Ajatempel pannakse igale sisestusele automaatselt andmete saabumise järgi. | ||
| - | Alljärgnev kood on Kodulabori näitekood, mis vastab eelpool kirjeldatud serveri ja andmebaasi konfiguratsioonile. Kodulabor III puhul tuleb kasutada eraldi Ethernet moodulit, mis on Robootika Kodulabori lisakomplektis. | + | Alljärgnev kood on Kodulabori näitekood, mis vastab eelpool kirjeldatud serveri ja andmebaasi konfiguratsioonile. Kodulabor III puhul tuleb kasutada eraldi Ethernet moodulit, mis on Robootika Kodulabori lisakomplektis. |
| + | ^ Signaal ^ Viik ^ | ||
| + | | SI | PF3 | | ||
| + | | SO | PF2 | | ||
| + | | SCK | PF1 | | ||
| + | | CS | PF0 | | ||
| + | | VCC | +3.3V | | ||
| + | | GND | GND | | ||
| <code c> | <code c> | ||
| // Kodulabori temperatuuri lugemi pilve salvestamise näidisprogramm | // Kodulabori temperatuuri lugemi pilve salvestamise näidisprogramm | ||
| - | // Lugem võetakse kord päevas | + | // Lugem võetakse kord iga 5 sekundi järel |
| #include < | #include < | ||
| #include < | #include < | ||
| #include < | #include < | ||
| #include < | #include < | ||
| - | #include < | ||
| #include < | #include < | ||
| #include < | #include < | ||
| + | #include < | ||
| - | // Defineeri serveri aadress | + | // Serveri aadressi defineerimine |
| #ifdef WEBSERVER_VHOST | #ifdef WEBSERVER_VHOST | ||
| #undef WEBSERVER_VHOST | #undef WEBSERVER_VHOST | ||
| Line 147: | Line 153: | ||
| #define WEBSERVER_VHOST " | #define WEBSERVER_VHOST " | ||
| - | // Robootika | + | // Kodulabor II |
| - | #define ADC_CHANNEL 2 | + | //#define ADC_CHANNEL 2 |
| + | // Kodulabor III | ||
| + | #define ADC_CHANNEL 14 | ||
| - | // Robootika Kodulabor III | + | // Paketi |
| - | //#define ADC_CHANNEL 14 | + | |
| - | + | ||
| - | volatile int gsec = 0; | + | |
| - | // Taimeri katkestus | + | |
| - | ISR(TIMER1_COMPA_vect) | + | |
| - | { | + | |
| - | gsec++; | + | |
| - | } | + | |
| - | + | ||
| - | // Taimeri seadistamine looma katkestust igal sekundil | + | |
| - | void timer_init(void) | + | |
| - | { | + | |
| - | TCNT1=0; | + | |
| - | + | ||
| - | TCCR1A=(0<< | + | |
| - | TCCR1B=(1<< | + | |
| - | + | ||
| - | // Seadista taimeri väärtus 14.7456MHz: 14400 | + | |
| - | OCR1A = 14400; | + | |
| - | TIMSK1 = (1 << OCIE1A); | + | |
| - | } | + | |
| - | + | ||
| - | // Paketi | + | |
| #define BUFFER_SIZE 650 | #define BUFFER_SIZE 650 | ||
| uint8_t buf[BUFFER_SIZE+1]; | uint8_t buf[BUFFER_SIZE+1]; | ||
| + | // Põhiprogramm | ||
| int main(void) | int main(void) | ||
| { | { | ||
| - | | + | |
| - | timer_init(); | + | |
| - | sei(); // Luba katkestused | + | |
| - | // Etherneti kontrolleri käivitamine | + | // Etherneti kontrolleri käivitamine, IP hankimine |
| ethernet_init_client(); | ethernet_init_client(); | ||
| - | // IP aadressi hankimine | ||
| ethernet_getDNSIP(); | ethernet_getDNSIP(); | ||
| - | // Serviga ühenduse loomine | ||
| ethernet_get_server(); | ethernet_get_server(); | ||
| Line 193: | Line 175: | ||
| adc_init(ADC_REF_AVCC, | adc_init(ADC_REF_AVCC, | ||
| - | while(1) | + | |
| + | | ||
| { | { | ||
| uint16_t dat_p,plen; | uint16_t dat_p,plen; | ||
| Line 204: | Line 187: | ||
| if(plen == 0) | if(plen == 0) | ||
| { | { | ||
| - | // Iga 5 sekundi tagant | + | // Iga 5 sekundi tagant serverisse |
| - | if(gsec >= 5) | + | if(time >= 5000) |
| { | { | ||
| - | itoa(thermistor_calculate_celsius( | + | itoa(thermistor_calculate_celsius(adc_get_average_value( |
| - | adc_get_average_value(ADC_CHANNEL, | + | ADC_CHANNEL, |
| + | |||
| client_browse_url(PSTR("/ | client_browse_url(PSTR("/ | ||
| - | PSTR(WEBSERVER_VHOST),& | + | |
| - | otherside_www_gwmac); | + | |
| - | | + | |
| + | | ||
| } | } | ||
| + | _delay_ms(1); | ||
| + | time++; | ||
| continue; | continue; | ||
| } | } | ||
| | | ||
| - | | + | if(dat_p==0) |
| - | | + | |
| - | { | + | |
| - | | + | |
| - | continue; | + | |
| - | } | + | |
| } | } | ||
| } | } | ||
| </ | </ | ||