diff --git a/motion_app.c b/motion_app.c
new file mode 100644
index 0000000000000000000000000000000000000000..b42c58e2c80bc4c59973c04e357e90f079e1338d
--- /dev/null
+++ b/motion_app.c
@@ -0,0 +1,51 @@
+#include <stdio.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <stdlib.h>
+
+#include <sys/stat.h>
+#include <sys/ioctl.h>
+#include <sys/types.h>
+#include <sys/ioctl.h>
+#include <sys/sysmacros.h>
+
+
+#define MOTION_MAJOR_NUMBER	500
+#define MOTION_MINOR_NUMBER 100
+#define MOTION_DEV_PATH_NAME 	"/dev/motion_ioctl"
+
+#define IOCTL_MAGIC_NUMBER		'm'
+#define IOCTL_CMD_MOTION_ON					_IO(IOCTL_MAGIC_NUMBER, 0)
+#define IOCTL_CMD_MOTION_OFF				_IO(IOCTL_MAGIC_NUMBER, 1)
+
+int main(void) {
+	dev_t motion_dev;
+	int fd;
+	motion_dev = makedev(MOTION_MAJOR_NUMBER, MOTION_MINOR_NUMBER);
+	mknod(MOTION_DEV_PATH_NAME, S_IFCHR | 0666, motion_dev);
+
+
+	fd = open(MOTION_DEV_PATH_NAME, O_RDWR);
+
+	if (fd < 0) {
+		printf("fail to open motion\n");
+		return -1;
+	}
+
+	int i = 0;
+
+	while (i < 100) {
+		if (ioctl(fd, IOCTL_CMD_MOTION_ON, 0) == 1) {
+			printf("HIGH\n");
+			sleep(1);
+			i++;
+		}
+		else
+			printf("LOW\n");
+		sleep(1);
+		i++;
+	}
+
+	close(fd);
+	return 0;
+}