The Raspberry Pi Pico W packs Wi-Fi connectivity into a microcontroller board that costs under ₹500, making it one of the most affordable ways to build Raspberry Pi Pico W projects with wireless IoT capabilities. Unlike the full-sized Raspberry Pi, the Pico W runs MicroPython directly on bare metal — no OS needed, instant boot, and power consumption measured in milliwatts.
Table of Contents
- What Is the Raspberry Pi Pico W
- Getting Started: MicroPython Setup
- Project 1: Wi-Fi Temperature Logger
- Project 2: Smart Plug with Web Control
- Project 3: Weather Display Station
- Project 4: Wi-Fi Doorbell with Telegram Alerts
- Project 5: Plant Soil Moisture Monitor
- Power Saving and Deployment Tips
- Frequently Asked Questions
- Conclusion
What Is the Raspberry Pi Pico W
The Pico W is built around the RP2040 microcontroller — a dual-core Arm Cortex-M0+ running at 133 MHz with 264KB RAM. The “W” adds an Infineon CYW43439 chip for 802.11n Wi-Fi (2.4 GHz) and Bluetooth 5.2 (BLE).
Key specifications:
- Processor: Dual-core Arm Cortex-M0+ at 133 MHz
- RAM: 264KB SRAM
- Flash: 2MB on-board
- Wi-Fi: 802.11n (2.4 GHz)
- Bluetooth: BLE 5.2
- GPIO: 26 multi-function pins (I2C, SPI, UART, ADC)
- ADC: 3 analogue inputs (12-bit)
- Power: USB or 1.8-5.5V via VSYS pin
- Price: Under ₹500
The Pico W is not a computer — it is a microcontroller. You cannot run Linux, a web browser, or a desktop on it. What it does best is read sensors, control actuators, and communicate over Wi-Fi, all while consuming minimal power. This makes it perfect for battery-powered IoT devices that need to run for weeks or months.
Getting Started: MicroPython Setup
MicroPython is a lean implementation of Python 3 designed for microcontrollers. It runs directly on the Pico W without any operating system.
Step 1: Download the latest MicroPython UF2 firmware from micropython.org.
Step 2: Hold the BOOTSEL button on the Pico W, plug it into your computer via USB. It appears as a USB drive. Drag and drop the UF2 file onto the drive. The Pico reboots automatically with MicroPython installed.
Step 3: Install Thonny IDE (free, available for Windows, Mac, Linux). Open Thonny, select “MicroPython (Raspberry Pi Pico)” as the interpreter. You now have a REPL (interactive Python console) connected to your Pico W.
Connecting to Wi-Fi (reusable code):
import network
import time
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect('YourWiFiName', 'YourWiFiPassword')
while not wlan.isconnected():
print('Connecting...')
time.sleep(1)
print('Connected:', wlan.ifconfig()[0])
Save this as a function in a wifi.py file on the Pico — you will reuse it in every project.
Project 1: Wi-Fi Temperature Logger
Log temperature readings to a cloud dashboard every 5 minutes. This is the “Hello World” of IoT — simple, useful, and teaches the full sensor-to-cloud pipeline.
Parts needed (under ₹600 total):
- Raspberry Pi Pico W — ₹450
- DHT11 temperature/humidity sensor — ₹60
- Breadboard and jumper wires — ₹80
Wiring: DHT11 VCC → 3.3V, GND → GND, Data → GP15.
Code:
import dht
import machine
import urequests
import time
sensor = dht.DHT11(machine.Pin(15))
# Connect to Wi-Fi first (use the wifi.py function above)
while True:
sensor.measure()
temp = sensor.temperature()
humidity = sensor.humidity()
# Send to ThingSpeak (free IoT dashboard)
url = f'https://api.thingspeak.com/update?api_key=YOUR_KEY&field1={temp}&field2={humidity}'
urequests.get(url)
print(f'Temp: {temp}°C, Humidity: {humidity}%')
time.sleep(300) # Log every 5 minutes
ThingSpeak (by MathWorks) provides a free cloud dashboard that visualises your data as graphs. You can also use Blynk, Adafruit IO, or your own MQTT broker.
Project 2: Smart Plug with Web Control
Control any electrical appliance from your phone using a relay module connected to the Pico W. The Pico hosts a tiny web server that shows an on/off button.
Parts needed (under ₹700 total):
- Raspberry Pi Pico W — ₹450
- 5V relay module (single channel) — ₹40
- Jumper wires — ₹30
- USB power supply — ₹150
Safety warning: This project involves mains electricity (230V AC in India). If you are not comfortable working with mains wiring, use a pre-built relay board with proper insulation, or limit the project to low-voltage DC devices (LED strips, fans powered by USB). Never leave exposed mains wiring accessible.
Wiring: Relay IN → GP16, VCC → VBUS (5V), GND → GND.
Code (web server):
import machine
import network
import socket
import time
relay = machine.Pin(16, machine.Pin.OUT)
relay.value(0) # Start OFF
# Connect Wi-Fi here
addr = socket.getaddrinfo('0.0.0.0', 80)[0][-1]
s = socket.socket()
s.bind(addr)
s.listen(1)
html = '''
Smart Plug
Status: {status}
'''
while True:
cl, addr = s.accept()
request = cl.recv(1024).decode()
if '/on' in request:
relay.value(1)
elif '/off' in request:
relay.value(0)
status = 'ON' if relay.value() else 'OFF'
cl.send('HTTP/1.0 200 OKrnContent-type: text/htmlrnrn')
cl.send(html.format(status=status))
cl.close()
Open http://pico-ip-address on your phone. You get a simple web page with ON/OFF buttons. This is a foundational project — from here, you can add scheduling, power monitoring, or integration with Home Assistant via MQTT.
Project 3: Weather Display Station
Fetch live weather data from the internet and display it on a small OLED screen. The Pico W pulls data from the OpenWeatherMap API and shows your city’s current temperature, humidity, and conditions.
Parts needed (under ₹900 total):
- Raspberry Pi Pico W — ₹450
- 0.96″ OLED display (SSD1306, I2C) — ₹250
- Breadboard and jumper wires — ₹80
Wiring: OLED SDA → GP0 (I2C0 SDA), SCL → GP1 (I2C0 SCL), VCC → 3.3V, GND → GND.
Get a free API key from OpenWeatherMap. The free tier allows 60 calls per minute — more than enough for updating every 10 minutes.
The code fetches JSON weather data over HTTPS, parses it, and renders the current temperature, humidity, and weather description on the OLED. You can expand this to show a 3-day forecast, AQI data, or UV index — all available from the same API.
Mount the finished project on your desk, kitchen wall, or near your front door. The small OLED is easy to read and the Pico W draws so little power that it costs nothing to run 24/7.
Project 4: Wi-Fi Doorbell with Telegram Alerts
Build a smart doorbell that sends a Telegram notification to your phone when someone presses the button. No monthly subscription, no cloud dependency — just a Pico W, a push button, and a Telegram bot.
Parts needed (under ₹550 total):
- Raspberry Pi Pico W — ₹450
- Push button — ₹5
- 10K resistor (pull-down) — ₹2
- Buzzer (optional) — ₹20
Setup Telegram bot: Message @BotFather on Telegram, create a new bot, and note the API token. Send a message to your bot, then use the Telegram API to get your chat ID.
Wiring: Button between GP14 and 3.3V, with 10K pull-down resistor from GP14 to GND.
When the button is pressed, the Pico W sends an HTTP POST request to the Telegram Bot API. You receive a notification on your phone within 1-2 seconds. Add a buzzer on GP15 for a local chime.
This project demonstrates interrupt handling, HTTP requests, and API integration — skills that apply to countless IoT applications. You can expand it with a camera module for doorbell photos, or log visitor timestamps to a Google Sheet.
Project 5: Plant Soil Moisture Monitor
Monitor your plant’s soil moisture and get notified when it needs watering. This is particularly useful in Indian summers when soil dries out quickly, or for balcony and terrace gardens where manual checking is tedious.
Parts needed (under ₹600 total):
- Raspberry Pi Pico W — ₹450
- Capacitive soil moisture sensor — ₹80
- Jumper wires — ₹30
Wiring: Moisture sensor analogue output → GP26 (ADC0), VCC → 3.3V, GND → GND.
Why capacitive over resistive: Resistive soil moisture sensors corrode within weeks because they pass current through the soil. Capacitive sensors use a capacitance-based measurement and last for years. Always use capacitive sensors for any long-term deployment.
Code outline:
import machine
import urequests
import time
moisture = machine.ADC(26)
# Calibrate: note ADC reading in dry air and in water
DRY = 50000 # Reading when sensor is dry
WET = 20000 # Reading when sensor is submerged
while True:
raw = moisture.read_u16()
percentage = max(0, min(100, (DRY - raw) * 100 // (DRY - WET)))
if percentage < 30: # Threshold: needs watering
# Send Telegram/email notification
msg = f'Plant needs water! Moisture: {percentage}%'
# urequests.post(telegram_url, json={'chat_id': CHAT_ID, 'text': msg})
print(f'Moisture: {percentage}%')
time.sleep(3600) # Check every hour
For a complete garden monitoring setup, add multiple sensors (the Pico W has 3 ADC channels) and a small solar panel for power. The Pico W’s deep sleep mode reduces power consumption to microamps, enabling weeks of battery operation.
Power Saving and Deployment Tips
Deep sleep: The Pico W supports dormant mode where the RP2040 consumes under 1mA. Use machine.deepsleep(ms) to sleep between sensor readings. For a temperature logger that reads every 15 minutes, deep sleep enables months of operation on a battery pack.
Power sources:
- USB power bank: A 10,000 mAh bank powers a Pico W for days (active) or weeks (with deep sleep)
- 18650 battery: Connect via VSYS pin (1.8-5.5V accepted). A single 18650 cell (3.7V, 2600mAh) lasts weeks with deep sleep
- Solar panel: A 5V/1W solar panel with a small LiPo battery provides indefinite operation outdoors
Weatherproofing: For outdoor deployment in Indian conditions (monsoon rain, 45°C+ summer heat), use a waterproof junction box from any local electrical shop (₹50-100). Drill a small hole for the sensor cable and seal with silicone.
OTA updates: MicroPython supports over-the-air updates through the web REPL. Enable it to update code remotely without physically connecting to the Pico W.
Frequently Asked Questions
What is the difference between Raspberry Pi Pico W and Raspberry Pi 5?
They are completely different products. The Pico W is a microcontroller (like Arduino) — it runs one program in a loop, has no OS, and consumes milliwatts. The Pi 5 is a full computer running Linux, capable of browsing the web, running Docker, and multi-tasking. Use the Pico W for dedicated sensor/IoT tasks; use the Pi 5 when you need a computer.
Can I use C/C++ instead of MicroPython?
Yes. The Pico SDK supports C/C++ for maximum performance. MicroPython is easier for prototyping but runs slower. For production IoT devices where every milliamp and microsecond matters, C/C++ is the better choice. For learning and hobby projects, MicroPython is recommended.
Does the Pico W support 5 GHz Wi-Fi?
No. The CYW43439 chip only supports 2.4 GHz (802.11b/g/n). This is adequate for IoT applications where data volumes are small. The 2.4 GHz band also has better range and wall penetration than 5 GHz.
How do I power the Pico W without USB?
Feed 1.8V to 5.5V into the VSYS pin. A single 18650 lithium cell (3.7V nominal) works directly. For solar applications, use a TP4056 charge controller between the solar panel, battery, and VSYS pin. Never connect voltage to both USB and VSYS simultaneously.
Can I use multiple sensors with one Pico W?
Yes. The Pico W has 26 GPIO pins, 3 ADC channels, 2 I2C buses, 2 SPI buses, and 2 UART interfaces. A typical project can handle 5-10 sensors simultaneously. For I2C devices (most modern sensors), you can connect multiple devices on the same bus using different I2C addresses.
Conclusion
The Raspberry Pi Pico W makes IoT accessible at a price point that removes any barrier to entry. For under ₹500 for the board alone — or under ₹1,000 with sensors and components — you can build practical wireless devices that solve real problems. The five projects here cover the fundamentals: sensor reading, web servers, API integration, notifications, and analogue measurement.
Start with the temperature logger to learn the basics, then build on those skills with progressively more complex projects. The MicroPython ecosystem has libraries for virtually every sensor and communication protocol you will need.
Pick up your Pico W and components from Zbotic’s Raspberry Pi collection. We stock all Pico variants with fast shipping across India.
Add comment