Пример #1
0
 def __init__(self, ow_bus, serial_number, temperature_offset, retries=5):
     ow_devices = ow_bus.scan()
     ow_sns = [ow_device.rom for ow_device in ow_devices]
     device_index = ow_sns.index(serial_number)
     self._sensor = DS18X20(ow_bus, ow_devices[device_index])
     self._sensor.resolution = 12
     self._temp_offset = temperature_offset
     self._retries = retries
Пример #2
0
import time
import board
from adafruit_onewire.bus import OneWireBus
from adafruit_ds18x20 import DS18X20

# Initialize one-wire bus on board D5.
ow_bus = OneWireBus(board.GP2)
# Scan for sensors and grab them all
ds18 = [DS18X20(ow_bus, found) for found in ow_bus.scan()]
# 12-bit resolution (default)
ds18.resolution = 10

# read (request) the temperature every 5 seconds
TEMPERATURE_DELAY = 5

# time when the next read should occur.
ds18_next = time.monotonic()
# should we start the async read or do the actual read ?
ds18_do_read = False
# delay for async read (default, real value will be set later)
ds18_async_delay = 1

# Main loop to print the temperature every 5 second.
while True:
    now = time.monotonic()

    # Is it time to read ?
    if now > ds18_next:
        # if we did request the temperature, now do the read
        if ds18_do_read:
            # fetch the temperatures from the sensor
Пример #3
0
import board
import busio
import digitalio
import time
from adafruit_onewire.bus import OneWireBus
from adafruit_ds18x20 import DS18X20

# Initialize one-wire bus on board pin D5.
ow_bus = OneWireBus(board.D5)

ds18_bus = ow_bus.scan()
print(ds18_bus)

ds18 = []
for probe in ds18_bus:
    print(probe)
    ds18.append(DS18X20(ow_bus, probe))

print(ds18)
# Simple demo of printing the temperature from the first found DS18x20 sensor every second.
# Author: Tony DiCola

# A 4.7Kohm pullup between DATA and POWER is REQUIRED!

import time
import board
from adafruit_onewire.bus import OneWireBus
from adafruit_ds18x20 import DS18X20

# Initialize one-wire bus on board pin D5.
ow_bus = OneWireBus(board.D5)

# Scan for sensors and grab the first one found.
ds18 = DS18X20(ow_bus, ow_bus.scan()[0])

# Main loop to print the temperature every second.
while True:
    print("Temperature: {0:0.3f}C".format(ds18.temperature))
    time.sleep(1.0)
import time
import board
import simpleio
import neopixel

from adafruit_onewire.bus import OneWireBus
from adafruit_ds18x20 import DS18X20

heartbeat = simpleio.DigitalOut(board.D13)
heartbeat.value = True

# Initialize one-wire bus on board pin D5.
ow_bus = OneWireBus(board.D5)

# Scan for sensors and grab the first one found.
ds18_0 = DS18X20(ow_bus, ow_bus.scan()[0])
ds18_1 = DS18X20(ow_bus, ow_bus.scan()[1])
# devices = ow_bus.scan()
# for device in devices:
#     print("ROM = {} \tFamily = 0x{:02x}".format([hex(i) for i in device.rom], device.family_code))

# SetUp NeoPixels
tempLEDPin = board.A1
numLED = 16
ORDER = neopixel.GRB
tempLED = neopixel.NeoPixel(tempLEDPin, numLED, brightness=0.2, auto_write=False, pixel_order=ORDER)

# SetUp temp range and color range.  range for computer: 25 - 65 or 70?
minBTemp = 21
maxBTemp = 27
# import midi_testing_stuff

# A 4.7Kohm pullup between DATA and POWER is REQUIRED!
import time
import board
from adafruit_onewire.bus import OneWireBus
from adafruit_ds18x20 import DS18X20

# Initialize one-wire bus on board D5.
ow_bus = OneWireBus(board.GP2)
# Scan for sensors and grab them all
devices = ow_bus.scan()
print(devices)
ds18 = [DS18X20(ow_bus, found) for found in devices]

# Main loop to print the temperature every second.
while True:
    temperature = sum(ds.temperature for ds in ds18) / len(ds18)
    print("Temperature: {0:0.3f}C".format(temperature))
    print(tuple(ds.temperature for ds in ds18))
    time.sleep(.1)
Пример #7
0
import board
import time
from adafruit_onewire.bus import OneWireBus
from adafruit_ds18x20 import DS18X20
import digitalio

bus = OneWireBus(board.D5)
sensor = DS18X20(bus, bus.scan()[0])

rele = digitalio.DigitalInOut(board.D6)
rele.direction = digitalio.Direction.OUTPUT

while True:
    t = sensor.temperature
    print('Temperatura: {0:0.3f} °C'.format(t))

    if t < 60:
        rele.value = False
    else:
        rele.value = True

    time.sleep(1.0)
Пример #8
0
#构建I2C对象
i2c = busio.I2C(board.SCK, board.MOSI)

#构建oled对象,01Studio配套的OLED地址为0x3C
display = adafruit_ssd1306.SSD1306_I2C(128, 64, i2c, addr=0x3C)

#清屏
display.fill(0)
display.show()

# 初始化单总线对象,引脚为D5.
ow = OneWireBus(board.D5)

# 搜索传感器,返回第1个
ds = DS18X20(ow, ow.scan()[0])

while True:

    temp = round(ds.temperature, 2)  #保留2位小数

    display.fill(0)  #清屏
    display.text('01Studio', 0, 0, 1, font_name='font5x8.bin')
    display.text('Temp Test', 0, 20, 1, font_name='font5x8.bin')
    display.text(str(temp) + ' C', 0, 40, 1, font_name='font5x8.bin')
    display.show()

    print(str(temp) + ' C')

    time.sleep(1)
Пример #9
0
import time
import board
from adafruit_onewire.bus import OneWireBus, OneWireAddress
from adafruit_ds18x20 import DS18X20

# !!!! REPLACE THESE WITH ROM CODES FOR YOUR SENSORS !!!!
ROM1 = b"(\xbb\xfcv\x08\x00\x00\xe2"
ROM2 = b"(\xb3t\xd3\x08\x00\x00\x9e"
ROM3 = b"(8`\xd4\x08\x00\x00i"
# !!!! REPLACE THESE WITH ROM CODES FOR YOUR SENSORS !!!!

# Initialize one-wire bus on board pin D5.
ow_bus = OneWireBus(board.D5)

# Uncomment this to get a listing of currently attached ROMs
# for device in ow_bus.scan():
#     print(device.rom)

# Use pre-determined ROM codes for each sensors
temp1 = DS18X20(ow_bus, OneWireAddress(ROM1))
temp2 = DS18X20(ow_bus, OneWireAddress(ROM2))
temp3 = DS18X20(ow_bus, OneWireAddress(ROM3))

# Main loop to print the temperatures every second.
while True:
    print("Temperature 1 = {}".format(temp1.temperature))
    print("Temperature 2 = {}".format(temp2.temperature))
    print("Temperature 3 = {}".format(temp3.temperature))
    print("-" * 20)
    time.sleep(1)
Пример #10
0
latitude = data['latitude']
longitude = data['longitude']
# Initialize one-wire bus on board pin D5.
ow_bus = OneWireBus(board.A3)
oneWire = ow_bus.scan()

# Scan for sensors and grab the first one found.
sensors = []

#Fill sensors array with oneWire objects
for i, d in enumerate(oneWire):
    serial = ""
    for byte in d.serial_number:
        #print("{:02x}".format(byte), end='')
        serial = serial + "{:02x}".format(byte)
    sensor = {"Serial Number": serial, "ow": DS18X20(ow_bus, ow_bus.scan()[i])}
    sensors.append(sensor)
    t = '{0:0.3f}'.format(DS18X20(ow_bus, ow_bus.scan()[i]).temperature)
    ds18 = DS18X20(ow_bus, ow_bus.scan()[i])
    ds18.resolution = 12

JSON_POST_URL = "https://udsensors.tk/api/Feather/"

# If you are using a board with pre-defined ESP32 Pins:
esp32_cs = DigitalInOut(board.D13)
esp32_ready = DigitalInOut(board.D11)
esp32_reset = DigitalInOut(board.D12)

spi = busio.SPI(board.SCK, board.MOSI, board.MISO)
esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset)