Μετά τον θάνατο του σκληρού του Slave-PC, χάθηκαν όλα τα graphs.. Φυσικά ξενέρωσα και το παράτησα 😛 Όπως είχα πει σε ένα σχόλιο στο προηγούμενο άρθρο, θα έδινα τον κώδικα.. Θα δώσω και του μικροεπεξεργαστή, αλλά και του server με την ελπίδα ότι θα βοηθήσουν κάποιον 🙂

Πρώτα του μικροεπεξεργαστή. Ο μικροεπεξεργαστής είναι ο Basic Stamp II της Parallax (τα έχω ξαναπεί άπειρες φορές, αλλά αυτός που θα πέσει σε αυτό το άρθρο πρώτη φορά, δεν θα το ξέρει 😛 ). Η γλώσσα που είναι γραμμένο το πρόγραμμα είναι η PBASIC. Δεν είναι τέλειο, αλλά δουλεύει. Είχα ξεκινήσει πολλά διαφορετικά, αλλά αυτό επέζησε 🙁 Δεν εξηγώ τι κάνει και πως.. Είναι ανώφελο και βαρετό 😛

' Program: Room Stats  
' Author : giannoug  
' - email: giannoug@gmail.com  
' - site : blog.giannou.net  
' Version: V1.0  
'=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-  
' {$STAMP BS2}  
' {$PBASIC 2.5}  
'=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-  
' Σταθερές / Μεταβλητές  
'=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-  
'Εντολές DS1620  
Wconfig CON $0C ' Protocol for 'Write Configuration.'  
CPU CON %10 ' Config bit: serial thermometer mode.  
Cont CON %00 ' Config bit: continuous conversions after start.  
StartC CON $EE ' Protocol for 'Start Conversion.'  
StopC CON $22 ' Protocol for 'Stop Conversion.'  
RTemp CON $AA ' Protocol for 'Read Temperature.'  
'——-

DSdata VAR Word ' Word variable to hold 9-bit data  
cmd VAR Word  
i VAR Byte  
'=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-  
' Pins  
'=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-  
DQ CON 2 ' Pin 2 <=> DQ  
CLK CON 1 ' Pin 1 => CLK  
RST CON 0 ' Pin 0 => RST

GLed CON 3 ' Pin 3 => Green led  
OLed CON 4 ' Pin 4 => Orange Led  
RLed CON 5 ' Pin 5 => Red led  
'=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-  
' Σετάρισμα  
'=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-  
Setup:  
LOW RST: HIGH CLK  
PAUSE 100  
HIGH RST  
SHIFTOUT DQ,CLK,LSBFIRST,[Wconfig,CPU+Cont]  
LOW RST  
PAUSE 50  
HIGH RST  
SHIFTOUT DQ,CLK,LSBFIRST,[StartC]  
LOW RST

LOW GLed: LOW OLed: LOW RLed

FOR i = 0 TO 3  
PULSOUT GLed, 1000: PULSOUT OLed, 1000: PULSOUT RLed, 1000  
PAUSE 150  
NEXT

PAUSE 1000  
'=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-  
' Κύριο πρόγραμμα  
'=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-  
DO

GOSUB GetTemp  
GOSUB SendData

PAUSE 1000

LOOP  
'=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-  
' Υπορουτίνες  
'=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-  
GetTemp:  
FOR i = 1 TO 4  
PULSOUT OLed, 1000  
PAUSE 100  
NEXT

HIGH RST  
SHIFTOUT DQ,CLK,LSBFIRST,[RTemp]  
SHIFTIN DQ,CLK,LSBPRE,[DSdata\9]  
LOW RST

DSdata = DSdata/2  
RETURN

SendData:  
DEBUG "T", SDEC DSdata  
FOR i = 1 TO 4  
PULSOUT GLed, 1000  
PAUSE 100  
NEXT  
RETURN  

Σειρά έχει του server.. Και εδώ είχα ξεκινήσει πολλά, πραγματικά ΠΟΛΛΑ 😛 Δεν είναι καθόλου καλό, είναι γραμμένο στο πόδι, κυριολεκτικά. Την δουλειά του την κάνει όμως! Προσοχή μην την πάθεις όπως εγώ.. Αν το τρέξεις 500 φορές για παράδειγμα, και δεν έχεις πάνω τον μικροεπεξεργαστή, και τα 500 θα μείνουν ανοιχτά περιμένοντας να πάρουν δεδομένα απ’ τη σειριακή! Θέλει προσοχή ή μια IF να ελέγχει 🙂

#!/usr/bin/env python  
# Program: Room Stats  
# Author : giannoug  
# - email: giannoug@gmail.com  
# - site : blog.giannou.net  
# Version: V1.0  
#=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-  
import serial, sys, time

if 1 == 2:  
sys.stdout.write("0")  
exit()

ser1al = serial.Serial(0)  
time.sleep(1)

data = ser1al.read(4)  
temp = data.replace("T", "")

sys.stdout.write(temp)  
ser1al.close()

exit()  

Σκέφτομαι να το ξαναξεκινήσω, αλλά αυτή τη φορά να μην βασίζεται σε κάποιον υπολογιστή.. Ιδανικό θα είναι να χρησιμοποιήσω ένα Arduino με μια Ethernet Shield και μια κάρτα SD για να κρατάει τα δεδομένα.. Δυστυχώς αυτό θα στοιχήσει και δεν είναι καιρός για έξοδα τώρα!!