آموزش اینترنت اشیا (Iot) در سی شارپ دریافت ورودی باینری با استفادع از GPIO
سلام دوستان
خوش آمدید به دومین قسمت از آموزش متنی اینترنت اشیا در سی شارپبا عنوان "دریافت ورودی باینری با استفادع از GPIO"
پیش نیاز ها:
- Raspberry Pi ورژن 2 یا بالاتر (دانلود)
- Breadboard
- Jumper wires
- برد Raspberry Pi GPIO breakout (اختیاری)
- NET SDK 6 یا بالاتر
سخت افزار را به شکل زیر آماده کنید
ارتباط مستقیم بین ground و پین 21
یک پروژه console app ایجاد کنید
از طریق Nuget Package Manager کتاب خانه
System.Device.Gpio
را نصب کنید
کد زیر را در کلاس program.cs خود کپی کنید
using System.Device.Gpio;
using System.Threading.Tasks;
const int Pin = 21;
const string Alert = "ALERT 🚨";
const string Ready = "READY ✅";
using var controller = new GpioController();
controller.OpenPin(Pin, PinMode.InputPullUp);
Console.WriteLine(
$"Initial status ({DateTime.Now}): {(controller.Read(Pin) == PinValue.High ? Alert : Ready)}");
controller.RegisterCallbackForPinValueChangedEvent(
Pin,
PinEventTypes.Falling | PinEventTypes.Rising,
OnPinEvent);
await Task.Delay(Timeout.Infinite);
static void OnPinEvent(object sender, PinValueChangedEventArgs args)
{
Console.WriteLine(
$"({DateTime.Now}) {(args.ChangeType is PinEventTypes.Rising ? Alert : Ready)}");
}
توضیحات کد:
از روی GpioController
نمونه سازی شده است
GPIO pin 21 با استفاده از تکه کد PinMode.InputPullUp باز می شود
از نرم افزار بیلد بگیرید
برنامه را به عنوان یک برنامه مستقل در Raspberry Pi بگذارید برای اینکار به استقرار برنامههای NET در Raspberry Pi مراجعه کنید.
برنامه را اجرا کنید
پین 21 را از ground قطع کنید
(05/10/2022 15:59:59) ALERT 🚨
پین 21 را به ground وصل کنید
(05/10/2022 16:00:25) READY ✅
پایان.