Dzisiaj jest 28 lip 2017, 02:53

Strefa czasowa UTC+1godz. [letni]




Nowy temat Odpowiedz w temacie  [ Posty: 253 ]  Przejdź na stronę Poprzednia  1 ... 7, 8, 9, 10, 11, 12, 13  Następna
Autor Wiadomość
 Tytuł: Re: Stacja Meteo na OWFS
Post: 17 sty 2016, 20:43 
Offline
Użytkownik

Rejestracja: 7 sty 2016, 14:44
Posty: 66
Masz racje to jest lepsze rozwiązanie aby zapytanie wysłać do arduino a on wyświetli aktualne dane na żądanie :) Tylko że program w arduino muszę przerobić :) dzięki za prawidłowe naprowadzenie :) mam nadzieje że podołam :d


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Stacja Meteo na OWFS
Post: 17 sty 2016, 21:33 
Offline
Użytkownik

Rejestracja: 7 sty 2016, 14:44
Posty: 66
Program przerobiony i jak mu wysyłam echo "podajdane" > /dev/ttyACM0 to mi nic nie zwraca ?


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Stacja Meteo na OWFS
Post: 17 sty 2016, 21:57 
Offline
Administrator
Awatar użytkownika

Rejestracja: 10 kwie 2010, 00:28
Posty: 12873
Lokalizacja: Warszawa
Tym poleceniem tylko wysyłasz dane. Potrzebujesz kolejne żeby odebrać.

_________________
http://eko.one.pl - prawie wszystko o OpenWrt


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Stacja Meteo na OWFS
Post: 17 sty 2016, 22:05 
Offline
Użytkownik

Rejestracja: 7 sty 2016, 14:44
Posty: 66
root@OpenWrt:/dev# echo "podajdane" > /dev/ttyUSB0 && tail -f /dev/ttyUSB0
podajdane

i cisza nic się nie pojawia w stosunku do laptopa jak mam podpięte arduino i w programie arduino w oknie serial porta napisze podajdane to mi zwraca odczytane dane z czujników

Ten sposób też nie działa

echo "podajdane" > /dev/ttyUSB0 && cat /dev/ttyACM0 >> /mnt/dysk/meteo/dane2.txt & plik jest pusty


Ostatnio zmieniony 17 sty 2016, 22:09 przez manguscik, łącznie zmieniany 1 raz

Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Stacja Meteo na OWFS
Post: 17 sty 2016, 22:08 
Offline
Administrator
Awatar użytkownika

Rejestracja: 10 kwie 2010, 00:28
Posty: 12873
Lokalizacja: Warszawa
Dla testu:

echo "podajdane" > /dev/ttyACM0
cat /dev/ttyACM0

PS - a po podaje dane oczekujesz w kodzie entera czy nie?

_________________
http://eko.one.pl - prawie wszystko o OpenWrt


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Stacja Meteo na OWFS
Post: 17 sty 2016, 22:15 
Offline
Użytkownik

Rejestracja: 7 sty 2016, 14:44
Posty: 66
Raczej tak bo w oknie arduino serial porta wciskam ok a on chyba jest jak enter

Tak dałem w programie:
void loop(void)
{
   if(Serial.available() > 0) {
    odebraneDane = Serial.readStringUntil('\n');
   if (odebraneDane == "podajdane") {
         
  }



Po wpisaniu czeka na nową linie \n co by tu dać innego to nie wiem nie doczytałem się jeszcze


Wczytałem prosty program aby sprawdzić czy po wpisaniu czegoś na serial porcie arduino odpowiedział witaj + to co wpisane

String odebraneDane = ""; //Pusty ciąg odebranych danych
 
void setup() {
  Serial.begin(9600); //Uruchomienie komunikacji
}
 
void loop() {
  if(Serial.available() > 0) { //Czy Arduino odebrano dane
    odebraneDane = Serial.readStringUntil('\n'); //Jeśli tak, to odczytaj je do znaku końca linii i zapisz w zmiennej odebraneDane
    Serial.println("Witaj " + odebraneDane + "!"); //Wyświetl komunikat
  }
}


zanim coś napisałem do arduino uruchomiłem zapisywanie do pliku to co się dzieje na serial porcie

cat /dev/ttyACM0 >> /mnt/dysk/meteo/dane.txt &

i wydałem komendę z konsoli echo "lukasz" > /dev/ttyACM0 powinno mi wyrzucić do pliku "Witaj lukasz" ale plik jest pusty więc mogę stwierdzić że mój program do meteo jest dobry bo ten prosty program też nie działa pod openwrt a pod laptopem mój program jak i ten testowy działają bez problemowo.


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Stacja Meteo na OWFS
Post: 18 sty 2016, 17:14 
Offline
Użytkownik

Rejestracja: 7 sty 2016, 14:44
Posty: 66
Nikt nie ma pomysłu jak ogarnąć openwrt aby wysłał komendę do arduino i dostal dane z temperatura czyżby zostaje tylko zrobienie skryptu który z pliku txt wyśle dane do bazy lub pozostanie przy pliku txt z modułem czasu rzeczywistego


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Stacja Meteo na OWFS
Post: 18 sty 2016, 18:23 
Offline
Użytkownik
Awatar użytkownika

Rejestracja: 10 kwie 2010, 21:28
Posty: 699
Tak nigdy nie robiłem. Pomyśl inaczej tak jak wspominałem: wysyłać wartości po jednej oznaczonej literkami na początku lub na końcu. Po stronie routera rozpoznajesz wartość po tych literkach a następnie je odcinasz...

_________________
WRT160NL, WNDR3700v2 i OpenWRT, Funbox ;), WRT1200AC


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Stacja Meteo na OWFS
Post: 18 sty 2016, 18:30 
Offline
Użytkownik

Rejestracja: 7 sty 2016, 14:44
Posty: 66
Czyli dane przechwycone przez serial port zapisywane do pliku dane.txt w takim formacie :

obecny format : C 1016.48 TC -0.90 W1 86.40 W2 40.70 TW1 -7.10 TW2 21.10 OK
proponowany: C1016.48 TC-0.90 W186.40 W240.70 TW1-7.10 TW221.10

i pożniej za pomocą skryptu po literkach je rozpoznać i wyciąć cyfry ? które zapiszę do bazy danych ?


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Stacja Meteo na OWFS
Post: 18 sty 2016, 18:33 
Offline
Użytkownik
Awatar użytkownika

Rejestracja: 10 kwie 2010, 21:28
Posty: 699
Zapomnij o pliku.
O tym myślę:
CC1016.48
TC0.90
W186.40
W240.70
TW1-7.10
TW221.10
Ze skryptu prosto do bazy.

_________________
WRT160NL, WNDR3700v2 i OpenWRT, Funbox ;), WRT1200AC


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Stacja Meteo na OWFS
Post: 18 sty 2016, 18:36 
Offline
Użytkownik

Rejestracja: 7 sty 2016, 14:44
Posty: 66
oki z tym nie będzie problemu aby taki zapis zrobić na arduino tylko nie wiem jak przechwycić z serial porta dane skryptem i oddzielić mogę prosić jakiś przykład dla pierwszej wartości.

Coś koło tego?
cat /dev/ttyACM0 | grep -m1 "CC"

Tylko kiedy skrypt ma wiedzieć że arduino wysłało dane ?


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Stacja Meteo na OWFS
Post: 18 sty 2016, 18:57 
Offline
Użytkownik
Awatar użytkownika

Rejestracja: 10 kwie 2010, 21:28
Posty: 699
Skrypt ma czytać cały czas.
Gdy znajdzie znak końca linii to bierze to co przyszło i analizuje.
szukaj: sed, awk ...

_________________
WRT160NL, WNDR3700v2 i OpenWRT, Funbox ;), WRT1200AC


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Stacja Meteo na OWFS
Post: 18 sty 2016, 19:12 
Offline
Administrator
Awatar użytkownika

Rejestracja: 10 kwie 2010, 13:13
Posty: 1937
Lokalizacja: Suwałki
albo rzuć w kąt te basze i awuki i napisz w Pythone, banalnie proste; biblioteki do sqlite masz w openwrt. Przykład: https://github.com/Pyplate/rpi_temp_log ... monitor.py

_________________
Pozdrawiam, Artur
http://digi-led.pl/blog - Blog


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Stacja Meteo na OWFS
Post: 18 sty 2016, 19:29 
Offline
Administrator
Awatar użytkownika

Rejestracja: 10 kwie 2010, 00:28
Posty: 12873
Lokalizacja: Warszawa
Nooo grubo. Teraz @manguscik w ogóle ma zagadkę co zrobić.

_________________
http://eko.one.pl - prawie wszystko o OpenWrt


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Stacja Meteo na OWFS
Post: 18 sty 2016, 19:30 
Offline
Użytkownik

Rejestracja: 7 sty 2016, 14:44
Posty: 66
Arteq proste to zależy dla kogo jak ktoś zna to będzie banalne ale dla laika który się uczy od podstaw to wyczyn chyba skorzystam z propozycji Tytana wydaje się prostsza i do ogarnięcia.Cezary masz rację arduino wydawało mi się trudne ale ogranołem bez problemu gorzej z linuxem i openwrt założenia mojego projektu były takie że skorzystam z gotowca i będzie super :D a tu masz ucz się i coś Ci wyjdzie :D


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Stacja Meteo na OWFS
Post: 18 sty 2016, 20:10 
Offline
Użytkownik
Awatar użytkownika

Rejestracja: 10 kwie 2010, 21:28
Posty: 699
O tak tak w pythonie jest łatwiej.
Czytanie z seriala plus zapis do bazy.

Potrzebne moduły pyserial i sqlite3.

Np. rozpoznanie co przyszło na serial z nagłówkiem i podstawienia danych:
 if line[:2] == "TM":
        temp = line[2:]
    elif line[:2] == "PR":
        pres = line[2:]


:lol:

_________________
WRT160NL, WNDR3700v2 i OpenWRT, Funbox ;), WRT1200AC


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Stacja Meteo na OWFS
Post: 18 sty 2016, 20:46 
Offline
Użytkownik

Rejestracja: 7 sty 2016, 14:44
Posty: 66
Pythona na razie odpuszczę a zrobię po sed i awk narazie cześć skryptu (powiedzmy bo nie dziala )
narazie mi chodzi o przechwycenie danych bez awk na razie chcę aby przechwycił dane i je wyświetlił w konsoli tylko coś źle deklaruje CA TC W1 W2 TW1 TW2 bo wychodzi mi błąd.
Jak wklepuje w konsoli to mi działa :
root@OpenWrt:~# sed -ne /CA/p /dev/ttyACM0
CA1018.67
CA1018.67
CA1018.74
CA1018.67
^C


A taki błąd wywala mi po uruchomieniu skrypta

root@OpenWrt:~# odczyt.sh
/bin/odczyt.sh: line 6: -ne: not found
/bin/odczyt.sh: line 7: -ne: not found
/bin/odczyt.sh: line 8: -ne: not found
/bin/odczyt.sh: line 9: -ne: not found
/bin/odczyt.sh: line 10: -ne: not found
/bin/odczyt.sh: line 11: -ne: not found


A poniżej skrypt

#!/bin/sh
#okreslenie wejscia danych
#pobierz datę,czas i dane
  date=$(date +%Y-%m-%d)
  time=$(date +%H:%M:%S)
  CA=$sed -ne /CA/p /dev/ttyACM0
  TC=$sed -ne /TC/p /dev/ttyACM0
  W1=$sed -ne /W1/p /dev/ttyACM0
  W2=$sed -ne /W2/p /dev/ttyACM0
  TW1=$sed -ne /TW1/p /dev/ttyACM0
  TW2=$sed -ne /TW2/p /dev/ttyACM0
   
#wyswietlenie

  echo ""
  echo "======================================="
  echo ""
  echo " data: " $date  " godzina: " $time
  echo " Cisnienie:          " $CA
  echo " Temperatura strych:      " $TC
  echo " Wilgotnosc na zewnatrz:   " $W1
  echo " Wilgotność w domu:      " $W2          
  echo " Temperatura na zewnatrz:  " $TW1
  echo " Temperatura w domu:      " $TW2
  echo ""
  echo "======================================="
  echo ""


  #tworzymy baze...
 
  #sqlite3 /mnt/dysk/meteo/dane.db "CREATE TABLE IF NOT EXISTS temp(id INTEGER PRIMARY KEY AUTOINCREMENT, data TEXT, godz TEXT, CA TEXT, TC TEXT, W1 TEXT, W2 TEXT, TW1 TEXT, TW2 TEXT)"
 
  #dodajemy rekordy do bazy danych sqlite3
 
  #sqlite3 /mnt/dysk/meteo/dane.db "INSERT INTO temp(data, godz, CA, TC, W1, W2, TW1, TW2) values(\"$date\", \"$time\", \"$CA\", \"$TC\", \"$W1\", \"$W2\", \"$TW1\", \"$TW2\");"

Tytan czy mogę Cię prosić o wytłumaczenie k jak to zrobić pokolei w pytonie aby szlo do bazy :)

Z góry dziękuję za pomoc :)


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Stacja Meteo na OWFS
Post: 18 sty 2016, 20:58 
Offline
Użytkownik
Awatar użytkownika

Rejestracja: 10 kwie 2010, 21:28
Posty: 699
w skrypcie spróbuj tak:

cat /dev/ttyACM0 | sed -ne /CA/p

_________________
WRT160NL, WNDR3700v2 i OpenWRT, Funbox ;), WRT1200AC


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Stacja Meteo na OWFS
Post: 18 sty 2016, 21:11 
Offline
Użytkownik

Rejestracja: 7 sty 2016, 14:44
Posty: 66
Po wpisaniu tej komendy jest pusto bo pewnie dlatego że dane na serial porcie są co 5 sek


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
 Tytuł: Re: Stacja Meteo na OWFS
Post: 18 sty 2016, 21:25 
Offline
Użytkownik
Awatar użytkownika

Rejestracja: 10 kwie 2010, 21:28
Posty: 699
root@router:~#

cat /dev/ttyUSB0 | sed -ne /TM/p
TM22.60
TM22.60
TM22.60
TM22.60
TM22.60
TM22.60
TM22.60
TM22.60
TM22.60

_________________
WRT160NL, WNDR3700v2 i OpenWRT, Funbox ;), WRT1200AC


Na górę
 Wyświetl profil  
Odpowiedz z cytatem  
Wyświetl posty nie starsze niż:  Sortuj wg  
Nowy temat Odpowiedz w temacie  [ Posty: 253 ]  Przejdź na stronę Poprzednia  1 ... 7, 8, 9, 10, 11, 12, 13  Następna

Strefa czasowa UTC+1godz. [letni]


Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość


Nie możesz tworzyć nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów

Szukaj:
Przejdź do:  
cron
designed by digi-led.pl
...Copyright © 2010-2013, Ekipa openrouter.info