Vėjo greitis: nuo matavimo iki reikšmės parodymo

Vėjo greičio reikšmė paprastai ir pakankamai tiksliai pamatuojama, tačiau duomenų išvedimas yra sudėtingas. Šiame straipsnyje aprašysiu visą procesą nuo daviklio iki reikšmės parodymo ekrane.
Vėjo greičiui matuoti skirtas prietaisas vadinamas anemometru. Naudosime Three Cup Anemometer Aluminium Alloyed DC12-24V su skaitmeniniu duomenų perdavimu per RS485 portą. Taip pat išduodamas meandro formos impulsinis signalas, kurio dažnis tiesiogiai priklausomas nuo vėjo greičio. Chakteristikose nurodoma: 1m/sek. greitį atitinka 12 impulsų.

Skaityti toliau: Vėjo greitis: nuo matavimo iki reikšmės parodymo

Pertekliniai duomenys

Duomenų srautas generuojamas RPI iš ARDUINO į MySQL DB yra labai didelis. Tai sulelia sunkumų perduodant juos iš VJC (vėjo jėgainės kontrolerį) į duomenų atvaizdavimo aplikaciją. Kaip pavyzdys gali būti komanda į DB ‘truncate spi’ – duomenų išvalymas, kuri trunka >30min. Čia būtų įdomūs konkretūs skaičiai: kiek per parą padaroma įrašų ir kiek laiko trunka šių įrašų trynimas. Šiandien komanda truncate spi paleista 5:00.

Iškelkim užduotį sumažinti duomenų srautą. Momentines reikšmes įrašinėkime cikliškai į spi lentelę, o į naują lentelę įrašykime apibendrintus duomenis. Paimkime 5 sekundžių intervalą, kas sudarys 5*20=100 kartų mažesnį srautą. Čia 20 kartų per sekundę yra momentinių duomenų įrašymo greitis.

Užduoties įgyvendinimui reikia:

1. Sukurti naują lentelę

Pavadinkime ją delta. Pagrindiniai lentelės duomenys bus šešios analoginės keitiklio reikšmės, duomenų įrašymo periodas ir absoliutus laikas. Taigi lentelės laukai: id (long integer), A0-A5 (byte), Periodas (integer – milisekundės), Date (timestamp).

2. Pakoreguoti RPI programą, kuri įrašinėja duomenis.

Prisiminkime, kuri vykdoma programos versija:

pi@raspberrypi:~ $ ps -xa |grep test
1263 ? S 0:00 sudo /home/pi/test3.o
1273 ? R 2712:37 /home/pi/test3.o /*paryškintas programos veikimo laikas*/

Žemiau yra C kodo iškarpa, formuojanti DB įrašą. Ją reiks koreguoti:

A0=resu[3] + resu[4]*256;
A1=resu[5] + resu[6]*256;
A2=resu[7] + resu[8]*256;
A3=resu[9] + resu[10]*256;
A4=resu[11] + resu[12]*256;
A5=resu[13] + resu[14]*256;
VGRA=resu[15] + resu[16]*256;
VGRB=resu[17] + resu[18]*256;
TS1=resu[19] + resu[20]*256;
TS2=resu[21] + resu[22]*256;
//TSa2Point=&TSa2[0];
//TS=AtmestiKrastinesReikmes(TSa2Point, jmax);
//int A0min=0xFFFF;int A0max=0;for (j=0; j<jmax; j++) {if (A0a[j]>A0max) A0max=A0a[j];if (A0a[j]<A0min) A0min=A0a[j];}
//int A1min=0xFFFF;int A1max=0;for (j=0; j<jmax; j++) {if (A1a[j]>A1max) A1max=A1a[j];if (A1a[j]<A1min) A1min=A1a[j];}
//int A2min=0xFFFF;int A2max=0;for (j=0; j<jmax; j++) {if (A2a[j]>A2max) A2max=A2a[j];if (A2a[j]<A2min) A2min=A2a[j];}
//int A3min=0xFFFF;int A3max=0;for (j=0; j<jmax; j++) {if (A3a[j]>A3max) A3max=A3a[j];if (A3a[j]<A3min) A3min=A3a[j];}
//int A4min=0xFFFF;int A4max=0;for (j=0; j<jmax; j++) {if (A4a[j]>A4max) A4max=A4a[j];if (A4a[j]<A4min) A4min=A4a[j];}
//int A5min=0xFFFF;int A5max=0;for (j=0; j<jmax; j++) {if (A5a[j]>A5max) A5max=A5a[j];if (A5a[j]<A5min) A5min=A5a[j];}
sprintf(qu, "insert into vejojegaines.spi values (\"\",%i,%i,%i,%i,%i,%i,%i,%i,null)",A0,A1,A2,A3,A4,A5, VGRA+VGRB, TS1+TS2*256*256);
//printf("qu=%s\n", qu);
res=mysql_perform_query(conn, qu);
mysql_free_result(res); 

Verta paanalizuoti gaunamus momentinius duomenis, parodytus žemiau. Paryškinti duomenys pasikartoja. Kodėl?:

Nr.id A1 A2 A3 A4 A5 A6 TSL TSH Date

1 193466 783 780 782 815 784 786 49272 325578935 2017-11-14 06:44:04
2 193465 783 780 782 815 784 786 49272 325578935 2017-11-14 06:44:04
3 193464 783 780 782 815 784 786 49272 325578935 2017-11-14 06:44:04
4 193463 783 780 782 815 784 786 49272 325578935 2017-11-14 06:44:04
5 193462 783 780 782 815 784 786 49272 325578935 2017-11-14 06:44:04
6 193461 783 780 782 815 784 786 49272 325578935 2017-11-14 06:44:04
7 193460 783 780 782 815 784 786 49272 325578935 2017-11-14 06:44:04
8 193459 783 780 782 815 784 786 49272 325578935 2017-11-14 06:44:04
9 193458 783 780 782 815 784 786 49272 325578935 2017-11-14 06:44:04
10 193457 783 780 782 815 784 786 49272 325578935 2017-11-14 06:44:04
11 193456 796 806 801 828 811 810 48293 325578632 2017-11-14 06:44:04
12 193455 796 806 801 828 811 810 48293 325578632 2017-11-14 06:44:04
13 193454 796 806 801 828 811 810 48293 325578632 2017-11-14 06:44:04
14 193453 796 806 801 828 811 810 48293 325578632 2017-11-14 06:44:04
15 193452 796 806 801 828 811 810 48293 325578632 2017-11-14 06:44:04
16 193451 796 806 801 828 811 810 48293 325578632 2017-11-14 06:44:03
17 193450 796 806 801 828 811 810 48293 325578632 2017-11-14 06:44:03
18 193449 796 806 801 828 811 810 48293 325578632 2017-11-14 06:44:03
19 193448 796 806 801 828 811 810 48293 325578632 2017-11-14 06:44:03
20 193447 796 806 801 828 811 810 48293 325578632 2017-11-14 06:44:03
21 193446 799 801 795 835 806 810 48293 325578632 2017-11-14 06:44:03

22 193445 799 801 795 835 806 810 48568 325578334 2017-11-14 06:44:03
23 193444 799 801 795 835 806 810 48568 325578334 2017-11-14 06:44:03
24 193443 799 801 795 835 806 810 48568 325578334 2017-11-14 06:44:03
25 193442 799 801 795 835 806 810 48568 325578334 2017-11-14 06:44:03
26 193441 799 801 795 835 806 810 48568 325578334 2017-11-14 06:44:03
27 193440 799 801 795 835 806 810 48568 325578334 2017-11-14 06:44:03
28 193439 799 801 795 835 806 810 48568 325578334 2017-11-14 06:44:03
29 193438 799 801 795 835 806 810 48568 325578334 2017-11-14 06:44:03
30 193437 799 801 795 835 806 810 48568 325578334 2017-11-14 06:44:03
31 193436 799 801 795 835 806 810 48568 325578334 2017-11-14 06:44:03
32 193435 794 809 798 831 807 814 18896 325578133 2017-11-14 06:44:03
33 193434 794 809 798 831 807 814 18896 325578133 2017-11-14 06:44:03
34 193433 794 809 798 831 807 814 18896 325578133 2017-11-14 06:44:03
35 193432 794 809 798 831 807 814 18896 325578133 2017-11-14 06:44:03
36 193431 794 809 798 831 807 814 18896 325578133 2017-11-14 06:44:03
37 193430 794 809 798 831 807 814 18896 325578133 2017-11-14 06:44:03
38 193429 796 807 798 831 807 814 18896 325578133 2017-11-14 06:44:03
39 193428 796 807 796 839 806 813 48035 325577837 2017-11-14 06:44:03
40 193427 796 807 796 839 806 813 48035 325577837 2017-11-14 06:44:03
41 193426 796 807 796 839 806 813 48035 325577837 2017-11-14 06:44:03
42 193425 796 807 796 839 806 813 48035 325577837 2017-11-14 06:44:03
43 193424 796 807 796 839 806 813 48035 325577837 2017-11-14 06:44:03
44 193423 796 807 796 839 806 813 48035 325577837 2017-11-14 06:44:03
45 193422 796 807 796 839 806 813 48035 325577837 2017-11-14 06:44:03
46 193421 796 807 796 839 806 813 48035 325577837 2017-11-14 06:44:03
47 193420 796 807 796 839 806 813 48035 325577837 2017-11-14 06:44:03
48 193419 796 807 796 839 806 813 48035 325577837 2017-11-14 06:44:03
49 193418 799 806 796 828 811 807 46002 325577546 2017-11-14 06:44:03
50 193417 799 806 796 828 811 807 46002 325577546 2017-11-14 06:44:02
51 193416 799 806 796 828 811 807 46002 325577546 2017-11-14 06:44:02
52 193415 799 806 796 828 811 807 46002 325577546 2017-11-14 06:44:02
53 193414 799 806 796 828 811 807 46002 325577546 2017-11-14 06:44:02
54 193413 799 806 796 828 811 807 46002 325577546 2017-11-14 06:44:02
55 193412 799 806 796 828 811 807 46002 325577546 2017-11-14 06:44:02
56 193411 799 806 796 828 811 807 46002 325577546 2017-11-14 06:44:02
57 193410 799 806 796 828 811 807 46002 325577546 2017-11-14 06:44:02
58 193409 799 806 796 828 811 807 46002 325577546 2017-11-14 06:44:02
59 193408 795 803 797 829 807 806 45878 325577265 2017-11-14 06:44:02
60 193407 795 803 797 829 807 806 45878 325577265 2017-11-14 06:44:02
61 193406 795 803 797 829 807 806 45878 325577265 2017-11-14 06:44:02
62 193405 795 803 797 829 807 806 45878 325577265 2017-11-14 06:44:02
63 193404 795 803 797 829 807 806 45878 325577265 2017-11-14 06:44:02
64 193403 795 803 797 829 807 806 45878 325577265 2017-11-14 06:44:02
65 193402 795 803 797 829 807 806 45878 325577265 2017-11-14 06:44:02
66 193401 795 803 797 829 807 806 45878 325577265 2017-11-14 06:44:02
67 193400 795 803 797 829 807 806 45878 325577265 2017-11-14 06:44:02
68 193399 795 803 797 829 807 806 45878 325577265 2017-11-14 06:44:02
69 193398 792 804 796 824 811 809 42022 325576982 2017-11-14 06:44:02
70 193397 792 804 796 824 811 809 42022 325576982 2017-11-14 06:44:02
71 193396 792 804 796 824 811 809 42022 325576982 2017-11-14 06:44:02
72 193395 792 804 796 824 811 809 42022 325576982 2017-11-14 06:44:02
73 193394 792 804 796 824 811 809 42022 325576982 2017-11-14 06:44:02
74 193393 792 804 796 824 811 809 42022 325576982 2017-11-14 06:44:02
75 193392 792 804 796 824 811 809 42022 325576982 2017-11-14 06:44:02
76 193391 792 804 796 824 811 809 42022 325576982 2017-11-14 06:44:02
77 193390 792 804 796 824 811 809 42022 325576982 2017-11-14 06:44:02
78 193389 796 803 799 828 812 811 45781 325576699 2017-11-14 06:44:02
79 193388 796 803 799 828 812 811 45781 325576699 2017-11-14 06:44:02
80 193387 796 803 799 828 812 811 45781 325576699 2017-11-14 06:44:02
81 193386 796 803 799 828 812 811 45781 325576699 2017-11-14 06:44:02
82 193385 796 803 799 828 812 811 45781 325576699 2017-11-14 06:44:02
83 193384 796 803 799 828 812 811 45781 325576699 2017-11-14 06:44:02
84 193383 796 803 799 828 812 811 45781 325576699 2017-11-14 06:44:01
85 193382 796 803 799 828 812 811 45781 325576699 2017-11-14 06:44:01
86 193381 796 803 799 828 812 811 45781 325576699 2017-11-14 06:44:01
87 193380 796 803 799 828 812 811 45781 325576699 2017-11-14 06:44:01
88 193379 796 801 799 833 802 812 43725 325576424 2017-11-14 06:44:01
89 193378 796 801 799 833 802 812 43725 325576424 2017-11-14 06:44:01
90 193377 796 801 799 833 802 812 43725 325576424 2017-11-14 06:44:01
91 193376 796 801 799 833 802 812 43725 325576424 2017-11-14 06:44:01
92 193375 796 801 799 833 802 812 43725 325576424 2017-11-14 06:44:01
93 193374 796 801 799 833 802 812 43725 325576424 2017-11-14 06:44:01
94 193373 796 801 799 833 802 812 43725 325576424 2017-11-14 06:44:01
95 193372 796 801 799 833 802 812 43725 325576424 2017-11-14 06:44:01
96 193371 796 801 799 833 802 812 43725 325576424 2017-11-14 06:44:01
97 193370 801 801 803 832 804 813 43397 325576158 2017-11-14 06:44:01
98 193369 801 801 803 832 804 813 43397 325576158 2017-11-14 06:44:01
99 193368 801 801 803 832 804 813 43397 325576158 2017-11-14 06:44:01
100 193367 801 801 803 832 804 813 43397 325576158 2017-11-14 06:44:01