Оглавление:

Кнопка виртуальной двери с использованием Mongoose OS и XinaBox: 10 шагов
Кнопка виртуальной двери с использованием Mongoose OS и XinaBox: 10 шагов

Видео: Кнопка виртуальной двери с использованием Mongoose OS и XinaBox: 10 шагов

Видео: Кнопка виртуальной двери с использованием Mongoose OS и XinaBox: 10 шагов
Видео: 🔴 ESP32 Установка Mongoose OS 2024, Ноябрь
Anonim
Кнопка виртуальной двери с использованием Mongoose OS и XinaBox
Кнопка виртуальной двери с использованием Mongoose OS и XinaBox

Используя Mongoose и некоторые xChips, мы сделали виртуальную кнопку двери. Вместо физической кнопки для вызова персонала теперь они могут делать это сами.

Шаг 1. Вещи, использованные в этом проекте

Компоненты оборудования

  • XinaBox CW02 x 1 Вместо этого вы можете использовать CW01
  • XinaBox IP01 x 1
  • XinaBox PU01 x 1 Если вы не собираетесь программировать больше модулей, вы можете просто использовать IP01 для питания.
  • XinaBox OC03 x 1
  • XinaBox XC10 x 1 «Клей», благодаря которому все работает!

Программные приложения и онлайн-сервисы

Mongoose OS Действительно потрясающий и простой инструмент для разработки Интернета вещей… и бесплатный

Шаг 2: история

На стойке регистрации нужно было, чтобы наши сотрудники были в курсе, поэтому мы решили воспользоваться нашим собственным лекарством и создать виртуальную кнопку. Этот код позволяет отправлять RPC (удаленный вызов процедур), который выглядит как обычный HTTP-вызов из любого браузера. Мы использовали Mongoose, поскольку с ним действительно легко и быстро работать, и это встроенное обновление кода OTA (по воздуху), что означает, что мы можем установить нашу технологию и все же со временем обновить прошивку, не разбирая ее для перепрограммирования.

Шаг 3: подготовка

  • Установите Mongoose-OS: прямо сейчас, просто следуйте этим очень простым шагам для вашей ОС здесь:
  • Соедините IP01 и CW02 вместе с помощью разъема XC10. См. Изображение ниже:
Изображение
Изображение
  • Вставьте IP01 в порт USB.
  • Убедитесь, что переключатели IP01 находятся в положении B и DCE.
  • Перепрограммируйте Mongoose-OS на CW02 из командной строки. Нравится:

CD

экспорт MOS_PORT = bin / mos flash esp32

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

CD

bin / mos

Шаг 4: Конфигурация

Хотя эти шаги можно выполнить в одном длинном операторе, мы решили разделить их, и, поскольку вы все равно будете копировать и вставлять их, давайте упростим:

Установите контакты I2C на стандарт xChips:

bin / mos config-set i2c.scl_gpio = 14 i2c.sda_gpio = 2

Подключите CW02 к WiFi:

bin / mos Wi-Fi

Отключите Wi-Fi в режиме AP и настройте доменное имя, чтобы вы могли подключаться к CW01 по имени хоста, вместо того, чтобы находить правильный IP-адрес. Это будет работать, только если:

  • Вы отключаете WiFi в режиме AP, как мы это делаем ниже.
  • Либо используйте Mac, либо установите Bonjour на свой компьютер с Windows.

bin / mos вызов Config. Set '{"config": {"wifi": {"ap": {"enable": false}}}}'

bin / mos call Config. Set '{"config": {"dns_sd": {"enable": true}}}' bin / mos call Config. Set '{"config": {"dns_sd": {"host- name ":" xinabox_switch "}}}

И, наконец, вам нужно перезагрузить CW02, чтобы конфигурация заработала

bin / mos вызов Config. Save '{"reboot": true}'

Очень скоро после этого вы сможете пинговать xinabox_switch.local

Шаг 5: Установка

Отключите IP01 от компьютера и соберите схему, как показано на верхнем рисунке.

Подключите PU01 (или, если вы решили использовать IP01) к источнику питания USB. Подключите провода параллельно от существующего переключателя (оставьте это на всякий случай) к OC03 (полярность не имеет значения). См. Рисунок Фритзинга.

После включения питания и проверки того, что вы действительно разговариваете со своим xCW02, как насчет сканирования ШИНЫ, также известной как шина I2C:

bin / mos --port ws: //xinabox_switch.local/rpc вызов I2C. Scan

Если все работает и ваш xOC03 установлен правильно, вы должны увидеть, что будет возвращено число «56». Это адрес I2C OC03 в десятичном виде (в шестнадцатеричном - 0x38).

Шаг 6: программирование

  • Теперь откройте Mongoose в консольном режиме, см. Выше. Он должен открыться с окном, где он запрашивает номер порта, введите: ws: //xinabox_switch.local/rpc
  • Он будет связываться с CW02 и понимать, что устройство уже прошито и подключено к Wi-Fi, поэтому он просто поставит 3 галочки. Закройте окно и обновите список файлов.
  • Скопируйте и вставьте приведенный ниже код в init.js и нажмите «Сохранить + перезагрузить».
  • Теперь ваша схема запрограммирована.

Шаг 7: Тест

Теперь вы реализовали еще один вызов RPC, поэтому с вашего терминала вы можете ввести:

bin / mos --port ws: //xinabox_switch.local/rpc Переключатель вызова

… И ваш зуммер должен сработать на 2 секунды. Вы также можете просто сделать это - почти - из любого браузера:

xinabox_switch.local/rpc/Switch

… С таким же эффектом.

Шаг 8: следующий шаг

Вы можете использовать любой инструмент, который может активировать URL-адрес. Я делаю это из приложения Apple под названием Workflow, которое позволяет мне делать это со своего телефона или в качестве усложнения с моих Apple Watch, но есть много других вариантов. Вот мой сценарий рабочего процесса, но с жестко заданным IP-адресом: Наслаждайтесь!

Изображение
Изображение

Приложение Apple: рабочий процесс - здесь с жестко заданным IP-адресом

Шаг 9: Схема

Цепь зуммера Установите OC03 параллельно имеющейся кнопке.

Загрузите его здесь.

Цепь OC03 Установите OC03 параллельно имеющейся кнопке.

Загрузите его здесь.

Изображение
Изображение

Шаг 10: Код

init.js JavaScript Ваш основной и единственный код для этого проекта.

загрузка ('api_config.js');

загрузка ('api_gpio.js'); загрузка ('api_i2c.js'); загрузка ('api_net.js'); загрузка ('api_sys.js'); загрузка ('api_timer.js'); загрузка ("api_rpc.js"); let led = Cfg.get ('pins.led'); пусть adr = 0x38; let bus = I2C.get (); I2C.writeRegB (шина, адрес, 3, 0); I2C.writeRegB (шина, адрес, 1, 0); / * выключить на всякий случай * / let delay = 2000; GPIO.set_mode (светодиод, GPIO. MODE_OUTPUT); RPC.addHandler ('Switch', function (args) {GPIO.toggle (led); I2C.writeRegB (bus, adr, 3, 0); / * в случае переподключения OC03 * / I2C.writeRegB (bus, adr, 1, 1); Timer.set (delay, false, function () {GPIO.toggle (led); I2C.writeRegB (bus, adr, 1, 0);}, null); return true;});

Рекомендуемые: