created class, removed a few unneccesary rows

In order to make edits to class readable i commit this mostly white
space edit. Further more it removes a few application specific or
testing lines.
This commit is contained in:
Simon Albinsson
2018-04-07 22:28:28 +00:00
parent 3faf3c621e
commit 3e10e27c85
2 changed files with 64 additions and 70 deletions

View File

@@ -10,3 +10,5 @@ It currently lacks support for many features features and is more of a crude dem
* reading raw-values
If you have the AdaFruit board with built in level shifters and voltage regulator it is should work if you just plug in [SDA to pin 3, SCL to pin 5, VCC to pin 17 and GND to pin 20](https://pinout.xyz/pinout/i2c). You should then be able to find the SGP30 an address 0x58 using `i2cdetect -y 1`. If you get an error message you probbably need to enable i2c in the kernel using [`raspi-config` and reboot](https://learn.sparkfun.com/tutorials/raspberry-pi-spi-and-i2c-tutorial)
After 12 hours of run time the base-line data is saved once every hour as per the "device driver integration guide". The data is saved as json to ~/sgp_config_data.txt

View File

@@ -2,7 +2,6 @@ import smbus2
from smbus2 import SMBusWrapper, SMBus, i2c_msg
from collections import namedtuple
from functools import partial
#import Adafruit_PureIO.smbus as adabus
from time import sleep, asctime,time
import json
from copy import copy
@@ -15,6 +14,7 @@ BASELINE_FILENAME = os.path.expanduser("~/sgp_config_data.txt")
#print bus.write_byte_datadata(DEVICE_ADDR, 0x00, 0x01)
#self._i2c_read_words_from_cmd([0x36, 0x82], 0.01, 3)
class Sgp30():
Sgp30Cmd = namedtuple("Sgp30Cmd",["commands","replylen","waittime"])
GET_SERIAL=Sgp30Cmd([0x36, 0x82],6,10)
GET_FEATURES=Sgp30Cmd([0x20, 0x15],2,2)
@@ -63,7 +63,6 @@ def init_sgp(bus):
sleep(15)
def i2c_geral_call(bus):
print("resetting bus")
bus.write_byte(0,0x06)
sleep(.1)
@@ -73,12 +72,9 @@ def store_baseline(n):
baseline= rw(GET_BASELINE)
json.dump(baseline.raw,conf)
def http_post_data(url="http://localhost/setdata"):
try:
requests.get(url,params={"co2": co2eq,"tvoc":tvoc},timeout=.5)
except:
pass
if __name__ == "__main__":
main()
main():
with SMBusWrapper(1) as bus:
rw=partial(read_write,bus=bus)
i2c_geral_call(bus)
@@ -90,10 +86,7 @@ with SMBusWrapper(1) as bus:
print(rw(IAQ_MEASURE))
print("Testing meassure again")
sleep(1)
print(rw(IAQ_MEASURE))
sleep(1)
print("Running")
with open("/tmp/air.txt","w") as f:
n=0
while(True):
start = time()
@@ -102,7 +95,6 @@ with SMBusWrapper(1) as bus:
res = ( "%s CO_2eq: %d ppm, TVOC: %d"%( asctime(), co2eq, tvoc ))
print(res)
f.write("%i %i %i \n"%(time(),co2eq,tvoc))
http_post_data()
store_baseline(n)
elapsed = (time() - start)
sleep(1 - elapsed )