Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der Steen
-
Upload
hujak-hrvatska-udruga-java-korisnika-croatian-java-user-association -
Category
Technology
-
view
2.496 -
download
0
Transcript of Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der Steen
![Page 1: Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der Steen](https://reader036.fdocuments.us/reader036/viewer/2022062823/5871ac4b1a28abda6a8b5a83/html5/thumbnails/1.jpg)
The Internet of (Lego) Trains
Johan Janssen, Info Support
@johanjanssen42 johan.janssen@infosupport
.com
Ingmar van der Steen, Info Support
![Page 2: Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der Steen](https://reader036.fdocuments.us/reader036/viewer/2022062823/5871ac4b1a28abda6a8b5a83/html5/thumbnails/2.jpg)
Disclaimer: No Lego was harmed beyondrepair during the project.
![Page 3: Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der Steen](https://reader036.fdocuments.us/reader036/viewer/2022062823/5871ac4b1a28abda6a8b5a83/html5/thumbnails/3.jpg)
CONTENT
Why?IngredientsArchitectureHardwareApplication
ChallengesScala and AkkaFutureConclusionQuestions
![Page 4: Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der Steen](https://reader036.fdocuments.us/reader036/viewer/2022062823/5871ac4b1a28abda6a8b5a83/html5/thumbnails/4.jpg)
Why?
![Page 5: Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der Steen](https://reader036.fdocuments.us/reader036/viewer/2022062823/5871ac4b1a28abda6a8b5a83/html5/thumbnails/5.jpg)
MINIMAL INGREDIENTS FOR 1 TRAIN ABOUT € 50Raspberry Pi A+Wifi dongleEDUP Ultra-Mini Nano USB 2.0 802.11n
USB battery packAnker® 2. Gen Astro Mini 3200mAh
Infrared transmitterKeyes 38KHz IR Infrared Transmitter Module for Arduino
![Page 6: Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der Steen](https://reader036.fdocuments.us/reader036/viewer/2022062823/5871ac4b1a28abda6a8b5a83/html5/thumbnails/6.jpg)
![Page 7: Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der Steen](https://reader036.fdocuments.us/reader036/viewer/2022062823/5871ac4b1a28abda6a8b5a83/html5/thumbnails/7.jpg)
Architecture
![Page 8: Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der Steen](https://reader036.fdocuments.us/reader036/viewer/2022062823/5871ac4b1a28abda6a8b5a83/html5/thumbnails/8.jpg)
LTCC(Angular)
LTCC(Java)
DeviceControl(Java)
Infrared(C and LIRC)
RFID(C)
SwitchControl(Java)
Servo(Python)
Leds with Photon
(C)
RPi-Cam-Web-Interface
(C)
![Page 9: Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der Steen](https://reader036.fdocuments.us/reader036/viewer/2022062823/5871ac4b1a28abda6a8b5a83/html5/thumbnails/9.jpg)
LTCC (Laptop)SwitchControl (Pi) Camera (Pi)
DeviceControl (Pi)
![Page 10: Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der Steen](https://reader036.fdocuments.us/reader036/viewer/2022062823/5871ac4b1a28abda6a8b5a83/html5/thumbnails/10.jpg)
Original controls
![Page 11: Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der Steen](https://reader036.fdocuments.us/reader036/viewer/2022062823/5871ac4b1a28abda6a8b5a83/html5/thumbnails/11.jpg)
Infrared
![Page 12: Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der Steen](https://reader036.fdocuments.us/reader036/viewer/2022062823/5871ac4b1a28abda6a8b5a83/html5/thumbnails/12.jpg)
CALLING THE APPLICATION
http://ipaddress/cgi-bin/test/?ch=0&out=1&cmd=1&spd=3
ch: channel (there are 8) out: output cmd: command 0 Break 1 Forward 2 Backward
spd: speed (not necesarry with command ‘Break’)
![Page 13: Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der Steen](https://reader036.fdocuments.us/reader036/viewer/2022062823/5871ac4b1a28abda6a8b5a83/html5/thumbnails/13.jpg)
@Path("train")public class TrainService { @GET @Path("{channelParam}/forward/{speedParam}") public void forward(@PathParam("channelParam") String channel, @PathParam("speedParam") String speed) { String command = "1"; callURL(channel, command, speed); }
private void callURL(String channel, String command, String speed) { StringBuilder result = new StringBuilder(); result.append("http://127.0.0.1/cgi-bin/test/?ch="); result.append(channel); result.append("&out=1&cmd="); result.append(command); if (speed != null) { result.append("&spd="); result.append(speed); } URL url = new URL(result.toString()); InputStream is = url.openStream(); }}
![Page 14: Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der Steen](https://reader036.fdocuments.us/reader036/viewer/2022062823/5871ac4b1a28abda6a8b5a83/html5/thumbnails/14.jpg)
Sound
![Page 15: Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der Steen](https://reader036.fdocuments.us/reader036/viewer/2022062823/5871ac4b1a28abda6a8b5a83/html5/thumbnails/15.jpg)
RFID
3.3 V, GPIO25, GND, -, GPIO9, GPIO 10, GPIO11, GPIO 8
![Page 16: Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der Steen](https://reader036.fdocuments.us/reader036/viewer/2022062823/5871ac4b1a28abda6a8b5a83/html5/thumbnails/16.jpg)
![Page 17: Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der Steen](https://reader036.fdocuments.us/reader036/viewer/2022062823/5871ac4b1a28abda6a8b5a83/html5/thumbnails/17.jpg)
Camera
![Page 18: Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der Steen](https://reader036.fdocuments.us/reader036/viewer/2022062823/5871ac4b1a28abda6a8b5a83/html5/thumbnails/18.jpg)
![Page 19: Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der Steen](https://reader036.fdocuments.us/reader036/viewer/2022062823/5871ac4b1a28abda6a8b5a83/html5/thumbnails/19.jpg)
Overview
camera
![Page 20: Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der Steen](https://reader036.fdocuments.us/reader036/viewer/2022062823/5871ac4b1a28abda6a8b5a83/html5/thumbnails/20.jpg)
Switches
![Page 21: Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der Steen](https://reader036.fdocuments.us/reader036/viewer/2022062823/5871ac4b1a28abda6a8b5a83/html5/thumbnails/21.jpg)
![Page 22: Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der Steen](https://reader036.fdocuments.us/reader036/viewer/2022062823/5871ac4b1a28abda6a8b5a83/html5/thumbnails/22.jpg)
LTCC APPLICATION
![Page 23: Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der Steen](https://reader036.fdocuments.us/reader036/viewer/2022062823/5871ac4b1a28abda6a8b5a83/html5/thumbnails/23.jpg)
AUTOPILOT APPLICATION
![Page 24: Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der Steen](https://reader036.fdocuments.us/reader036/viewer/2022062823/5871ac4b1a28abda6a8b5a83/html5/thumbnails/24.jpg)
Challenges
![Page 25: Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der Steen](https://reader036.fdocuments.us/reader036/viewer/2022062823/5871ac4b1a28abda6a8b5a83/html5/thumbnails/25.jpg)
SCALA AND AKKA
![Page 26: Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der Steen](https://reader036.fdocuments.us/reader036/viewer/2022062823/5871ac4b1a28abda6a8b5a83/html5/thumbnails/26.jpg)
HTTP VS REMOTE ACTOR
![Page 27: Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der Steen](https://reader036.fdocuments.us/reader036/viewer/2022062823/5871ac4b1a28abda6a8b5a83/html5/thumbnails/27.jpg)
ADVANTAGES REMOTE ACTORS
No converting to JSON/SOAPMore natural programming
Faster than Akka HTTP ?
![Page 28: Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der Steen](https://reader036.fdocuments.us/reader036/viewer/2022062823/5871ac4b1a28abda6a8b5a83/html5/thumbnails/28.jpg)
ADVANTAGES HTTP
Indepedent of technology Loosely coupled
![Page 29: Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der Steen](https://reader036.fdocuments.us/reader036/viewer/2022062823/5871ac4b1a28abda6a8b5a83/html5/thumbnails/29.jpg)
LTCC(Angular)
LTCC(Scala/Akka)
DeviceControl(Scala/Akka)
Infrared(C and LIRC)
RFID(C)
SwitchControl(Scala/Akka)
Servo(Python)
Leds with Photon
(C)
RPi-Cam-Web-Interface
(C)
![Page 30: Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der Steen](https://reader036.fdocuments.us/reader036/viewer/2022062823/5871ac4b1a28abda6a8b5a83/html5/thumbnails/30.jpg)
class Coordinator extends Actor { def receive = { case mymessage => println(mymessage) }}
implicit val system = ActorSystem("ExampleActorSystem")
val coordinatorActorRef = system.actorOf(Props[Coordinator])coordinatorActorRef ! "Hello Javantura"
![Page 31: Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der Steen](https://reader036.fdocuments.us/reader036/viewer/2022062823/5871ac4b1a28abda6a8b5a83/html5/thumbnails/31.jpg)
val coordinatorActorRef = system.actorOf(Props[Coordinator])coordinatorActorRef ! "Hello Javantura "
val coordinatorActorRef = context.actorSelection("akka.tcp://
[email protected]:9005/user/coordinatorActor")
coordinatorActorRef ! "Hello Javantura "
![Page 32: Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der Steen](https://reader036.fdocuments.us/reader036/viewer/2022062823/5871ac4b1a28abda6a8b5a83/html5/thumbnails/32.jpg)
akka { actor { provider = "akka.remote.RemoteActorRefProvider" } remote { enabled-transports =
["akka.remote.netty.tcp"] netty.tcp { hostname = "127.0.0.1" port = 9002
![Page 33: Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der Steen](https://reader036.fdocuments.us/reader036/viewer/2022062823/5871ac4b1a28abda6a8b5a83/html5/thumbnails/33.jpg)
![Page 34: Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der Steen](https://reader036.fdocuments.us/reader036/viewer/2022062823/5871ac4b1a28abda6a8b5a83/html5/thumbnails/34.jpg)
CONCLUSION
![Page 35: Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der Steen](https://reader036.fdocuments.us/reader036/viewer/2022062823/5871ac4b1a28abda6a8b5a83/html5/thumbnails/35.jpg)
The best part!!
![Page 36: Javantura v3 - The Internet of (Lego) Trains – Johan Janssen, Ingmar van der Steen](https://reader036.fdocuments.us/reader036/viewer/2022062823/5871ac4b1a28abda6a8b5a83/html5/thumbnails/36.jpg)
QUESTIONS?
Johan Janssen, Info Support
@johanjanssen42 johan.janssen@infosupport
.com
Ingmar van der Steen, Info Support