The blockchain and the Internet of Things (IoT) are emerging technologies. The blockchain can be described as a public, distributed ledger, which is built on a peer-to-peer (P2P) network. The IoT is an interconnection of sensing and actuating devices where information can be shared across platforms. Generally, it can be said that these two technologies operate in different application fields. However, the blockchain has the potential to solve challenges of the IoT. Despite of the popularity, the amount of approaches to use the blockchain in the IoT is limited. Additionally, the existing approaches focus on basic questions instead of using the blockchain technology in more complex applications. Thus, this thesis deals with the question how to use the blockchain in the IoT from a software engineering perspective. During the course of this thesis we design and implement the blockchain-IoT application which uses Ethereum. The application is able to collect data from sensors and distribute the data via two communication channels. The core of the application is a middleware which connects a sensor driver that collects the sensor data with clients that subscribe to the different communication channels. Furthermore, the IoT client is implemented which is able to monitor the delays of both communication channels and which tracks relevant information of the blockchain for the final evaluation. The developed application is evaluated on three different IoT devices, namely on an Intel Galileo Gen2, an Odroid-XU4 and a Raspberry Pi 3. One result of this thesis is the blockchain-IoT application and the IoT client. The whole framework is able to collect data from sensors and distribute it via a real-time channel and a channel with guaranteed integrity. Additionally, the IoT client is able to monitor the delays of both channels and the confirmation times of transactions in Ethereum. The evaluation results show that enabling Ethereum on the Intel Galileo Gen2 is not feasible. The setup of the developed application on the other devices is possible. However, different workloads show that the portability of the application is restricted. The best performance in terms of message losses is achieved on the Raspberry Pi 3.