#--------------------------------------------------------------------
#  Ú@MicroPython/CircuitPython݊@\[Xꎮ (2021/6/13)
#--------------------------------------------------------------------

#--------------------------------------
# XgP  LED _ŃvOɂ\[XR[ḧႢ(a)
#           MicroPython
#--------------------------------------
from machine import Pin
import utime

# LEDGP25ɐڑ
led = Pin(25, Pin.OUT)
while True:
    led.value(True)
    utime.sleep(1)
    led.value(False)
    utime.sleep(1)
#--------------------------------------

#--------------------------------------
# XgP  LED _ŃvOɂ\[XR[ḧႢ(b)
#           CircuitPython
#--------------------------------------
import board
import digitalio
import time

# {[hLEDGP25ɐڑ
led = digitalio.DigitalInOut(board.GP25)

# GP25o͂ɐݒ
led.direction = digitalio.Direction.OUTPUT
while True:
    led.value = True
    time.sleep(1)
    led.value = False
    time.sleep(1)
#--------------------------------------



#--------------------------------------
# XgQ  PIO gLED _ŃvOɂ\[ẌႢ(a)
#           MicroPython
#--------------------------------------
import rp2
from machine import Pin
@rp2.asm_pio(set_init = rp2.PIO.OUT_LOW)
def blink_LED():
    set(pins, 1)
    set(pins, 0) [18]

led_pin = Pin(25, Pin.OUT)
sm = rp2.StateMachine(0, blink_LED, set_base = led_pin, freq = 2000)
sm.active(1)
#--------------------------------------


#--------------------------------------
# XgQ  PIO gLED _ŃvOɂ\[ẌႢ(b)
#           CircuitPython
#--------------------------------------
import board
import rp2pio
import adafruit_pioasm
blink_LED = adafruit_pioasm.assemble(
    """
    set pins, 1
    set pins, 0 [18]
    """
)
sm = rp2pio.StateMachine(blink_LED, first_set_pin = board.LED, frequency=2000)
#--------------------------------------


#--------------------------------------
# XgR  BME280 𗘗pvO(a)
#           MicroPython(ESP32p)
#--------------------------------------
import utime
from machine import Pin
from machine import I2C
from bme280_int import BME280

BME280_ADDR = 0x76                   # BME280̃AhX:0x76
i2c = I2C(scl=Pin(21), sda=Pin(22), freq=9600)
device_list = i2c.scan()             # I2CoXXL

if not (BME280_ADDR in device_list): # BME280ڑĂ邱ƂmF
    print("I2C Scan Error!")
    sys.exit()
else:
    print("connected BME280(0x{:02x})".format(BME280_ADDR))
    bme280 = BME280(i2c = i2c)
while True:
    print(bme280.values)             # BME280̌vl擾
    utime.sleep(10)
#--------------------------------------


#--------------------------------------
# XgR  BME280 𗘗pvO(b)
#           CircuitPython
#--------------------------------------
import time
import board               # CircuitPythoñCuǉ
from busio import I2C      # CircuitPythoñCuɕύX
from adafruit_bme280 import Adafruit_BME280_I2C
                           # Adafruit񋟂Ă
                           # Ӌ@pCuɕύX

SCL = board.GP27           # I2C SCLpGP27w
SDA = board.GP26           # I2C SDApGP26w

BME280_ADDR = 0x76         # BME280I2CAhXw
i2c = I2C(SCL, SDA)        # I2CIuWFNg
bme280 = Adafruit_BME280_I2C(i2c, address=BME280_ADDR)
                           # BLE280p
                           #IuWFNg
bme280.sea_level_pressure = 1013.25 # CʋCݒ
while True:
    print("{:.2f}C, ".format(bme280.temperature), end="") # BME280IuWFNg
    print("{:.2f}hPa, ".format(bme280.pressure), end="")  # QƂāCxC
    print("{:.2f}%".format(bme280.relative_humidity))     # CCx擾C\
    time.sleep(10)
#--------------------------------------


#--------------------------------------
# XgR  BME280 𗘗pvO(c)
#           MicroPython(Picop)
#--------------------------------------
import utime
from machine import Pin
from machine import I2C
from bme280_int import BME280

BME280_ADDR = 0x76      # BME280̃AhX:0x76
I2C_ID = 1              # I2C1𗘗p
SCL = 27                # SCLpGP27w (I2C1 SCL)
SDA = 26                # SDApGP26w (I2C1 SDA)

i2c = I2C(I2C_ID, scl=Pin(SCL), sda=Pin(SDA), freq=9600) 
device_list = i2c.scan()             # I2CoXXL

if not (BME280_ADDR in device_list): # BME280ڑĂ邱ƂmF
    print("I2C Scan Error!")
    sys.exit()
else:
    print("connected BME280(0x{:02x})".format(BME280_ADDR))
    bme280 = BME280(i2c = i2c)
while True:
    print(bme280.values)             # BME280̌vl擾
    utime.sleep(10)
#--------------------------------------

