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/27 08:35] – rellermaa | 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 iga 5 sekundi järel ja salvesatatakse | + | // Lugem võetakse kord iga 5 sekundi järel ja salvestatakse |
- | + | ||
- | // Süsteemi teegid | + | |
#include < | #include < | ||
#include < | #include < | ||
#include < | #include < | ||
#include < | #include < | ||
- | // Kodulabori teegid | ||
#include < | #include < | ||
#include < | #include < | ||
#include < | #include < | ||
- | // Robootika Kodulabor II | + | // Serveri aadressi defineerimine |
- | # | + | #ifdef WEBSERVER_VHOST |
+ | #undef WEBSERVER_VHOST | ||
+ | #endif | ||
+ | # | ||
- | // Robootika | + | // Kodulabor |
- | //#define ADC_CHANNEL 14 | + | //#define ADC_CHANNEL 2 |
+ | // Kodulabor III | ||
+ | #define ADC_CHANNEL 14 | ||
- | // Paketi | + | // 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) | ||
{ | { | ||
uint16_t time = 0; | uint16_t time = 0; | ||
- | // Käivita | + | // Etherneti |
ethernet_init_client(); | ethernet_init_client(); | ||
ethernet_getDNSIP(); | ethernet_getDNSIP(); | ||
Line 166: | Line 175: | ||
adc_init(ADC_REF_AVCC, | adc_init(ADC_REF_AVCC, | ||
- | while(1) | + | |
+ | | ||
{ | { | ||
uint16_t dat_p,plen; | uint16_t dat_p,plen; | ||
- | // Hoiame | + | // Etherneti |
plen=enc28j60PacketReceive(BUFFER_SIZE, | plen=enc28j60PacketReceive(BUFFER_SIZE, | ||
buf[BUFFER_SIZE]=' | buf[BUFFER_SIZE]=' | ||
Line 177: | Line 187: | ||
if(plen == 0) | if(plen == 0) | ||
{ | { | ||
- | // Iga 5 sekundi tagant | + | // Iga 5 sekundi tagant serverisse |
if(time >= 5000) | if(time >= 5000) | ||
{ | { | ||
- | itoa(thermistor_calculate_celsius(adc_get_average_value(ADC_CHANNEL, | + | itoa(thermistor_calculate_celsius(adc_get_average_value( |
- | client_browse_url(PSTR("/ | + | ADC_CHANNEL, |
+ | |||
+ | client_browse_url(PSTR("/ | ||
+ | | ||
+ | | ||
+ | | ||
time = 0; | time = 0; | ||
} | } | ||
Line 188: | Line 203: | ||
continue; | continue; | ||
} | } | ||
- | if(dat_p==0) | + | |
- | { | + | |
- | | + | |
- | continue; | + | |
- | } | + | |
} | } | ||
- | return (0); | ||
} | } | ||
</ | </ |