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
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
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)
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)
#构建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)
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)
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)