Рубрики
Без рубрики

Джонни Файв, получающий входные данные от устройства

Этот пост является частью серии “Джонни Файв”. Смотрите первый пост здесь. В этом посте я хочу получить информацию с электронного устройства с помощью Johnny Five. В частности, я хочу использовать датчик уровня воды. Это подскажет мне, достаточно ли у меня кофе или он у меня заканчивается, и мне нужно снова наполнить чашку, чтобы быть работающим программистом.

Этот пост является частью серии “Джонни Файв”. Смотрите первый пост здесь.

В этом посте я хочу получить информацию с электронного устройства с помощью Johnny Five.

В частности, я хочу использовать датчик уровня воды. Это подскажет мне, достаточно ли у меня кофе или он у меня заканчивается, и мне нужно снова наполнить чашку, чтобы быть работающим программистом.

Это и есть датчик:

Мы собираемся подключить небольшую схему, чтобы получить эти данные, и мы собираемся использовать Джонни Файва, чтобы передать эти данные в наш Node.js приложение.

Датчик имеет 3 контакта. Один – GND (0 В), один – VCC (5 В), а другой – аналоговый вывод данных.

Добавьте вывод, помеченный как - , в GND, + в 5 В и подключите S к аналоговому контакту A0 .

Вот схема:

Теперь давайте создадим sensor.js файл с этим содержимым:

const { Board, Sensor } = require("johnny-five")
const board = new Board()

board.on("ready", () => {
  const sensor = new Sensor("A0")

  sensor.on("change", function () {
    console.log(this.value)
  })
})

Всякий раз, когда данные, поступающие через датчик, изменяются, мы увидим, что они выводятся на консоль:

Я использовал метод on() для объекта sensor , чтобы отслеживать все изменения.

Все методы подробно описаны здесь , но меня особенно интересует метод внутри() , который позволяет мне определять обратный вызов, который запускается, когда значение находится в определенном диапазоне:

const { Board, Sensor } = require("johnny-five")
const board = new Board()

board.on("ready", () => {
  const sensor = new Sensor("A0")

  sensor.within([0, 70], function () {
    console.log("Refill your coffee!!")
  })
})

Если у меня начнет заканчиваться кофе, программа напечатает “Пополните свой кофе!! “много раз, потому что значение продолжает меняться, пока датчик становится суше.

Итак, давайте создадим переменную из кофе , которую мы можем использовать для отмены сбора данных.

Мы также заявляем, что до 70 лет у нас закончился кофе, а выше 150 у нас достаточно:

const { Board, Sensor } = require("johnny-five")
const board = new Board()

board.on("ready", () => {
  const sensor = new Sensor("A0")
  let outOfCoffee = false

  sensor.within([0, 70], () => {
    if (!outOfCoffee) {
      outOfCoffee = true
      console.log("Refill your coffee!!")
    }
  })

  sensor.within([150, 500], () => {
    if (outOfCoffee) {
      outOfCoffee = false
      console.log("Ok, you can go on programming!!")
    }
  })
})

Вот и все, теперь, если я попытаюсь переместить датчик в/из чашки кофе, я получу еще несколько полезных предупреждений:

Оригинал: “https://flaviocopes.com/johnny-five-input/”