A Raspberry Pi 2 Model B can serve as the hub in a Windows 10 IoT Core home-automation project, while Arduino UNO boards or I2C relay and port-expander boards handle room-level inputs and outputs. Sensors report conditions such as motion, temperature, humidity, or light; relays switch connected devices. The approach is documented in projects from 2015 and 2017, so treat it as a historical maker design rather than assume its software or parts are currently supported or easy to buy.
How the Raspberry Pi 2 home-automation hub works
The Pi runs Windows 10 IoT Core and coordinates the system. In the room-controller design described by Anurag S. Vasanwala, each room has an Arduino UNO acting as an I2C slave. The Arduino reads that room’s sensors and drives relay channels for loads such as lights, fans, or sockets. The Pi communicates with the room boards over I2C and the controller software can address a load by a room-and-device identifier, such as R1/Dev0.
In this arrangement, the Pi is the central controller, not the board directly connected to every sensor and relay. The Arduino boards distribute input and output around the home. Assigning each room controller a distinct I2C slave address lets the software distinguish them; a separate room/device map identifies the individual loads the controller is meant to operate.
Christian Kratky’s separate implementation uses the same broad hub-and-actuator pattern but connects I2C relay and port-expander boards to the Pi instead of placing an Arduino UNO in every room. Its Windows 10 IoT background task works with a web app, logging, and Azure integration. These are two different implementations, not interchangeable wiring diagrams.
Free tools Windows power users keep installed
One-click scans. No signup required.
#1 Best Overall
- SMART HOME LEARNING KIT--This kit combines the most common electronic components of smart home projects,developed specially for those beginners who are interested in Arduino and raspberry pi DIY.
- THE PROFESSIONAL SMART HOME KIT--This has 16 sensors modules and delicately selected sensors to detect temperature, humidity, sound, light, infrared, motion, flame,vibration,digital touch, air pressure and many other commonly-used sensors modules.
- THE MOST COMPLETE SMART HOME KIT--This universal kit are compatible for Arduino UNO R3 / Mega2560 / Mega328 /Nano / Raspberry Pi, it could DIY 16 projects according to your need.
- HIGH QUALITY GUARANTEE--We eliminate many old-fashioned sensors which have low reliability and duplicate function as other sensor in the kit, the kookye modules sensor kits are choosed carefully for our user.
- DETAILED TUTORIAL ON OUR WEBSITE--Our website provide step-by-step instruction, detailed circuit connection graph/video, verified sample code and library package which can save lot of user's research time and speed up the learning progress.
Choose a documented topology
| Design | Room and switching hardware | Documented inputs | Interface and telemetry |
|---|---|---|---|
| Anurag S. Vasanwala (2015) | Arduino UNO per room; Arduino boards act as I2C slaves and control relays. | PIR motion, LM35 temperature, and LDR light sensors. | Local controller; web and Azure extensions are described as further possibilities rather than established features of this implementation. |
| Christian Kratky (2015) | I2C relay and port-expander boards connected to the Raspberry Pi 2. | DHT22 temperature/humidity sensors, with motion and reed inputs also described. | Windows 10 IoT background task, web app, logging, and Azure integration. |
Choose an Arduino-per-room layout when you want room-level boards to collect sensor readings and control their own relays. A direct I2C relay or port-expander layout avoids that per-room Arduino layer, but its hardware and software follow Kratky’s project rather than Vasanwala’s. Do not combine their code or wiring assumptions without checking the documentation for each implementation.
Parts and development tools
- Hub: Raspberry Pi 2 Model B with suitable power, storage, and a case.
- Room controllers, for the Arduino design: one Arduino UNO for each room represented in the multi-room layout.
- Switching hardware: relay channels, either driven through the room’s Arduino or provided by I2C relay/port-expander hardware.
- Sensors: the Vasanwala design uses PIR motion, LM35 temperature, and LDR light sensors. Kratky’s project uses DHT22 temperature/humidity sensing and describes motion and reed inputs.
- Prototyping supplies: breadboard, jumper wires, and suitable interface and protection components for the modules you select.
- Software tools: Windows 10 IoT Core, Visual Studio 2015 with UWP tooling, the Arduino IDE for programming Arduino boards, and a PowerShell deployment workflow.
These are parts and tools named in the historical implementations, not a guarantee that a particular current listing will work with them. Confirm compatibility, electrical ratings, and software availability for the exact board and module before purchasing or wiring.
Rank #2
- Includes Raspberry Pi 5 with 2.4Ghz 64-bit quad-core CPU (8GB RAM)
- Includes 128GB Micro SD Card pre-loaded with 64-bit Raspberry Pi OS, USB MicroSD Card Reader
- CanaKit Turbine Black Case for the Raspberry Pi 5
- CanaKit Low Noise Bearing System Fan
- Mega Heat Sink - Black Anodized
Build the system in stages
- Prepare the hub. Install Windows 10 IoT Core on the Raspberry Pi 2 and connect it to the network. The project’s deployment workflow depends on a Windows IoT development environment; the cited toolchain is Visual Studio 2015 and UWP tooling.
- Choose and map the room topology. Decide whether each room will have an Arduino UNO or whether the system will use I2C relay and port-expander boards. For Arduino rooms, assign every board a unique I2C slave address and record it. Create a consistent room/device map, such as R1/Dev0, so controller software can identify a particular load.
- Connect and program the room hardware. For the Arduino design, program each UNO to act as an I2C slave, read its selected sensors, and control its relay channels. Connect sensors to the appropriate Arduino inputs and relays to the loads according to the modules’ specifications. In the direct-expander design, follow the chosen relay or port-expander board’s interface and project-specific setup.
- Deploy the Windows IoT controller. Use the project’s Visual Studio solution and deployment workflow to install the controller or background task on the Pi. If using Kratky’s implementation, its project also includes a web app and logging components; those should be treated as part of that project’s software rather than assumed features of every Windows IoT automation hub.
- Add and test one rule at a time. Start with a small, observable behavior—for example, a motion event that requests a light relay to switch, or an LDR threshold that changes a light state. Verify the sensor input, device address, and relay output independently before adding more rooms or rules.
What to plan before adding rooms or appliances
Keep bus and device addressing explicit
I2C is the communication path between the Pi and the addressed boards in these designs. Keep a written map of each slave address and each room/device identifier; a controller cannot reliably target an intended load if the software’s map and the physical boards disagree. The projects establish the use of distinct room addresses, but do not supply a universal address plan for every possible collection of boards.
Separate sensing from switching
PIR, LDR, temperature, humidity, and reed sensors provide inputs; the relay hardware performs switching. A sensor reading does not itself make an appliance safe to control. Verify that the chosen relay and interface components are rated for the connected load and installed appropriately. Mains-voltage wiring can cause fire, injury, or death; do not prototype exposed mains connections on a breadboard, and have fixed mains wiring handled by a qualified electrician.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Repair Windows errors before they cause bigger problems3Scan for outdated or missing drivers - takes under a minuteRank #3
Treat extensions as separate work
Motion-triggered lighting and light-level thresholds are natural rules for the listed sensors. Timed schedules, RF or IR links, and mobile or cloud control are enhancements, not capabilities to assume merely because the Pi runs the hub software. Kratky’s project specifically documents a web app, logging, and Azure integration; that does not establish that the other implementation includes them.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.What this project means for a build today
The documented workflows are tied to Raspberry Pi 2-era Windows 10 IoT Core and Visual Studio 2015/UWP development. The project descriptions establish how their authors assembled the systems at the time, but do not establish current availability of boards, compatible software downloads, or ongoing Windows 10 IoT Core support. Before committing to this stack, verify that you can obtain the required images and development tools, deploy to your exact Pi 2, and source compatible modules. If those prerequisites cannot be confirmed, the historical architecture can still help explain distributed home automation, but it is not by itself a current build guide.
Quick Recap
Best Value
- Includes Raspberry Pi 4 4GB Model B with 1.5GHz 64-bit quad-core CPU (4GB RAM)
- Includes Pre-Loaded 32GB EVO+ Micro SD Card (Class 10), USB MicroSD Card Reader
- CanaKit Premium High-Gloss Raspberry Pi 4 Case with Integrated Fan Mount, CanaKit Low Noise Bearing System Fan
- CanaKit 3.5A USB-C Raspberry Pi 4 Power Supply (US Plug) with Noise Filter, Set of Heat Sinks, Display Cable - 6 foot (Supports up to 4K60p)
- CanaKit USB-C PiSwitch (On/Off Power Switch for Raspberry Pi 4)
Rank #4
- Complete Project-Based Learning Path – Build 13 progressive projects (LED blink → button control → PIR motion sensor → music playback → motorized doors/windows → SK6812 RGB lighting → fan control → LCD display → gas alarm → temperature/humidity monitor → RFID door unlock → Morse code access → WiFi control → mobile APP remote control). Each project builds on the previous one, ensuring you understand both the electronics and the programming logic behind every smart home feature.
- Master Two Industry-Standard Languages – Learn to code in both Arduino C++ and MicroPython with 13 detailed tutorials for each language. Compare how the same hardware behaves under different programming approaches – a valuable skill for any aspiring engineer. Perfect for classrooms teaching multiple coding languages or self-learners who want flexibility.
- Build a Real WiFi-Controlled Smart Home – Assemble the wooden house structure and integrate sensors to create a functioning smart home system. Control lights, fans, door servos, and RGB lighting directly from your mobile APP (iOS/Android) . Experience how IoT works in real life – from manual control to automated responses based on temperature, humidity, motion, and gas detection.
- Comprehensive Online Wiki with No Guesswork – Our detailed online tutorials (also accessible via the packaging) include wiring diagrams, full code explanations, and step-by-step assembly guides for every project. Whether you're a complete beginner or a teacher preparing lessons, the structured content eliminates confusion and helps you succeed from project 1.
- Everything You Need to Get Started – (TIPS: Batteries are NOT Included)This kit includes the ESP32 development board, expansion board, wooden house parts, all sensors and modules (DHT11, PIR motion, gas sensor, RFID, SK6812 RGB, servo motors, fan, LCD1602, etc.), and connection cables. NOTE: 6x AA batteries are required (NOT Included). The kit is unassembled – you'll build it yourself following our online tutorials, making the learning experience truly hands-on.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

