Compare commits

3 Commits
v1.0 ... main

Author SHA1 Message Date
Daniele Verducci
02a15c01f1 Updated readme and images 2026-02-11 08:06:34 +01:00
Daniele Verducci
022232868b Fixes 2026-02-07 13:26:41 +01:00
4b49539b3c WIP disable wi-fi to avoid interferences 2026-02-07 13:16:23 +01:00
4 changed files with 37 additions and 16 deletions

View File

@@ -2,13 +2,17 @@
Fabula is an open source and open hardware storyteller for children 1 to 8 yo.
![3D Rendering](images/test_fit.png)
![Exploded view](images/test_fit_exploded.png)
![Assembled](images/assembled.jpg)
It's a box with an inset where a plastic character can be snapped in place.
When a character is snapped in place, Fabula starts playing the corresponding audio track(s).
When the character is removed, the playback stops.
There's a status led that provides some informations about the player (i.e. the battery level).
![3D Rendering](images/test_fit.png)
![Exploded view](images/test_fit_exploded.png)
The toy has an internal lithium-ion battery that can be charged via USB-C and provides 12h playback.
It can also be monitored and controlled via Home Assistant or with a web interface in local network.
It is privacy-friendly: it works completely localy and sends no data to any external service.

View File

@@ -1,6 +1,23 @@
# NOTE: This program does NOT log via UART, but only via network socket (esphome logs...)
# ---------------------- Global variables ----------------------
globals:
- id: current_folder
type: int
restore_value: no
initial_value: '0'
# The ESP8266 Wi-fi interferes with the NFC reader, for this reason is usually
# disabled. When the devices is turned on with the "volume up" key pressed, it
# enables the wifi. Used for firmware update, home assistant control and as a night light.
- id: wifi_mode
type: bool
restore_value: no
initial_value: 'false'
# ---------------------- Global config ----------------------
esphome:
@@ -8,13 +25,20 @@ esphome:
on_boot:
- priority: 300
then:
- if:
condition:
binary_sensor.is_on: vol_up
then: !lambda id(wifi_mode) = true;
#else:
# then:
# wifi.disable:
- dfplayer.set_volume: 10
- light.turn_on:
id: status_led
brightness: 60%
red: 80%
green: 0%
blue: 100%
brightness: !lambda if (id(wifi_mode)) return 1.0; else return 0.6;
red: 0.8
green: !lambda if (id(wifi_mode)) return 1.0; else return 0.0;
blue: 1.0
esp8266:
board: d1_mini_lite
@@ -30,15 +54,7 @@ ota:
wifi:
ssid: "Pew"
password: "SediaChinita@Terrazzo2017"
# ---------------------- Global variables ----------------------
globals:
- id: current_folder
type: int
restore_value: no
initial_value: '0'
reboot_timeout: 0s
# ---------------------- PN532 NFC Reader ----------------------
@@ -247,6 +263,7 @@ api:
# "folder": 2,
# "file": 1
# }
reboot_timeout: 0s
actions:
- action: dfplayer_next

BIN
images/assembled.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 21 KiB