Пример #1
0
        private static void Color_Lcd(LcdController lcd, RgbColorSensor sensor)
        {
            using (sensor)
            {
                bool ok = sensor.Begin();

                if (!ok)
                {
                    Console.WriteLine($"Error initializing sensor");
                    return;
                }

                for (var i = 0; i < 3; ++i)
                {
                    sensor.ReadSensor();

                    Console.WriteLine($"Color:       {ToRgbString(sensor.Color)}");
                    Console.WriteLine($"Temperature: {sensor.Temperature:0.00} K");
                    Console.WriteLine($"Luminosity:  {sensor.Luminosity:0.00} lux");
                    Console.WriteLine();

                    ShowInfo(lcd, "Color", ToRgbString(sensor.Color));
                    ShowInfo(lcd, "Temperature", $"{sensor.Temperature:0.00} K");
                    ShowInfo(lcd, "Luminosity", $"{sensor.Luminosity:0.00} lux");
                }
            }
        }
Пример #2
0
        private static void I2c_Color()
        {
            Console.WriteLine(nameof(I2c_Color));

            var settings = new I2cConnectionSettings(s_i2cBusId, RgbColorSensor.DefaultI2cAddress);

            using (var sensor = new RgbColorSensor(settings))
            {
                bool ok = sensor.Begin();

                if (!ok)
                {
                    Console.WriteLine($"Error initializing sensor");
                    return;
                }

                for (var i = 0; i < 5; ++i)
                {
                    sensor.ReadSensor();

                    Console.WriteLine($"Color:       {ToRgbString(sensor.Color)}");
                    Console.WriteLine($"Temperature: {sensor.Temperature:0.00} K");
                    Console.WriteLine($"Luminosity:  {sensor.Luminosity:0.00} lux");
                    Console.WriteLine();

                    Thread.Sleep(TimeSpan.FromSeconds(1));
                }
            }
        }
Пример #3
0
        public void StartSendingData()
        {
            EventHubClient eventHubClient = CreateEventHubClient("DataEventHubConnectionString");
            Stopwatch      watch          = Stopwatch.StartNew();

            var pressureSettings = new I2cConnectionSettings(Program.I2cBusId, PressureTemperatureHumiditySensor.DefaultI2cAddress);
            var colorSettings    = new I2cConnectionSettings(Program.I2cBusId, RgbColorSensor.DefaultI2cAddress);

            using (var pressureSensor = new PressureTemperatureHumiditySensor(pressureSettings))
                using (var colorSensor = new RgbColorSensor(colorSettings))
                {
                    pressureSensor.SeaLevelPressureInHectopascals = 1013.25f;
                    bool ok = pressureSensor.Begin();

                    if (!ok)
                    {
                        Console.WriteLine($"Error initializing pressure sensor");
                        return;
                    }

                    ok = colorSensor.Begin();

                    if (!ok)
                    {
                        Console.WriteLine($"Error initializing color sensor");
                        return;
                    }

                    while (watch.Elapsed.TotalDays < 1)
                    {
                        pressureSensor.ReadSensor();
                        colorSensor.ReadSensor();

                        Console.WriteLine($"Pressure:    {pressureSensor.PressureInHectopascals:0.00} hPa");
                        Console.WriteLine($"Humdity:     {pressureSensor.Humidity:0.00} %");
                        Console.WriteLine($"Temperature: {pressureSensor.TemperatureInCelsius:0.00} C, {pressureSensor.TemperatureInFahrenheit:0.00} F");
                        Console.WriteLine($"Altitude:    {pressureSensor.AltitudeInMeters:0.00} m, {pressureSensor.AltitudInFeet:0.00} ft");
                        Console.WriteLine();

                        Console.WriteLine($"Color:       {Program.ToRgbString(colorSensor.Color)}");
                        Console.WriteLine($"Temperature: {colorSensor.Temperature:0.00} K");
                        Console.WriteLine($"Luminosity:  {colorSensor.Luminosity:0.00} lux");
                        Console.WriteLine();

                        Console.WriteLine("Sending sensors data to Azure IoT Hub...");
                        Console.WriteLine();

                        CreateMessage(pressureSensor, colorSensor, out Message message);
                        SendMessage(eventHubClient, ref message);

                        Thread.Sleep(TimeSpan.FromSeconds(1));
                    }
                }
        }
Пример #4
0
        private static void I2c_Color_Lcd(GpioDriver driver)
        {
            const int registerSelectPinNumber = 0;
            const int enablePinNumber         = 5;

            int[] dataPinNumbers = { 6, 16, 20, 21 };

            using (var controller = new GpioController(driver))
            {
                GpioPin   registerSelectPin = controller.OpenPin(registerSelectPinNumber);
                GpioPin   enablePin         = controller.OpenPin(enablePinNumber);
                GpioPin[] dataPins          = controller.OpenPins(dataPinNumbers);

                var lcd = new LcdController(registerSelectPin, enablePin, dataPins);
                lcd.Begin(16, 2);

                var settings = new I2cConnectionSettings(s_i2cBusId, RgbColorSensor.DefaultI2cAddress);
                var sensor   = new RgbColorSensor(settings);
                Color_Lcd(lcd, sensor);
            }
        }
Пример #5
0
        private static void CreateMessage(PressureTemperatureHumiditySensor pressureSensor, RgbColorSensor colorSensor, out Message message)
        {
            message = new Message()
            {
                TimeStamp               = DateTime.Now,
                TemperatureInCelsius    = pressureSensor.TemperatureInCelsius,
                TemperatureInFahrenheit = pressureSensor.TemperatureInFahrenheit,
                PressureInHectopascals  = pressureSensor.PressureInHectopascals,
                AltitudeInMeters        = pressureSensor.AltitudeInMeters,
                AltitudInFeet           = pressureSensor.AltitudInFeet,
                Humidity = pressureSensor.Humidity,

                ColorR          = colorSensor.Color.R,
                ColorG          = colorSensor.Color.G,
                ColorB          = colorSensor.Color.B,
                ColorBrightness = colorSensor.Color.GetBrightness(),
                ColorHue        = colorSensor.Color.GetHue(),
                ColorSaturation = colorSensor.Color.GetSaturation(),

                ColorTemperature = colorSensor.Temperature,
                Luminosity       = colorSensor.Luminosity,
            };
        }