Falcongo - Home automation with 9P

This repo is reachable at https://github.com/mmirko/falcongo.git


falcongo

falcongo is personal project to create a custom home automation system using the Go programming language and the 9P protocol. I used a 9P implementation written in Go called go9p.

The project consists of several components:

  • An arduino connected to various sensors and actuators, communicating with a Go program over a serial connection.
  • A Go program that reads data from the arduino and exposes it via a 9P server.
  • 9P clients that can connect to the server and interact with the sensors and actuators:
    • A command line client to read sensor data or actuators state.
    • A command line client to set actuators state.
    • A fs-based client that mounts the 9P server as a filesystem, allowing users to interact with sensors and actuators using standard file operations.

Components

  • sketch/: Arduino code for reading sensors and controlling actuators.

  • cmd/falcongo/: Go program that communicates with the Arduino and exposes a 9P server.

  • cmd/falcongo-read/: Command line client to read sensor data or actuators state.

  • cmd/falcongo-write/: Command line client to set actuators state.

  • cmd/falcongo-fs/: fs-based client that mounts the 9P server as a filesystem.