Exemplo n.º 1
0
        // private static string RoomName = "dining-room";
        // private static string RoomName = "kitchen";
        // private static string RoomName = "basement";

        static void Main(string[] args)
        {
            var sensorReadingIntervalMilliseconds = 1000;
            var readings = new HomeAutomationReadings();

            var joystickEvents = Joystick.Events
                                 .Subscribe(p =>
            {
                if (p.Key == JoystickKey.Enter && p.State == JoystickKeyState.Release)
                {
                    IsGarageDoorOpen = !IsGarageDoorOpen;
                    if (IsGarageDoorOpen)
                    {
                        Console.WriteLine("Garage door is open");
                    }
                    else
                    {
                        Console.WriteLine("Garage door is closed");
                    }
                }
            });

            using (var settings = RTIMUSettings.CreateDefault())
            {
                while (true)
                {
                    var temperature = GetTemperatureReading(settings);
                    var humidity    = GetHumidityReading(settings);
                    var pressure    = GetPressureReading(settings);
                    var garageDoor  = GetGarageDoorReading();

                    readings.TemperatureReading.Value = temperature.value;
                    readings.HumidityReading.Value    = humidity.value;
                    readings.PressureReading.Value    = pressure.value;
                    readings.GarageDoorReading.Value  = garageDoor.value;

                    Console.WriteLine(JsonSerializer.Serialize(temperature));
                    Console.WriteLine(JsonSerializer.Serialize(humidity));
                    Console.WriteLine(JsonSerializer.Serialize(pressure));
                    Console.WriteLine(JsonSerializer.Serialize(garageDoor));

                    var pixelList = new List <CellColor>();

                    AddPixelsForReading(pixelList, readings.TemperatureReading.Quadrant, readings.TemperatureReading.GetColor());
                    AddPixelsForReading(pixelList, readings.HumidityReading.Quadrant, readings.HumidityReading.GetColor());
                    AddPixelsForReading(pixelList, readings.PressureReading.Quadrant, readings.PressureReading.GetColor());
                    AddPixelsForReading(pixelList, readings.GarageDoorReading.Quadrant, readings.GarageDoorReading.GetColor());

                    var immutablePixels = new Sense.Led.Pixels(ImmutableList.Create(pixelList.ToArray()));

                    Sense.Led.LedMatrix.SetPixels(immutablePixels);
                    Sense.Led.LedMatrix.SetLowLight(true);

                    Thread.Sleep(sensorReadingIntervalMilliseconds);
                }
            }
        }
Exemplo n.º 2
0
        private static void DisplaySensorReadings(RedisValue message)
        {
            var sensorType = JsonSerializer.Deserialize <SensorType>(message.ToString());

            if (sensorType.sensor == "temperature")
            {
                var reading = JsonSerializer.Deserialize <SensorReading <float> >(message.ToString());
                readings.TemperatureReading.Value = reading.value;
                Console.WriteLine($"Temperature {readings.TemperatureReading.Value}");
            }
            else if (sensorType.sensor == "humidity")
            {
                var reading = JsonSerializer.Deserialize <SensorReading <float> >(message.ToString());
                readings.HumidityReading.Value = reading.value;
                Console.WriteLine($"Humidity {readings.TemperatureReading.Value}");
            }
            else if (sensorType.sensor == "pressure")
            {
                var reading = JsonSerializer.Deserialize <SensorReading <float> >(message.ToString());
                readings.PressureReading.Value = reading.value;
                Console.WriteLine($"Pressure {readings.TemperatureReading.Value}");
            }
            else if (sensorType.sensor == "garage-door")
            {
                var reading = JsonSerializer.Deserialize <SensorReading <bool> >(message.ToString());
                readings.GarageDoorReading.Value = reading.value;
                Console.WriteLine($"Garage Door {readings.TemperatureReading.Value}");
            }
            else
            {
                Console.WriteLine($"Received unknown sensor: {sensorType.sensor}");
            }

            var pixelList = new List <CellColor>();

            AddPixelsForReading(pixelList, readings.TemperatureReading.Quadrant, readings.TemperatureReading.GetColor());
            AddPixelsForReading(pixelList, readings.HumidityReading.Quadrant, readings.HumidityReading.GetColor());
            AddPixelsForReading(pixelList, readings.PressureReading.Quadrant, readings.PressureReading.GetColor());
            AddPixelsForReading(pixelList, readings.GarageDoorReading.Quadrant, readings.GarageDoorReading.GetColor());

            var immutablePixels = new Sense.Led.Pixels(ImmutableList.Create(pixelList.ToArray()));

            Sense.Led.LedMatrix.SetPixels(immutablePixels);
            Sense.Led.LedMatrix.SetLowLight(true);
        }