public IActionResult Stop() { ViewBag.yesil = "ARABAYI ÇALIŞTIRABİLİRSİNİZ..."; bool pinOn = controller.Read(pin1) == true; if (lastOn != pinOn) { controller.Write(in1, PinValue.Low); controller.Write(in2, PinValue.Low); controller.Write(in3, PinValue.Low); controller.Write(in4, PinValue.Low); ViewBag.btnDurumu = "DURDUNUZ!.."; } else { ViewBag.Message = "!!! YOLDA ENGEL VAR !!!"; } using (Dht11 dht = new Dht11(14)) { var TempValue = dht.Temperature; if (TempValue.DegreesCelsius > 23) { ViewBag.dht = $"Sıcaklık: {TempValue.DegreesCelsius:0.0#}\u00B0C"; } } return(View("Index")); }
public static void ReadSensor() { var blinky = false; GpioDriver driver = new RaspberryPi3Driver(); var controller = new GpioController(PinNumberingScheme.Logical, driver); controller.OpenPin(16, PinMode.Output); using (var dht = new Dht11(4, gpioController: controller)) { while (true) { var temperature = dht.Temperature; var humidity = dht.Humidity; if (dht.IsLastReadSuccessful) { Console.WriteLine($"Temperature: {temperature.DegreesCelsius} \u00B0C, Humidity: {humidity.Percent} %"); } if (!blinky) { controller.Write(16, PinValue.High); } else { controller.Write(16, PinValue.Low); } blinky = !blinky; Thread.Sleep(1000); } } }
private async Task PollDht11Continuously() { try { using var dht11 = new Dht11(24); while (!_applicationLifetime.ApplicationStopping.IsCancellationRequested) { var humidity = dht11.Humidity; var temperature = dht11.Temperature; if (dht11.IsLastReadSuccessful) { _logger.LogInformation($"H = {humidity}, T = {temperature}"); _eventHub.PostTemperatureMeasurement(new TemperatureMeasurementMessage(temperature.DegreesCelsius)); await Task.Delay(10000); } else { _logger.LogInformation("Read failed."); await Task.Delay(2000); } } } catch (Exception ex) { _logger.LogError(ex, "Unexpected DHT11 read failure."); } }
private void InitHardware() { _temperaturePin = GpioController.GetDefault().OpenPin(4, GpioSharingMode.Exclusive); _dht11 = new Dht11(_temperaturePin, GpioPinDriveMode.Input); _timer = new Timer(Timer_Tick, null, 0, 10000); }
static async Task SendEvents(ModuleClient moduleClient) { var count = 0; var blinky = false; GpioDriver driver = new RaspberryPi3Driver(); var controller = new GpioController(PinNumberingScheme.Logical, driver); controller.OpenPin(16, PinMode.Output); using (var dht = new Dht11(4, gpioController: controller)) { while (!cts.Token.IsCancellationRequested) { var temperature = dht.Temperature; var humidity = dht.Humidity; if (dht.IsLastReadSuccessful) { Console.WriteLine($"Temperature: {temperature.DegreesCelsius} \u00B0C, Humidity: {humidity.Percent} %"); var tempData = new MessageBody { Ambient = new Ambient { Temperature = temperature.DegreesCelsius, Humidity = Convert.ToInt32(humidity.Percent) }, TimeCreated = DateTime.UtcNow }; string dataBuffer = JsonConvert.SerializeObject(tempData); var eventMessage = new Message(Encoding.UTF8.GetBytes(dataBuffer)); eventMessage.Properties.Add("sequenceNumber", count.ToString()); eventMessage.Properties.Add("batchId", BatchId.ToString()); Console.WriteLine($"\t{DateTime.Now.ToLocalTime()}> Sending message: {count}, Body: [{dataBuffer}]"); await moduleClient.SendEventAsync("temperatureOutput", eventMessage); count++; } if (!blinky) { controller.Write(16, PinValue.High); } else { controller.Write(16, PinValue.Low); } blinky = !blinky; await Task.Delay(1000, cts.Token); } } }
public DHTHostedService( ILogger <DHTHostedService> logger, Dht11 dhtController, IServiceProvider serviceProvider) { _logger = logger; _dht = dhtController; _serviceProvider = serviceProvider; }
public DHTService( ILogger <DHTService> logger, Dht11 dhtController, IHubContext <GPIOHub> hubContext ) { _hubContext = hubContext; _dht = dhtController; _logger = logger; }
protected override void OnNavigatedFrom(NavigationEventArgs e) { _timer.Stop(); _pin.Dispose(); _pin = null; _dht11 = null; base.OnNavigatedFrom(e); }
public Dht11HumitureSensor(int pinNumber, ReadingMode mode = ReadingMode.Continuous) : base(mode, DEFAULT_READ_INTERVAL) { var gpio = GpioController.GetDefault(); var pin = gpio.OpenPin(pinNumber); dht11 = new Dht11(pin); base.InitializeTimer(); }
public Dht11HumitureSensor(int pinNumber, ReadingMode mode = ReadingMode.Continuous) : base(mode, TIMER_PERIOD) { var gpio = GpioController.GetDefault(); var pin = gpio.OpenPin(pinNumber); dht11 = new Dht11(pin); base.Initialize(); }
private void InitializeSensor() { if (DataPin == null) { return; } Sensor = new Dht11(DataPin, GpioPinDriveMode.Input); ControlerService.Instance.NotifyServiceUp("IsTemperatureSensorEnabled"); }
protected override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); _pin = GpioController.GetDefault().OpenPin(4, GpioSharingMode.Exclusive); _dht11 = new Dht11(); _dht11.Init(_pin); _timer.Start(); _startedAt = DateTimeOffset.Now; }
public async Task <SensorReadingWrapper <DhtReading> > ReadAsync() { var readingData = new SensorReadingWrapper <DhtReading>(d => d.IsValid); var controller = GpioController.GetDefault(); using (GpioPin pin = controller.OpenPin(4, GpioSharingMode.Exclusive)) { using (Dht11 dht11 = new Dht11(pin, GpioPinDriveMode.Input)) { readingData.Data = await dht11.GetReadingAsync().AsTask(); } } return(readingData); }
private async void startDHT11(int port) { int realport = 5; GpioPin pin = null; pin = GpioController.GetDefault().OpenPin(realport, GpioSharingMode.Exclusive); Dht11 _dht = new Dht11(pin, GpioPinDriveMode.Input); pins.Add(pin); DhtReading reading = new DhtReading(); reading = await _dht.GetReadingAsync().AsTask(); callURLAPI(1, reading.Temperature); callURLAPI(2, reading.Humidity); }
public async Task <IActionResult> GetTemperature(int roomId) { using (Dht11 dht = new Dht11(PIN)) { Temperature temperature = dht.Temperature; double humidity = dht.Humidity; if (temperature.Celsius.ToString() != "NaN" && humidity.ToString() != "NaN") { await this.repository.Insert(new TemperatureAndHumidity() { Temperature = temperature.Celsius, Humidity = humidity, DayOfReading = DateTime.Today, RoomId = roomId }); return(Ok(new { temperature = temperature.Celsius.ToString(), humidity = humidity.ToString() })); } else { IEnumerable <TemperatureAndHumidity> temps = await this.repository.Get(temp => temp.RoomId == roomId); if (temps.FirstOrDefault() != null) { return(Ok(new { temperature = temps.FirstOrDefault().Temperature, humidity = temps.FirstOrDefault().Humidity })); } else { return(Ok(new { temperature = "", humidity = "" })); } } } }
public static double GetTemperature(int pin, PinNumberingScheme?pinNumberingScheme) { var tryCounter = 0; double temperature; using var dht = new Dht11(pin, pinNumberingScheme ?? PinNumberingScheme.Logical); do { temperature = dht.Temperature.Celsius; tryCounter++; } while (!dht.IsLastReadSuccessful || tryCounter > MaxRetryCount); if (!dht.IsLastReadSuccessful) { throw new Exception($"Чтение данных с датчика не удалось. Кол-во попыток {tryCounter}."); } return(temperature); }
public static double GetHumidity(int pin, PinNumberingScheme?pinNumberingScheme) { var tryCounter = 0; double humidity; using var dht = new Dht11(pin, pinNumberingScheme ?? PinNumberingScheme.Logical); do { humidity = dht.Humidity; tryCounter++; } while (!dht.IsLastReadSuccessful || tryCounter > MaxRetryCount); if (!dht.IsLastReadSuccessful) { throw new Exception($"Чтение данных с датчика не удалось. Кол-во попыток {tryCounter}."); } return(humidity); }
public static (double temperature, double humidity) GetData(int pin, PinNumberingScheme?pinNumberingScheme) { var tryCounter = 0; double temperature; double humidity; using var dht = new Dht11(pin, pinNumberingScheme ?? PinNumberingScheme.Logical); do { temperature = dht.Temperature.Celsius; humidity = dht.Humidity; tryCounter++; } while (!dht.IsLastReadSuccessful || tryCounter > MaxRetryCount); if (!dht.IsLastReadSuccessful || double.IsNaN(temperature) && double.IsNaN(humidity)) { throw new Exception($"Чтение данных с датчика не удалось. Кол-во попыток {tryCounter}."); } return(temperature, humidity); }
public Temperature() { var pin = GpioController.GetDefault().OpenPin(4, GpioSharingMode.Exclusive); Dht = new Dht11(pin, GpioPinDriveMode.Input); _timer.Tick += (sender, o) => { // Get Temperature and Humidity Reading GetReading(); }; _timer.Interval = TimeSpan.FromSeconds(1); _timer.Start(); try { _deviceClient = DeviceClient.Create(iotHubUri, new DeviceAuthenticationWithRegistrySymmetricKey(deviceName, deviceKey), TransportType.Http1); } catch (Exception) { //nothing } }
public TemperatureHostedService() { _sensor = new Dht11(SensorPin); }
public static void Main(string[] args) { Console.WriteLine("Hello DHT!"); Console.WriteLine("Select the DHT sensor you want to use:"); Console.WriteLine(" 1. DHT10 on I2C"); Console.WriteLine(" 2. DHT11 on GPIO"); Console.WriteLine(" 3. DHT12 on GPIO"); Console.WriteLine(" 4. DHT21 on GPIO"); Console.WriteLine(" 5. DHT22 on GPIO"); var choice = Console.ReadKey(); Console.WriteLine(); if (choice.KeyChar == '1') { Console.WriteLine("Press any key to stop the reading"); // Init DHT10 through I2C I2cConnectionSettings settings = new I2cConnectionSettings(1, Dht10.DefaultI2cAddress); I2cDevice device = I2cDevice.Create(settings); using (Dht10 dht = new Dht10(device)) { Dht(dht); } return; } Console.WriteLine("Which pin do you want to use in the logical pin schema?"); var pinChoise = Console.ReadLine(); int pin; try { pin = Convert.ToInt32(pinChoise); } catch (Exception ex) when(ex is FormatException || ex is OverflowException) { Console.WriteLine("Can't convert pin number."); return; } Console.WriteLine("Press any key to stop the reading"); switch (choice.KeyChar) { case '2': Console.WriteLine($"Reading temperature and humidity on DHT11, pin {pin}"); using (var dht11 = new Dht11(pin)) { Dht(dht11); } break; case '3': Console.WriteLine($"Reading temperature and humidity on DHT12, pin {pin}"); using (var dht12 = new Dht12(pin)) { Dht(dht12); } break; case '4': Console.WriteLine($"Reading temperature and humidity on DHT21, pin {pin}"); using (var dht21 = new Dht21(pin)) { Dht(dht21); } break; case '5': Console.WriteLine($"Reading temperature and humidity on DHT22, pin {pin}"); using (var dht22 = new Dht22(pin)) { Dht(dht22); } break; default: Console.WriteLine("Please select one of the option."); break; } }
// takes an instant reading or returns the average accumulated value, and returns // the interpreted value adjusted by calibration settings. public async Task <Models.Measurement> GetTemperature() { Measurement result = _lastMeasurement; try { if (_pin == null || _dht11 == null) { int pinNumber = TEMPERATUREDATAPIN; // default if (CalibrationSettings.ContainsKey(TempGpioPinNumberSetting)) { pinNumber = Int32.Parse(CalibrationSettings[TempGpioPinNumberSetting].ToString()); } var c = GpioController.GetDefault(); if (c != null) { _pin = c.OpenPin(pinNumber, GpioSharingMode.Exclusive); if (_pin != null) { _dht11 = new Dht11(_pin, GpioPinDriveMode.Input); } } } if (_dht11 == null) { return(null); } DhtReading reading = await _dht11.GetReadingAsync().AsTask(); for (int retries = 0; retries < 10; retries++) { if (reading.TimedOut) { Debug.Write("."); } else if (!reading.IsValid) { Debug.Write("x"); } else { break; } } if (reading.IsValid) { //Debug.WriteLine($"Temp reading = {reading.Temperature}"); Measurement.UnitsOfMeasure units = Measurement.UnitsOfMeasure.Fahrenheit; if (CalibrationSettings.ContainsKey(PreferredTemperatureUnits)) { units = (Measurement.UnitsOfMeasure)Enum.Parse(typeof(Measurement.UnitsOfMeasure), CalibrationSettings[PreferredTemperatureUnits].ToString()); } Measurement adjust = new Measurement(0.0f, Measurement.UnitsOfMeasure.Fahrenheit); if (CalibrationSettings.ContainsKey(AdjustTemperatureSetting)) { adjust = CalibrationSettings[AdjustTemperatureSetting] as Measurement; } float temperature = (float)reading.Temperature; temperature = Convert(Measurement.UnitsOfMeasure.Celsius, units, temperature); adjust.Amount = Convert(adjust.Units, units, adjust.Amount); adjust.Units = units; temperature += adjust.Amount; // now that we know they are in the same (preferred) units result = new Measurement(temperature, units); _lastMeasurement = result; OnTemperatureChanged(new MeasurementChangedEventArgs(result)); } else { KegLogger.KegLogException(new TemperatureException("Custom: Unable to Read temperature."), "GetTemperature", SeverityLevel.Warning); Debug.WriteLine($"Unable to read temperature."); } } catch (Exception ex) { Debug.WriteLine("Error, " + ex.Message); KegLogger.KegLogException(ex, "GetTemperature", SeverityLevel.Critical); } return(result); }