SQLite с Node-RED и Raspberry Pi

В этом проекте вы установите пакет SQLite для Node-RED и научитесь писать простые SQL-запросы для взаимодействия с базой данных SQLite.

SQLite с Node-RED и Raspberry Pi — домашняя автоматизация

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

Если вам нравится домашняя автоматизация и вы хотите построить полноценную систему домашней автоматизации, рекомендуем скачать курс по домашней автоматизации.

Базовая настройка Raspberry Pi

Прежде чем продолжить чтение этого проекта, убедитесь, что на вашем Raspberry Pi установлена операционная система Raspbian.

Вы можете прочитать :doc:`Руководство по началу работы с Raspberry Pi </raspberry/rnt/getting-started-with-raspberry-pi/index>` для установки Raspbian и выполнения базовой настройки.

Установка SQLite

Следуйте следующему руководству, чтобы узнать, как установить базу данных SQLite на Raspberry Pi. SQLite должна быть установлена на вашем Raspberry Pi.

Установка Node-RED SQLite

Выполните приведённый ниже список команд для установки node-red-node-sqlite в вашу пользовательскую директорию Node-RED. Этот пакет предоставляет базовый доступ к базе данных SQLite.

pi@raspberry:~ $ sudo apt-get install npm
pi@raspberry:~ $ sudo npm install -g npm@2.x
pi@raspberry:~ $ hash -r
pi@raspberry:~ $ cd ~/.node-red
pi@raspberry:~/.node-red $ npm install node-red-node-sqlite

Перезапустите программное обеспечение Node-RED следующими командами, чтобы изменения вступили в силу:

pi@raspberrypi:~/.node-red $ cd
pi@raspberrypi:~ $ node-red-stop
pi@raspberrypi:~ $ node-red-start

Проверка установки

Когда программное обеспечение Node-RED снова запустится, вы можете открыть его, введя IP-адрес RPi в веб-браузере, за которым следует :1880, следующим образом:

http://YOUR_RPi_IP_ADDRESS:1880

В моём случае это:

http://192.168.1.98:1880

Новый узел под названием sqlite должен появиться слева на вкладке storage:

Узел SQLite установлен в Node-RED

Создание потока (flow)

В этом потоке вы отправите 5 SQL-запросов (CREATE, INSERT, SELECT, DELETE и DROP) в вашу базу данных SQLite. Выполните следующие 10 шагов, чтобы создать свой поток:

  1. Перетащите 5 узлов inject, 1 узел sqlite и 1 узел debug

Перетаскивание узлов в Node-RED
  1. Нажмите кнопку Add new sqlitedb

Настройка SQLite в Node-RED
  1. Введите /tmp/sqlite в поле Database

Настройки базы данных SQLite по умолчанию
  1. Настройте ваш узел inject CREATE следующим образом

CREATE TABLE dhtreadings(id INTEGER PRIMARY KEY AUTOINCREMENT, temperature NUMERIC, humidity NUMERIC, currentdate DATE, currenttime TIME, device TEXT)
Настройка узла inject CREATE
  1. Настройте ваш узел inject INSERT

INSERT INTO dhtreadings(temperature, humidity, currentdate, currenttime, device) values(22.4, 48, date('now'), time('now'), "manual")
Настройка узла inject INSERT
  1. Настройте ваш узел inject SELECT

SELECT * FROM dhtreadings
Настройка узла inject SELECT
  1. Настройте ваш узел inject DELETE следующим образом

DELETE from dhtreadings
Настройка узла inject DELETE
  1. Настройте ваш узел inject DROP

DROP TABLE dhtreadings
Настройка узла inject DROP
  1. Соедините все ваши узлы

Все узлы соединены в Node-RED
  1. Чтобы сохранить ваше приложение, нажмите кнопку deploy в правом верхнем углу

Кнопка deploy в Node-RED

Ваше приложение сохранено и готово к работе.

Тестирование потока

Давайте протестируем простой поток. Откройте окно debug и нажмите первый узел inject, чтобы запустить SQL-запрос CREATE. Затем выполните следующую процедуру:

  1. CREATE

  2. INSERT

  3. SELECT

  4. INSERT

  5. SELECT

  6. DELETE

  7. DROP

Результат выполнения CREATE и SELECT в Node-RED

Как вы можете видеть, схема базы данных была создана, данные были вставлены, вы можете выбрать данные из таблицы dhtreadings, удалить их и удалить таблицу.

Результаты тестирования SQLite в Node-RED

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

Заключение

Эта статья является кратким руководством по отправке простых SQL-запросов в базу данных SQLite с помощью Node-RED. Вы можете применить эту концепцию для создания сложной базы данных, которая действительно хранит полезные показания.

Нравится домашняя автоматизация? Узнайте больше о Node-RED, Raspberry Pi, ESP8266 и Arduino с нашим курсом: Построй систему домашней автоматизации за $100.