Пример чтения изображения матрицы 8x8 на Arduino UNO

Нам понадобится

  • Отладочная плата AVR. Предпочтительно Arduino UNO/Piranha UNO или любая другая плата AVR, совместимая с Ethernet шилдом. Если Ваша панель использует большое количество переменных и/или Ваш скетч использует большое количество библиотек, необходимо использовать отладочную плату на базе микроконтроллера с большей статической и динамической памятью, такую как Arduino MEGA или Piranha ULTRA
  • Ethernet шилд W5500 (если Вы используете шилд на базе чипа ENC28J60, необходимо использовать отладочную плату на базе микроконтроллера с большей статической и динамической памятью, такую как Arduino MEGA или Piranha ULTRA, при этом необходимо скачать и установить последнюю версию библиотеки UIPEthernet и изменить в скетче Ethernet.h на UIPEthernet.h).
  • модуль LED Матрица 8x8 - i2c
  • Провод RJ45-RJ45 категории cat5e.
  • Маршрутизатор со свободным гнездом RJ-45 LAN.
  • Подключение к сети Интернет.

Создание переменной на сайте iocontrol.ru

Подробнее о создании переменных и работе с API на сайте Вы можете узнать по этой ссылке

  1. Если у Вас уже есть созданная панель, пропустите этот шаг, если у Вас ещё не создано ни одной панели, создайте её руководствуясь нашей инструкцией.
  2. Теперь зайдите в одну из созданных ранее панелей сначала нажав на вкладку "ПАНЕЛИ" (сверху, если Вы находитесь на десктоповом сайте, или снизу, если Вы используете мобильное приложение или мобильную версию сайта) и, затем, на название созданной Вами ранее панели.
  3. Внутри панели нажмите "Создать переменную". Введите название переменной, например myString, выберите тип переменной "Текстовая" Нажмите создать. В Вашей панели появится новая карточка с названием переменной.
  4. Нажмите на шестеренку в правом верхнем углу карточки переменной
  5. Нажмите на меню "Вид панели" справа от карточки переменной и выберите "Матрица 8x8".
  6. Нажмите кнопку "Сохранить"
  7. Перейдите в панель в навигаторе сверху от карточки переменной
  8. Теперь Ваша переменная имеет вид монохромной матрицы 8x8 и её изображение можно менять прямо в панели

Подключение оборудования

Подключите Ethernet Shield к Arduino UNO

Подключите Arduino к ПК, подключите Ethernet Shield к сети LAN

Скетч Arduino

Если Вы никогда не работали в среде разработки Arduino, по этой ссылке можно узнать как её установить и настроить.

Для работы с библиотекой её необходимо установить в Arduino IDE. Для установки скачайте библиотеку и в Arduino IDE в меню выберите Скетч -> Подключить библиотеку -> Добавить .ZIP библиотеку и выберите скачанный .zip файл библиотеки. Подробнее об установке библиотек можно узнать по этой ссылке.

Для работы с I2C матрицей 8x8 необходимо установить библиотеку iarduino_I2C_Matrix_8x8.

В скетче ниже необходимо заменить "название_панели" на название Вашей панели и "название_переменной" на название переменной, которую мы создали ранее (например "myMatrix")

#include <iocontrol.h>
#include <SPI.h>
#include <Ethernet.h>
#include <iarduino_I2C_Matrix_8x8.h>

// Переменная для хранения изображения матрицы
uint8_t image[8]{0};

// Название панели на сайте iocontrol.ru
const char* myPanelName = "название_панели";
// Название переменной с типом int на сайте iocontrol.ru
const char* myVarName = "название_переменной";

// Создаём объект клиента класса EthernetClient
EthernetClient client;
// Создаём объект iocontrol, передавая в конструктор название панели и клиента
iocontrol mypanel(myPanelName, client);

// MAC адреса Ethernet шилда. Должен быть уникальным в сети
byte mac[] = {
    0xFE, 0xED, 0xDE, 0xAD, 0xFA, 0xCC
};

// Объект I2C матрицы
iarduino_I2C_Matrix_8x8 disp;

void setup()
{
    Serial.begin(9600);
    Ethernet.begin(mac);

    // Инициируем матрицу 8x8
    disp.begin();

    // Выключаем все светодиоды матрицы
    disp.clrScr();

    // Вызываем функцию первого запроса к сервису
    mypanel.begin();
}

void loop()
{
    // Обновляем переменные в памяти и записываем
    // статус запроса в переменную
    int status = mypanel.readUpdate();

    // Если статус равен константе OK...
    if (status == OK) {
        // Записываем значение в переменную
        mypanel.readMatrix(myVarName, image);

        // Выводим изображение на матрицу 8x8
        disp.drawImage(image);
    }
}

Выберите последовательный порт к которому подключена отладочная плата нажав в меню Инструменты -> Порт -> %НОМЕР ПОРТА%, затем нажмите на кнопку загрузка или на клавиатуре ctrl+u.

Теперь на подключённую I2C матрицу 8x8 будет выводиться изображение из переменной с сайта.

О сервисе
Библиотека
    Для работы с Arduino, Piranha, ESP32 или ESP8266
  • Скачать: ZIP, GitHub