One of the challenges in development of embedded systems is to cope both with hardware and software components. Often is their integration cumbersome due to their incompatibilities, different specifications and different approaches in their development. In this paper we present a component-based technology we have developed for building distributed systems consisting of both embedded hardware devices and software written in high-level programming languages. To obtain a uniform view on hardware and software we use Universal Plug and Play (UPnP) technology for the communication between these parts of the system. Our technology consists of a component model that allows us to treat UPnP devices as components, and a run-time framework that supports this component model when the system is deployed. To evaluate the principles we have developed a prototype tool that implements the technology and demonstrated a feasibility of the approach.