Witaj na Forum Linuxiarzy
Zanim zalogujesz się, by pisać na naszym forum zapoznaj się z kilkoma zasadami savoir-vivre'u w wątku Administracja-> Przywitaj się. Wątki z problemami zamieszczone w dziale "Przywitaj się" będą usuwane.

Autor Wątek: Miernik wiatru  (Przeczytany 1797 razy)

Offline KubaK

  • Newbie
  • *
  • Wiadomości: 4
Miernik wiatru
« dnia: Luty 05, 2017, 04:15:41 pm »
Witam! Jako że mieszkam blisko dużego jeziora i równocześnie jestem windsurferem :) wpadłem na pomysł aby zrobić mini stację pogodową na raspberry pi 3, której wyniki działania będą umieszczane na stronie www. Na początku chciałbym mierzyć samą siłę wiatru. Wpadłem na pomysł: prosty program, który sczytuje prędkość wiatru zapisuje go do pliku, następnie poprzez cron co np. 1 sekundę wywołuje skrypt bash, który wgrywa ten plik na serwer www przez ftp. Strona będzie pobierała informację z tego pliku i wyświetlała ją.

Program w języku C:
#include <wiringPi.h>
#include <stdio.h>
#include <stdlib.h>

#define pinWiatr 17

int main() {
FILE *fp;
int licznik = 0;
int obroty = 0;
float wiatr = 0;
wiringPiSetupGpio();
pinMode(pinWiatr, INPUT);


for (;;) {
licznik++;

if (digitalRead(pinWiatr) == LOW) {
delay(2);
while (digitalRead(pinWiatr) == LOW);
obroty++;

}
if (licznik == 100) {
fp = fopen("wiatr.txt", "w");
wiatr = (obroty*2.40114)*0.5399569444;
fprintf(fp, "%0.2lf", wiatr);
fclose(fp);
system("/bin/bash -c ./ftp.sh &");
printf("%0.2lf\n", wiatr);
//printf("%lf\n", wiatr);

licznik = 0;
obroty = 0;
}
delay(8);

}
return 0;
}
Nie testowałem go jeszcze, ponieważ nie mam jeszcze czujnik wiatru :P

Jak myślicie, ma to sens? Czy aktualizacja pliku poprzez ftp co sekundę to mało "ekonomiczny" pomysł?
Czekam na wasze sugestie :)
« Ostatnia zmiana: Luty 07, 2017, 08:53:43 pm wysłana przez KubaK »

Offline lesio

  • Sr. Member
  • ****
  • Wiadomości: 433
Odp: Miernik wiatru
« Odpowiedź #1 dnia: Luty 06, 2017, 12:44:49 am »
Nie do końca rozumiem działanie programu. Plik jest otwierany przed pętlą, a następnie wielokrotnie zamykany w pętli. Związek zmiennej "wiatr" z wskazaniami czujnika niejasny. Myślę, że najpierw warto przetrenować skuteczny odczyt z czujnika i zapis do pliku.
Warto się zastanowić, czy należy odnotowywać  co jakiś czas wartość chwilową, czy też uśrednioną za okres między odczytami?
Transfer pliku jest oczywiście prawidłowym sposobem przekazywania informacji między komputerami. A może warto wziąć pod uwagę udostępnianie katalogu z plikiem np. po NFS?

Offline KubaK

  • Newbie
  • *
  • Wiadomości: 4
Odp: Miernik wiatru
« Odpowiedź #2 dnia: Luty 07, 2017, 08:51:15 pm »
Przyszedł mi czujnik prędkości wiatru. Poprawiłem program (Już chyba działa prawidłowo :) )
Miałem problem z cronem. Teraz wywołuję tylko ten program i on całą resztę wykonuje.
http://surfportal.pl/zdjecia/1.JPG
http://surfportal.pl/zdjecia/2.JPG
http://surfportal.pl/zdjecia/3.JPG
« Ostatnia zmiana: Luty 07, 2017, 09:05:00 pm wysłana przez KubaK »

Offline lesio

  • Sr. Member
  • ****
  • Wiadomości: 433
Odp: Miernik wiatru
« Odpowiedź #3 dnia: Luty 07, 2017, 10:09:35 pm »
Jeśli wszystko działa, to gratuluję. Współpraca komputera z nietypowymi urządzeniami zewnętrznymi to zawsze ciekawe wyzwanie.