Проект 1: Мигающий светодиод с настраиваемыми шаблонами (подходит для начинающих)
Настройка оборудования
Для этого проекта вам понадобятся Raspberry Pi Pico, макетная плата, светодиод, резистор на 220 Ом и соединительные провода. Подключите анод светодиода к выводу GPIO 25 через резистор, а катод — к выводу заземления на Pico. Такая схема обеспечивает защиту светодиода от перегрузки по току с помощью резистора и правильное подключение к выводу GPIO Pico для управления.

Реализация кода
С помощью MicroPython мы создадим программу, которая будет заставлять светодиод мигать по-разному. Сначала импортируем необходимые модули:
from machine import Pin, Timer
Затем инициализируйте вывод светодиода:
led = Pin(25, Pin.OUT)
tim = Timer()
def tick(timer):
led.toggle()
tim.init(freq=2, mode=Timer.PERIODIC, callback=tick)
Тестирование и настройка
Проект 2: Система контроля температуры (средний уровень)
Требования к оборудованию

Разработка кода
import machine
import onewire
import ds18x20
import time
ds_pin = machine.Pin(18)
ds_sensor = ds18x20.DS18X20(onewire.OneWire(ds_pin))
roms = ds_sensor.scan()
print('Found DS devices: ', roms)
while True:
ds_sensor.convert_temp()
time.sleep_ms(750)
for rom in roms:
print(ds_sensor.read_temp(rom))
time.sleep(2)
Регистрация и отображение данных
from machine import I2C, Pin
import ssd1306
i2c = I2C(0, sda=Pin(0), scl=Pin(1), freq=400000)
oled = ssd1306.SSD1306_I2C(128, 32, i2c)
while True:
ds_sensor.convert_temp()
time.sleep_ms(750)
for rom in roms:
temp = ds_sensor.read_temp(rom)
print(temp)
oled.fill(0)
oled.text(f"Temp: {temp} C", 0, 0)
oled.show()
time.sleep(2)
file = open('temperatures.txt', 'w')
while True:
ds_sensor.convert_temp()
time.sleep_ms(750)
for rom in roms:
temp = ds_sensor.read_temp(rom)
print(temp)
file.write(f"{time.time()},{temp}\n")
file.flush()
time.sleep(2)
Проект 3: Загрузчик данных IoT (продвинутый уровень)
Настройка оборудования

Интеграция кода и IoT
import network
ssid = 'your_SSID'
password = 'your_PASSWORD'
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(ssid, password)
while not wlan.isconnected():
pass
print('Connected to WiFi')
import bme280_i2c
i2c = machine.I2C(0, sda=machine.Pin(8), scl=machine.Pin(9))
bme = bme280_i2c.BME280_I2C(i2c)
import urequests
def upload_data(temperature, humidity, pressure):
url = 'https://industrial.api.ubidots.com/api/v1.6/devices/your_device_label'
headers = {'X-Auth-Token': 'your_token', 'Content-Type': 'application/json'}
data = '{"temperature": %s, "humidity": %s, "pressure": %s}' % (temperature, humidity, pressure)
response = urequests.post(url, headers=headers, data=data)
if response.status_code == 200:
print('Data uploaded successfully')
else:
print('Error uploading data')
response.close()
while True:
temperature, pressure, humidity = bme.values
temperature = float(temperature.strip(' C'))
humidity = float(humidity.strip(' %'))
pressure = float(pressure.strip(' hPa'))
upload_data(temperature, humidity, pressure)
time.sleep(60)
Тестирование и масштабируемость
Проекты Pico для изучения PIO, USB, датчиков и управления
Полезный проект раскрывает одну аппаратную идею и позволяет измерить результат. Сначала выберите точную плату семейства Pico, поскольку процессор, радио, память, выводы и поддержка различаются; внешние интерфейсы проектируйте по документированным логическим пределам 3,3 В.
- Начните со сбора: записывайте калиброванный датчик с метками времени и заданным интервалом.
- Изучите PIO: создайте или примите чувствительный к времени интерфейс и проверьте его на точках.
- Сделайте устройство USB: реализуйте небольшую пользовательскую или последовательную функцию с понятным переподключением.
- Добавьте регулирование: управляйте скоростью, светом или температурой безопасного объекта с ограниченным выходом.
- Спроектируйте макет: предусмотрите развязку, уровни, защиту разъёмов, контрольные точки и воспроизводимую сборку.




