# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
# SPDX-License-Identifier: MIT

import busio
import digitalio
import board
import adafruit_mcp3xxx.mcp3004 as MCP
from adafruit_mcp3xxx.analog_in import AnalogIn

# create the spi bus
spi = busio.SPI(clock=board.SCK, MISO=board.MISO, MOSI=board.MOSI)

# create the cs (chip select)
cs = digitalio.DigitalInOut(board.D5)

# create the mcp object
mcp = MCP.MCP3004(spi, cs)

# create an analog input channel on pin 0
chan = AnalogIn(mcp, MCP.P0)

print("Raw ADC Value: ", chan.value)
print("ADC Voltage: " + str(chan.voltage) + "V")
Esempio n. 2
0
# #close the file
# file.close

# create the spi bus
spi = busio.SPI(clock=board.SCK, MISO=board.MISO, MOSI=board.MOSI)
 
# create the cs (chip select)
cs1 = digitalio.DigitalInOut(board.D22)
cs2 = digitalio.DigitalInOut(board.D27)
 
# create the mcp object
mcp1 = MCP.MCP3008(spi, cs1)
mcp2 = MCP.MCP3008(spi, cs2)
 
# create an analog input channel on pin 0
chan0 = AnalogIn(mcp1, MCP.P0)
chan1 = AnalogIn(mcp1, MCP.P1)
chan2 = AnalogIn(mcp1, MCP.P2)
chan3 = AnalogIn(mcp1, MCP.P3)
chan4 = AnalogIn(mcp1, MCP.P4)
chan5 = AnalogIn(mcp1, MCP.P5)
chan6 = AnalogIn(mcp1, MCP.P6)
chan7 = AnalogIn(mcp1, MCP.P7)
chan8 = AnalogIn(mcp2, MCP.P0)
chan9 = AnalogIn(mcp2, MCP.P1)
chan10 = AnalogIn(mcp2, MCP.P2)
chan11 = AnalogIn(mcp2, MCP.P3)
chan12 = AnalogIn(mcp2, MCP.P4)
chan13 = AnalogIn(mcp2, MCP.P5)
chan14 = AnalogIn(mcp2, MCP.P6)
chan15 = AnalogIn(mcp2, MCP.P7)
    except:

        sleep(15)
        continue

print("Selected {}".format(bulb.get_label()))

# set up sensors
# create the spi bus
spi = busio.SPI(clock=board.SCK, MISO=board.MISO, MOSI=board.MOSI)
# create the cs (chip select)
cs = digitalio.DigitalInOut(board.D5)
# create the mcp object
mcp = MCP.MCP3008(spi, cs)
# create an analog input channel on pin 0
chan0 = AnalogIn(mcp, MCP.P0)
chan1 = AnalogIn(mcp, MCP.P1)
chan2 = AnalogIn(mcp, MCP.P2)
chan3 = AnalogIn(mcp, MCP.P3)
chan4 = AnalogIn(mcp, MCP.P4)

client = mongo_setup(f)
db = client.mastersProject
# collection = db.datalog1        # Pi 1
collection = db.datalog2  # Pi 2
# collection1 = db.activitylog1   # Pi 1
collection1 = db.activitylog2  # Pi 2


def main():
Esempio n. 4
0
import board
import digitalio
import adafruit_mcp3xxx.mcp3008 as MCP
from adafruit_mcp3xxx.analog_in import AnalogIn
#import matplotlib.pyplot as plt
import numpy as np
import statistics

t0 = time.time()
t1 = 0
delay = 0.0001

spi = busio.SPI(clock=board.SCK, MISO=board.MISO, MOSI=board.MOSI)
cs = digitalio.DigitalInOut(board.D19)
mcp = MCP.MCP3008(spi, cs)
channel = AnalogIn(mcp, MCP.P0)

#######################################
voltList = []
voltListSize = 1000

timeList = []

while len(voltList) < voltListSize:
    reading = channel.voltage
    voltList.append(reading)
    #print(str(reading))
    timeList.append(time.time())
    #time.sleep(delay)

#for i in range(0,voltListSize) :
Esempio n. 5
0
def OD():
    global optical_density
    global media

    #setup the LED for optical density
    led = 12

    pi.set_mode(led, pigpio.ALT5)
    pi.set_PWM_range(led, 100)  #range is now 0-100
    pi.set_PWM_frequency(led, 10000)  #set the frequency

    # set up pins for peristaltic pumps for media
    en1 = 18  # media pump enable
    m_in = 25  # media in
    m_out = 24  # media out
    m_OD = 16  # OD pump
    GPIO.setup(en1, GPIO.OUT)
    GPIO.setup(m_in, GPIO.OUT)
    GPIO.setup(m_out, GPIO.OUT)
    GPIO.setup(m_OD, GPIO.OUT)
    GPIO.output(en1, False)
    GPIO.output(m_in, False)
    GPIO.output(m_out, False)
    GPIO.output(m_OD, False)

    # create an analog input channel on pin 1
    chan1 = AnalogIn(mcp, MCP.P0)  #OD

    raw = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

    #     while True:
    for d in range(1, 101):

        summation = 0
        # turn on the LED and motor
        #         GPIO.output(m_OD, True)
        pi.set_PWM_dutycycle(led, 5)

        # read 10 values at 0.5 sec intervals from the photoresistor
        for i in range(10):
            raw[i] = chan1.voltage
            time.sleep(0.5)

        pi.set_PWM_dutycycle(led, 0)  # turn off the LED
        GPIO.output(m_OD, False)  # and motor

        # go through and order the readings from smallest to largest
        for i in range(10):
            for j in range(i + 1, 10):
                if raw[i] > raw[
                        j]:  # go through and order the readings from smallest to largest
                    #temp = raw[i]
                    #raw[i] = raw[j]
                    #raw[i] = temp
                    raw[i], raw[j] = raw[j], raw[i]

        # average the middle six readings together
        for i in range(2, 8):
            summation += raw[i]
        average = summation / 6

        optical_density = round(average, 2)
        print(d, optical_density)

        # change out media if the OD is higher than the setpoint
        if optical_density > setpoint_OD:
            media = 'IN'
            GPIO.output(en1, True)
            GPIO.output(m_out, True)
            time.sleep(10)
            media = 'OUT'
            GPIO.output(m_out, False)
            GPIO.output(m_in, True)
            time.sleep(10)
            media = 'OFF'
            GPIO.output(en1, False)
            GPIO.output(m_in, False)

        time.sleep(.1 * 60)  # take OD every minute. Also allows for
Esempio n. 6
0
import busio
import digitalio
import board
import adafruit_mcp3xxx.mcp3008 as MCP
from adafruit_mcp3xxx.analog_in import AnalogIn

# Local Application Imports
from functions.writing_functions import make_dir, write_data

make_dir('files')

# create the spi bus
spi = busio.SPI(clock=board.SCK, MISO=board.MISO, MOSI=board.MOSI)

# create the cs (chip select)
cs = digitalio.DigitalInOut(board.D5)

# create the mcp object
mcp = MCP.MCP3008(spi, cs)


for i in range(0,30):
    airSensor = AnalogIn(mcp, MCP.P3)
    print(airSensor.value)
    sleep(1)

for i in range(0,30):
    iLED = AnalogIn(mcp, MCP.P2)
    print(iLED.value)
    sleep(1)
Esempio n. 7
0
def getAnalog(pin):  # Pin in range from 0-7
    chan = AnalogIn(mcp, pins[pin])
    return chan.voltage
Esempio n. 8
0
def getAnalogPercent(pin):
    chan = AnalogIn(mcp, pins[pin])
    return chan.voltage / 3.3
Esempio n. 9
0
import digitalio
import board
import adafruit_mcp3xxx.mcp3008 as MCP
from adafruit_mcp3xxx.analog_in import AnalogIn

# create the spi bus
spi = busio.SPI(clock=board.SCK, MISO=board.MISO, MOSI=board.MOSI)

# create the cs (chip select)
cs = digitalio.DigitalInOut(board.D5)

# create the mcp object
mcp = MCP.MCP3008(spi, cs)

# create an analog input channel on pin 0 for temperature
tempchan = AnalogIn(mcp, MCP.P0)

# create an analog input channel on pin 1 for humidity
humchan = AnalogIn(mcp, MCP.P1)

#create a telnet object for given ip and port
tn = telnetlib.Telnet("ip.address.of.LEDboard", "8080")

temp = 0
hum = 0

#sends updated value to LED board every 20 seconds
while 1:

    #read temp and humidity values
    temp = tempchan.value
Esempio n. 10
0
# Declaring that I am referencing GPIO Number
GPIO.setmode(GPIO.BCM)

print("Initializing relays...")
for i in range(len(relays)):
    GPIO.setup(relays[i], GPIO.OUT, initial=1)
    GPIO.output(relays[i], GPIO.HIGH)
    print("Relay at GPIO " + str(relays[i]) + " initialized...")

# Initiating the MCP3008 for analog inputs
spi = busio.SPI(clock=board.SCK, MISO=board.MISO, MOSI=board.MOSI)
cs = digitalio.DigitalInOut(board.D5)
mcp = MCP.MCP3008(spi, cs)
print("MCP3008 chip initialized...")
# Grabbing value from channel 0 on the MCP3008
channel0 = AnalogIn(mcp, MCP.P0)
# Grabbing value from channel 1 on the MCP3008
channel1 = AnalogIn(mcp, MCP.P1)
print("Analog input devices declared...")
time.sleep(1)

# Calibrated to each sensor
# Sensor 1, Sensor 2, etc
oldMin = [1.7724879835202563, 1.7724879835202563]
oldMax = [3.200126486610208, 2.9036575875486377]

# Create the range list
oldRange = []
for i in range(len(oldMin)):
    calc = oldMax[i] - oldMin[i]
    oldRange.append(calc)
Esempio n. 11
0
# Create the I2C interface.
i2c = busio.I2C(SCL, SDA)
# Create the SSD1306 OLED class.
# The first two parameters are the pixel width and pixel height.  Change these
# to the right size for your display!
disp = adafruit_ssd1306.SSD1306_I2C(128, 32, i2c)

# Create the SPI Bus
spi = busio.SPI(clock=board.SCK, MISO=board.MISO, MOSI=board.MOSI)
# Create the cs (chip select)
cs = digitalio.DigitalInOut(board.D8)
# Create the mcp object
mcp = MCP.MCP3008(spi, cs)
#create an analog input channel on  pin 0, 1 and 2
InputVoltage = AnalogIn(mcp, MCP.P2)
Button1 = AnalogIn(mcp, MCP.P0)
Button2 = AnalogIn(mcp, MCP.P1)

#create the fan object
Fan = digitalio.DigitalInOut(board.D25)
Fan.direction = digitalio.Direction.OUTPUT
#Control this pin by using Fan.value = True or Fan.value = False
ON_THRESHOLD = 62
OFF_THRESHOLD = 52

disp.fill(0)  #clear display
disp.show()
# Create blank image for drawing.
# Make sure to create image with mode '1' for 1-bit color.
width = disp.width
accel_z_1 = -1

accel_x_2 = -1
accel_y_2 = -1
accel_z_2 = -1

gyro_x_1 = -1
gyro_y_1 = -1
gyro_z_1 = -1

gyro_x_2 = -1
gyro_y_2 = -1
gyro_z_2 = -1

# MCP connected to D5 #
mcp5_p0 = AnalogIn(mcp5, MCP.P0)
mcp5_p1 = AnalogIn(mcp5, MCP.P1)
mcp5_p2 = AnalogIn(mcp5, MCP.P2)
mcp5_p3 = AnalogIn(mcp5, MCP.P3)
mcp5_p4 = AnalogIn(mcp5, MCP.P4)
mcp5_p5 = AnalogIn(mcp5, MCP.P5)
mcp5_p6 = AnalogIn(mcp5, MCP.P6)
mcp5_p7 = AnalogIn(mcp5, MCP.P7)

# MCP connected to D6 #
mcp6_p0 = AnalogIn(mcp6, MCP.P0)
mcp6_p1 = AnalogIn(mcp6, MCP.P1)
mcp6_p2 = AnalogIn(mcp6, MCP.P2)
mcp6_p3 = AnalogIn(mcp6, MCP.P3)
mcp6_p4 = AnalogIn(mcp6, MCP.P4)
mcp6_p5 = AnalogIn(mcp6, MCP.P5)
Esempio n. 13
0
from time import sleep
import busio
import digitalio
import board
import adafruit_mcp3xxx.mcp3008 as MCP
from adafruit_mcp3xxx.analog_in import AnalogIn

spi = busio.SPI(clock=board.SCK, MISO=board.MISO, MOSI=board.MOSI)
cs = digitalio.DigitalInOut(board.D5)
mcp = MCP.MCP3008(spi, cs)
chan_0 = AnalogIn(mcp, MCP.P0)
chan_1 = AnalogIn(mcp, MCP.P1)
while True:
    print(chan_1.value)
    print(chan_1.voltage)
    sleep(0.5)