Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
et:examples:storage:network [2015/02/27 11:48] raivo.sellet: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:
 {{ :et:examples:storage:temp_logi_veebileht.png?500|Veebileht andmete kuvamiseks ja visualiseerimiseks }} {{ :et:examples:storage:temp_logi_veebileht.png?500|Veebileht andmete kuvamiseks ja visualiseerimiseks }}
 ===== 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, eriti kui mingi server on juba olemas ja on eelnevad kokkupuuted veebilehetede loomise ning andmebaassüsteemidega. +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, eriti kui mingi server on juba olemas ja on eelnevad kokkupuuted veebilehtede loomise ning andmebaassüsteemidega. 
-Kuna pilveteenuste pakkujate nimekiri pidevalt muutub ja samuti muutuvad nende hinnapoliitika ning funktsionaalsus on järgnev näide tehtud minimalistliku lahendusena, kus serveriks on kasutatud olemasolevat veebiserverit, kus jookseb Apache2, PHP5 ja MySQL andmebaasimootor. Antud näite järgi on alati võimalik lahendust keerukamaks ja täiuslikumaks teha, juhendeid kuidas andmebaasipõhiseid veebilehti teha ja andmeid visualiseerida on Internetis väga palju.+Kuna pilveteenuste pakkujate nimekiri pidevalt muutub ja samuti muutuvad nende hinnapoliitika ning funktsionaalsus on järgnev näide tehtud minimalistliku lahendusena, kus serveriks on kasutatud olemasolevat veebiserverit, kus jookseb Apache2, PHP5 ja MySQL andmebaasimootor. Antud näite järgi on alati võimalik lahendust keerukamaks ja täiuslikumaks teha, juhendeid kuidas andmebaasipõhiseid veebilehti teha ja andmeid visualiseerida on internetis väga palju.
  
 Näiterakenduses on kasutusel lihtne temperatuuriandur, mis salvestab teatud ajaintervalli järel temperatuuri ja edastab selle pilveserverile. Kommunikatsiooniks on kasutusel juhtmega Etherneti liides. Lahendus koosneb kahest osast: mikrokontrolleri tarkvara ja veebiserveri tarkvara. Näiterakenduses on kasutusel lihtne temperatuuriandur, mis salvestab teatud ajaintervalli järel temperatuuri ja edastab selle pilveserverile. Kommunikatsiooniks on kasutusel juhtmega Etherneti liides. Lahendus koosneb kahest osast: mikrokontrolleri tarkvara ja veebiserveri tarkvara.
  
-Esmalt seadistatakse veebi- ja andmebaasi server, luues tühi andmebaas ja vastav veebileht, mis võtab kontrollerilt vastu andmeid ja näitab neid kasutajale tabeli ning graafiku kujul. Graafiku genereerimiseks on kasutatud //Google Visualization// API-t. Andmebaasi loomiseks võib kasutada serveri veebiliidest phpMyadmin või lihtsalt mysql kliendiprogrammi. Antud näites on loodud andmebaas //pilvedemo// ja sinna tabel nimega //monitor//.+Esmalt seadistatakse veebi- ja andmebaasi server, luues tühja andmebaasi ja vastava veebilehe, mis võtab kontrollerilt vastu andmeid ja näitab neid kasutajale tabeli ning graafiku kujul. Graafiku genereerimiseks on kasutatud //Google Visualization// API-t. Andmebaasi loomiseks võib kasutada serveri veebiliidest phpMyadmin või lihtsalt mysql kliendiprogrammi. Antud näites on loodud andmebaas //pilvedemo// ja sinna tabel nimega //monitor//.
  
 <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+   // Tabeli koostamine
    $tabel .= '<tr><td>'.$row["aeg"].'</td>'."\n";    $tabel .= '<tr><td>'.$row["aeg"].'</td>'."\n";
    $tabel .= '<td>'.$row["sensor"].'</td>'."\n";    $tabel .= '<td>'.$row["sensor"].'</td>'."\n";
Line 122: Line 121:
  
 </code> </code>
-~~PB~~+<pagebreak>
  
 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 139: Line 138:
 <code c> <code c>
 // Kodulabori temperatuuri lugemi pilve salvestamise näidisprogramm // Kodulabori temperatuuri lugemi pilve salvestamise näidisprogramm
-// Lugem võetakse kord iga 5 sekundi järel ja salvesatatakse pilveserveri baasi+// Lugem võetakse kord iga 5 sekundi järel ja salvestatakse pilveserveri baasi
 #include <avr/io.h> #include <avr/io.h>
 #include <avr/interrupt.h> #include <avr/interrupt.h>
Line 154: Line 153:
 #define WEBSERVER_VHOST "robolabor.ee" #define WEBSERVER_VHOST "robolabor.ee"
  
-// Robootika Kodulabor II+// Kodulabor II
 //#define ADC_CHANNEL 2 //#define ADC_CHANNEL 2
-// Robootika Kodulabor III+// Kodulabor III
 #define ADC_CHANNEL 14 #define ADC_CHANNEL 14
  
Line 163: Line 162:
 uint8_t buf[BUFFER_SIZE+1]; uint8_t buf[BUFFER_SIZE+1];
  
 +// Põhiprogramm
 int main(void) int main(void)
 { {
Line 175: Line 175:
     adc_init(ADC_REF_AVCC, ADC_PRESCALE_8);     adc_init(ADC_REF_AVCC, ADC_PRESCALE_8);
  
-    while(1)+    // Lõputu tsükkel 
 +    while (1)
     {     {
         uint16_t dat_p,plen;         uint16_t dat_p,plen;
  
-        // Etherneti linki üleval hoidmine+        // Etherneti lingi üleval hoidmine
         plen=enc28j60PacketReceive(BUFFER_SIZE, buf);         plen=enc28j60PacketReceive(BUFFER_SIZE, buf);
         buf[BUFFER_SIZE]='\0';         buf[BUFFER_SIZE]='\0';
Line 190: Line 191:
             {             {
                 itoa(thermistor_calculate_celsius(adc_get_average_value(                 itoa(thermistor_calculate_celsius(adc_get_average_value(
-                                           ADC_CHANNEL, 4)),urlvarstr,10);+                                                 ADC_CHANNEL, 4)),urlvarstr,10); 
 +                                                 
                 client_browse_url(PSTR("/pilvedemo/?s=1&v="),urlvarstr,                 client_browse_url(PSTR("/pilvedemo/?s=1&v="),urlvarstr,
                       PSTR(WEBSERVER_VHOST),&browserresult_callback,                       PSTR(WEBSERVER_VHOST),&browserresult_callback,
                       otherside_www_ip,otherside_www_gwmac);                       otherside_www_ip,otherside_www_gwmac);
 +                      
                 time = 0;                 time = 0;
             }             }
Line 200: Line 203:
             continue;             continue;
         }         }
 +        
         if(dat_p==0)   udp_client_check_for_dns_answer(buf,plen); // plen!=0         if(dat_p==0)   udp_client_check_for_dns_answer(buf,plen); // plen!=0
     }     }
 } }
 </code> </code>
et/examples/storage/network.1425037701.txt.gz · Last modified: 2020/07/20 09:00 (external edit)
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0