Upgrade to Pro — share decks privately, control downloads, hide ads and more …

TinyGo: Getting the upper hen (GopherCon 2022)

TinyGo: Getting the upper hen (GopherCon 2022)

TinyGo is a Go compiler for small places such as microcontroller or web. Join Donia for a demo and see live temperature and humidity data displayed on dashboards.

Starting from a basic understanding of what TinyGo is, you will learn how to:

- Use the appropriate driver for your hardware
- Retrieve data from a thermometer and humidity captor
- Communicate with your microcontroller using WiFi
- Build a dashboard with temperature and humidity data
- Check that your hens are doing well, from your couch

And, if you still do not want to adopt chickens, you can let your creativity flow by building your own project, using our favourite language.

Talk/Attendee Level: All Attendees
________

Join the #tinygo channel on Gophers slack and find the code on my github:
https://github.com/doniacld/tiny-hen

Donia Chaiehloudj

October 10, 2022
Tweet

More Decks by Donia Chaiehloudj

Other Decks in Programming

Transcript

  1. TinyGo: Getting the upper hen GopherCon, Chicago - 08 October

    2022 Donia Chaiehloudj Powder @doniacld
  2. My ideal hen house 01 What is TinyGo? What’s the

    plan? Demo time Things I learned 02 03 04 05 06 What’s next?
  3. MY IDEAL HEN HOUSE 01. My ideal hen house •

    Monitor my hen house ◦ temperature ◦ humidity • Visualise the metrics
  4. — TinyGo website at tinygo.org TinyGo is a compiler for

    the Go programming language but for smaller kinds of systems.
  5. TINYGO COMPILER: HISTORY https://aykevl.nl/ 02. What is TinyGo? Ayke exploring

    existing projects 01/02/19 TinyGo 0.1 TinyGo used by the industry TinyGo adopted by users for side projects 03/02/19 FOSDEM @aurelievache
  6. TINYGO COMPILER: ANOTHER GO COMPILER The LLVM Project is a

    collection of modular and reusable compilers. https://tinygo.org/docs/concepts/compiler-internals/pipeline/ 02. What is TinyGo?
  7. GO VS TINYGO: HELLO WORLD SIZE ❯ go build -o

    bin/helloworld-go hello/hello_world.go ❯ tinygo build -o bin/helloworld-tinygo hello/hello_world.go ❯ ll bin/ total 5120 -rwxr-xr-x 1 doniacld staff 1.8M Aug 14 18:40 helloworld-go -rwxr-xr-x 1 doniacld staff 29K Aug 14 18:41 helloworld-tinygo go version go1.18.5 darwin/arm64 0.24.0 darwin/amd64 (using go version go1.18.5 and LLVM version 14.0.0) 02. What is TinyGo?
  8. FLASH COMMAND tinygo flash -target=<your-board> <your-program>.go 1. Compiles the program

    on your computer 2. Writes it on chip memory (ROM) 3. Runs it on the chip NB: Built-in led is blinking while writing 02. What is TinyGo?
  9. FLASH COMMAND tinygo flash -target=<your-board> <your-program>.go 1. Compiles the program

    on your computer 2. Writes it on chip memory (ROM) 3. Runs it on the chip NB: Built-in led is blinking while writing 02. What is TinyGo?
  10. DEBUGGING TOOLS ❯ ll /dev/tty.* 02. What is TinyGo? Serial

    port: connector by which a device sends data one bit at a time.
  11. https://github.com/doniacld/tinygo-discovery/blob/main/hello/hello_gophers.go https://github.com/doniacld/tinygo-discovery/blob/main/utils/read_serial.go READ FROM THE SERIAL PORT 02. What is

    TinyGo? ❯ go run hello_gophers.go 2022/08/14 18:23:14 Hi Chicago! What's up GopherCon US 2022? 2022/08/14 18:23:15 Hi Chicago! What's up GopherCon US 2022? ❯ go run utils/read_serial.go -port /dev/cu.usbmodem1401 1970/01/01 00:00:03 Hi Chicago! What's up GopherCon US 2022? 1970/01/01 00:00:04 Hi Chicago! What's up GopherCon US 2022?
  12. TINYGO CHEAT SHEET 05. Things I learned • TinyGo: Go

    compiler for small places • Flash: tinygo flash -target=<your-board> main.go • TinyGo drivers examples are a treasure chest 💎 • Hardware recommendations: samd21/samd51 board, or an rp2040 or TinyGo Playground • Enter the IoT world with your current skills and your IDE (VS code plugin, GoLand plugin)
  13. WHAT’S NEXT? • Use async protocol (MQTT) • Long range

    WiFi board (LoRaWAN) • Deploy in the cloud • Add a fox detection system https://tinyurl.com/gopher-far-west-sticker 06. What’s next?