-
Micropython home domotics project with Sushi IoT
01/17/2026 at 15:14 • 0 commentsSushi Home project
Description
Home domotics demo project using a Sushi Board, code in Micropython on SushiPython framework.
Features
- Heater system thermostat: control a relay output connect to heater system
- Local control on physical interface
- Remote control by SMS
- Main power loss/return detection
- Alert by SMS
- Get status by SMS
Version : v1.0.0 - 2026-01-11
Video demo : Sushi IoT on instagram
Source files
- sushi_home.py : main program script file.
- sushi_home_config.py : sushi IoT configuration e project settings
Instructions
Start guide
- Assemble the Sushi Board (see hardware components section).
- Download and flash the latest [SushiPython IoT Firmware](https://github.com/sushi-iot/sushipython/releases) onto the board.
- Connect the ESP32DevKitC board to your PC by the USB connector (or use WebREPL if you prefer).
- If you are new to MicroPython see this [basic MicroPython guide](https://sushi-iot.github.io/sushipython/coding/).
- Transfer the '.py' project source files (see source files list) to the board using your favourite MicroPython interface.
- Edit these settings in "sushi_home_config.py" :
- "MODEM_ENABLED_NUMBERS" : phone numbers enabled to send/receive SMS
- "modem_sim_sms_center" : operator SMS center number (necessary to let the modem manage SMS messages)
- "modem_sim_pin" : your SIM pin
- "modem_apn" : SIM operator APN
- "modem_user" : SIM operator user (if required)
- "modem_passwd" : SIM operator password (if required)
- Run the main script file.
- From the REPL output it's possible check the script execution output.
- To interrupt the script execution and return to the REPL prompt press "CTRL+C" (as you can see from the py code to manage all the tasks the script run a main loop).
Testing the project
- Heater system
- When the heater must start, it switches on the relay output. This is visible from the red LED on it.
- By scrolling the user menu, enter "Thermostat". This menu is added by this project. From here it is possible to set the heater target temperature.
- From the "DIAGNOSTIC" menu it is possible to check the actual temperature read from the sensor.
- It is possible to set the target temperature by sending an SMS with the text "#SET-TEMP=...", for example "#SET-TEMP=22.5". Note: the source number must be included in the `MODEM_ENABLED_NUMBERS` list.
- Main power loss/return detection
- By plugging or unplugging the main power supply, the script sends a status SMS message informing about the change to every number defined in the `MODEM_ENABLED_NUMBERS` list.
- SMS status monitor
- It is always possible to check the system status by sending an SMS with the text "#STATUS?". The script replies only to this number (if it is included in the `MODEM_ENABLED_NUMBERS` list) with a status SMS.
Hardware components
This project uses a full Sushi Iot Board kit.
All details on Sushi Board can be found on [Sushi-Iot-Board Github repo](https://github.com/sushi-iot/sushi-iot-board).Overview
[Sushi IoT on instagram](https://www.instagram.com/sushi_board_iot/)
Hardware connections table
For test/demo purposes, this project does not require any external hardware.
In a real application, the heater system must be connected to the relay output and an external DS18B20 cabled temperature sensor is recommended to measure the environment correctly (for test purpose by default is used the onboard DS18B20 sensor).Resources
Sushi-Iot-Board
SushiPython IoT Firmware download
Online coding manual
SushiPython IoT project overview
SushiPython microPython quick reference - Heater system thermostat: control a relay output connect to heater system
-
Sushi IoT Board 1
11/22/2025 at 13:24 • 0 commentsDescription
With the purpose of having a common core on which to base different projects inside the Sushi IoT firmware, I worked on the Sushi Board.
This board performs a simple, basic connection to different components that are usually built on a breadboard.
The idea is to share the hardware and then work on specific projects that will also be shared here.
![]()
Sushi Board is an ESP32-based programmable modular embedded system for general-purpose IoT, suitable for STEM education and DIY electronics projects.
100% based on widely available commercial modules, making it cost-effective and easy to source.
For MAKERs
- A carrier board that connect all the essential components needed to create a complete IoT unit, suitable for various applications, minimizing the complexity of assembling different components and boards without requiring extensive soldering or wiring.
- Only the CPU is mandatory; then you simply plug in the modules you need for your specific purposes.
For students and educational purposes
- Sushi Board offers a modular system that can be shared across multiple projects, from simple setups to more complex, DIY electronics systems.
- It’s not just for desk experiments; you can build something practical and functional.
Advantages
- Based on ESP32 SoC: a reliable choice in the IoT field. You have access to a powerful ecosystem with numerous resources available online.
- 100% based on very common commercial modules widely available online for Arduino and DIY electronics projects. Sushi board just help you connect them all together.
- You can code with your favourite compiler : Arduino, microPython (even without a PC), Scratch, ESP-IDF, etc.
- Open source hardware: both the CPU module and the Sushi Board come with wiring diagrams provided.
Applications
- Generic IoT & sensors educational experiment
- Fast prototyping
- Home automation systems
- IoT central units
- Alarm systems
- Domotics servers
- Remote monitoring and data sampling systems (example weather centrals)
- Local and remote devices control (by local user interface, web interface, modem interface)
Hardware features
All the ingredients that are needed for a myriad of applications:
- ESP32-DevKitC V4
- 16x digital GPIN
- 2x Relay OUT (10A 250V AC)
- 5x digital direct GPIO, 1 x GPO , 2 x GPI (LEDs, extra UART, etc.)
- Physical keyboard
- OLED Display
- Connectivity: Wi-Fi, Bluetooth, modem 2G/3G/4G, UART, I2C
- Power supply modes: 5V (USB adapter or wired) ; Battery only ; 5V + backup battery (for when grid power is missing)
- Backup battery
- Power status and battery level acquisition
- Buzzer for audio alerts
- Temperature sensor
- Size: 90x110 mm (both carrier and TOP boards)
Hardware guide and schematics
https://github.com/sushi-iot/sushi-iot-board
Example & projects
https://github.com/sushi-iot/sushipython/tree/main/examples
Instagram demo
https://www.instagram.com/sushi_board_iot/
Projects pictures
Follow some picture of a project done using this board. All details will follow in separated posts.
This is a Sushi board mounted in a junction box and installed inside an electrical panel. It functions as a weather data acquisition center, reading data from external sensors and sending it to the cloud via GSM. The same hardware can also serve as the central unit of an alarm system.
The case is made from a standard electrical junction box. There is a cut in the cover that stays hidden behind the top Sushi board, so the closed box looks neat even if the homemade cut isn't perfect.
![]()
The wiring inside the case
![]()
-
Sushi Framework example on bread board: add menu to UI to switch ON/OFF a relay.
11/14/2025 at 21:47 • 0 commentsSushiPython - IoT MicroPython example
- Project: Menu example
- Description: Add a custom menu to physical user interface to switch ON/OFF a relay OUTPUT
- Video demo : Sushi IoT on instagram
Source files
- "menu_example.py" : main example code
- "menu_example_config.py" : sushi IoT configuration
Source files on GitHub : dkc_menu example
Instructions
- Connect the components on the breadboard.
- Download and flash the SushiPython IoT Firmware onto the board.
- Connect ESP32DevKitC to your PC by the USB connector (or use WebREPL if you prefer).
- If you are new to MicroPython see this basic MicroPython guide.
- Transfer the '.py' example source files to the board using your favourite MicroPython interface.
- Run the main script file. Note that it's normal on the first run (and in general, if the device configuration has changed): the device will store the settings and restart itself.
Hardware components
This project uses the following hardware:
- CPU : ESP32DevKitC-WROVER module
- Display : SSD1306 OLED
- Relay: D1 mini relay module
- Keypad : 1x4 membrane keypad
In each component overview file there are some brief info. All components can be found widely on the web, so just as example it's provided some link where can be bought.
Overview
Hardware connections table
Pin Connected To Type Note ESP32.USB USB Power suppplier 5V PowerPowers the board and peripherals ESP32.GND BB.GND GNDCommon ground network (1) ESP32.5V BB.VCC 5VShared power rail (1) Relay.VCC BB.VCC 5VPower supply for relay module Relay.GND BB.GND GNDCommon ground Relay.IN ESP32.GPIO15 DigitalRelay control signal Keypad.GND BB.GND GNDCommon ground Keypad.K1 ESP32.GPIO19 DigitalButton 1 Keypad.K2 ESP32.GPIO18 DigitalButton 2 Keypad.K3 ESP32.GPIO5 DigitalButton 3 Keypad.K4 ESP32.GPIO4 DigitalButton 4 OLED.VCC BB.VCC 5VPower supply (2) OLED.GND BB.GND GNDCommon ground OLED.SDA ESP32.GPIO21 SDAI2C data OLED.SCL ESP32.GPIO22 SCLI2C clock Notes:
- (1) “BB.VCC” & “BB.GND” indicates a connection to the breadboard power or ground rails.
- (2) Some OLED may require 3.3V, in this case connect to ESP32.3V3 pin.
Resources
SushiPython IoT Firmware download
Online coding manual
SushiPython IoT project overviewQuick reference
In the REPL, run:sushi.help()
or see the result directly here.
Marco


