Rabbit Slide Show

IoT with mruby/c on the Asahi-shuzo (Shimane)

2019-09-06

Description

Presentation for SWEST21

Text

Page: 1

mruby/c: IoT system for
🍶 SAKE brewery 🍶
HASUMI Hitoshi @hasumikin
Monstar Lab
SWEST21 ♨♨♨ 下呂温泉 水明館
Sep. 6, 2019

Page: 2

Me
HASUMI Hitoshi
@hasumikin
Matsue city,
a holy place of Ruby
Sake 🍶
Soba 🍜
Coffee ☕

Page: 3

Me

Page: 4

Me

Page: 5

Me

Page: 6

Me

Page: 7


        

Page: 8

旭日酒造
one of the best Japanese Sake brewery
Asahi-shuzo and I make an IoT system using mruby/c

Page: 9

Asahi-shuzo
旭酒造(Asahi-shuzo), Yamaguchi: 獺祭(Dassai). fruity,
aromatic and sweet
朝日酒造(Asahi-shuzo), Niigata: 久保田(Kubota). clear,
dry and sharp
朝日酒造(Asahi-shuzo), Fukui: ???
旭日酒造(Asahi-shuzo), Shimane: 十旭日(Juji-Asahi).
tasteful, mature with years and good for お燗(warmed
style)

Page: 10

What is mruby/c?

Page: 11

What is mruby/c?
github.com/mrubyc/mrubyc
yet another implementation of mruby
`/c` symbolizes compact,
concurrent and capability
especially dedicated to
one-chip microcontroller

Page: 12

mruby and mruby/c
mruby
v1.0.0 in Jan 2014
for general embedded
software
RAM < 400KB
mruby/c
v1.0 in Jan 2017
for one-chip
microcontroller
RAM < 40KB

Page: 13

About my IoT project
IoT system for Asahi-shuzo
delivered to actual brew work in January 2018
devices post temperature of Sake materials in brewing,
surrounding temperature and humidity to server
data is displayed on smartphone app

Page: 14

About my IoT project

Page: 15

What is "taking temperature" ?

Page: 16

what is "taking temperature" ?

Page: 17

what is "taking temperature" ?

Page: 18

1st season (2017BY)

Page: 19

1st season (2017BY)
before mruby/c

Page: 20

1st season (2017BY)

Page: 21

1st season (2017BY) architecture
sensortags ->(BLE)-> gateway
gateway ->(WiFi)-> router
router ->(3G)-> internet

Page: 22

1st season (2017BY) architecture
sensortags ->(BLE)-> gateway
gateway ->(WiFi)-> router
router ->(3G)-> internet
Having a stack of multiple wirelesses is so hard
😨

Page: 23

1st season (2017BY) architecture

Page: 24

1st season (2017BY) architecture
超えられない壁

Page: 25

1st season (2017BY) architecture
a thick wall
BLE couldn't through the wall
water everywhere
power suppply issue
number of instrument should be minimized

Page: 26

BY?

Page: 27

BY?
Brewing Year, from July to June
in Asahi-shuzo a BY work starts on November and
finishes on April (depends on year)

Page: 28

2nd season (2018BY)

Page: 29

2nd season (2018BY)
A N E W H O P E

Page: 30

2nd season (2018BY)
m r u b y / c

Page: 31

2nd season (2018BY) architecture
devices ->(3G)-> Internet

Page: 32

2nd season (2018BY) the device

Page: 33

2nd season (2018BY) architecture

Page: 34

2nd season (2018BY) architecture

Page: 35

2nd season (2018BY) mruby/c
mruby/c does everything
sensors - I2C, ADC
Fixnum, Float, Math
7seg LED display - transistor array
String, Mutex
3G communication module - UART
String, flow control

Page: 36

2nd season (2018BY)
what were difficult about mruby/c?
we can neither do step execution nor look into
appropriate memory address of mruby/c's variables
so many troubles in IoT
hard to find why the application doesn't work well

Page: 37

2nd season (2018BY)
what were difficult about mruby/c?
mruby/c was growing
bugs, lack of features, docs and examples

Page: 38

2nd season (2018BY)
so, was mruby/c bad?

Page: 39

2nd season (2018BY)
so, was mruby/c bad? - NO
IoT at work makes you hurry
you have to go back and forth between dark 10℃ storage
cellar and humid 35℃ manufacturing room
you have to amend your firmware with your small laptop in 10
minutes
you will thank Ruby's descriptiveness and agility

Page: 40

RubyKaigi 2018

Page: 41

3rd season (2019BY)

Page: 42

RubyKaigi 2019

Page: 43

RubyKaigi 2019

Page: 44

Technology stack of IoT (1/2)
TCP/IP
cloud service
RDB and KVS
server programming
mobile programming
security
test

Page: 45

Technology stack of IoT (2/2)
high school physics electricity and transistor
microcontroller and peripherals like UART, I2C, ADC,
etc.
circuit and PCB artwork
soldering and wiring
3D CAD for housing
suppliers
firmware programming

Page: 46

Summary
mruby/c
mruby/c
mruby/c
mruby/c

Page: 47

Summary
mruby/c is a Ruby for microcontroller
mruby/c
mruby/c
mruby/c

Page: 48

Summary
mruby/c is a Ruby for microcontroller
mruby/c runs on Asahi-shuzo
mruby/c
mruby/c

Page: 49

Summary
mruby/c is a Ruby for microcontroller
mruby/c runs on Asahi-shuzo
mruby/c can be ensured by test
mruby/c

Page: 50

Summary
mruby/c is a Ruby for microcontroller
mruby/c runs on Asahi-shuzo
mruby/c can be ensured by test
mruby/c is ready

Page: 51

Thank you!

Other slides