Szukaj na tym blogu

niedziela, 14 kwietnia 2013

Pierwsza produkcyjna implementacja - działa samodzielnie

Od dzisiaj układ zmontowany wg poniższego schematu
 
działa samodzielnie.


Całość kodów można pobrać stąd.

Połączenie z cu

Całość uruchamiana jest przy pomocy magicznego zaklęcia zapisanego w pliku run_cu.sh
cu -l /dev/ttyS0 -s 57600 \
    | awk -f add_system_time.awk \
    | bash -s \
    | tee -a all_data.txt \
    | awk -f one_line_to_rrdtool.awk \
    | tee last_rrdtool_update.txt \
    | bash -s
 Znaczenie poszczególnych linii jest następujące:
  1. czytanie z portu com (rs232) i wypisywanie na standardowe wyjście
  2. wypisanie każdej linii z dodaniem komendy `date ...` której zadaniem jest dopisanie aktualnego czasu
  3. wykonanie komendy `date ...`
  4. skopiowanie linii do pliku, który może się przydać w przypadku odtwarzania bazy lub zmiany jej funkcjonalności
  5. przerobienie linii na komendę aktualizującą bazę
  6. zapisanie do pliku (tak dla celów testowych)
  7. wykonanie aktualizacji bazy

Automatyzacja

Automatyzację postanowiłem zrobić przy pomocy crona. Okazało się jednak, że cu nie bardzo chce uruchamiać się bez konsoli. I dobrze bo dzięki temu napisałem sobie prosty program w pythonie, który robi to samo :)
#/usr/bin/python

import serial
import sys

ser = serial.Serial("/dev/ttyS0", 57600)
while True:
    sys.stdout.write (ser.readline())
    sys.stdout.flush ()
powyższy program uruchamiany jest przez crona  w momencie @reboot, a skrypty do generowania obrazków są co 5 minut uruchamiane. Wpisy w crontab są następujące:
@reboot /home/.../run_python.sh
*/5 * * * * /home/.../create_graphs.bat.sh

Wystawienie na serwerze

Całość jest na razie wystawiona na moim lokalnym serwerze www do którego mam dostęp przy pomocy VPN'a. W internecie raczej nie zamierzam publikować wykresów temperatury z mojego mieszkania, pomyślę nad wystawieniem logów z temperatury zewnętrznej.

Wykonanie planu

  • uruchomić całość na Linuksie
  • wymienić CoolTerm.exe na coś innego 
    • uruchomienie cu w celu odczytu danych
    • poradzić sobie z problemem ekstra danych wypisywanych przez cu
  • zacząć odczytywać czas z zegara serwera
  • zrobić stronę www i wystawić na zewnątrz
    • uruchomienie rrdtool
      • przeniesienie, modyfikacja skryptów
      • sprawdzenie czemu na wykresach brakuje danych
    • połączenie z cu
    • automatyzacja
    • wystawienie na serwerze
  • zmontować układ, a aby to zrobić to trzeba:
    • wybrać docelowy mikro-kontroler - i zakupić go
    • dowiedzieć się jak się go programuje i zmontować programator - i zakupić co potrzeba
    • zaprogramować kontroler
    • dowiedzieć się jak najlepiej zmontować docelowy układ (skąd płytkę itp) i zmontować - a wcześniej zakupić co potrzeba
    • dowiedzieć się czy i jakie peryferia są potrzebne (kwarc, zasilanie, komunikacja z komputerem po rs232) - zakupić potrzebne
      •  zakup części do podłączenia RS232
      • zmontować wszystko co potrzebne do połączenia RS232
      • zasilanie 
    • jakąś obudowę do tego dobrać - i znaleźć lub zakupić

Legenda

  • wykonane
  • do zrobienia
  • nowe zadanie lub podzadanie
  • aktualnie robione

Brak komentarzy:

Prześlij komentarz