Smart contracts are a transformative technology, enabling secure, automated, and transparent transactions without intermediaries. Despite their potential, their application in Internet of Things (IoT) use cases remains underexplored, leaving a gap in understanding how these contracts can enhance IoT ecosystems through secure device communication, data validation, and automated processes.
This site provides a comprehensive tutorial tailored for embedded system and IoT developers, offering step-by-step guidance on learning about smart contracts and integrating them into IoT applications to unlock their full potential. It can be used as a graduate or undergraduate course on the domain of computer science and computer engineering. It also presents a use case example in which a smart contract is used to control a raspeberry pi that could be used for automating the payment of car renting.
You can also watch the tutorial that describes all the steps in the following video Smart contract for embedded systems and IoTs
Section 1: Introducion

Introduction to Blockchain

Yout first blockchain transaction

Introduction to remix

A simple smart contract

Introduction to variables
Section 2: Smart Contracts for IoTs

Introduction to a use case for car renting using smart contracts

Introduction to data structures

Introduction to Conditional Logic and Loops

Introduction to enumaration

Introduction to MSG sender

Introduction to Access Control

Introduction to Payable functions

Introduction to events

Introduction to Inheritance

Introduction to time in blockchains

Tricks and best practices

Introduction to ICR Factory

Integrated contracts

Introduction to external function calls

Final modifications for the use case on IoTs
Section 3: A use case for Smart Contracts on Raspberry pi

Introduction to web3

Introduction to Python ICR account

How to synchronize with IoT

How to unlock the car.

How to change the car status.

Integration of the use case
Ioannis Christidis, Christoforos Kachris
Support by Ethereum Foundation.