ChartNew.js, исключение отрисовки значений на графике для определённых данных

Задача: нарисовать на графике, содержащем МНОГО данных, только определенные значения: а именно начальные значения, а так-же отклонения от «средних».

Решение: переопределим в шаблоне inGraphDataTmpl, функцию обработки «вывода значения»:

Про шаблоны переменных можно почитать здесь: https://github.com/FVANCOP/ChartNew.js/wiki/120_Template_variables

Снимок экрана из 2015-12-28 16-16-00

 

Прогноз погоды на arduino.

Продолжаю героически пилить «Умный дом». На текущий момент сделано:  вывод времени, даты, дня недели, погоды на сегодня и завтра, текущей температуры, включение/выключение дисплея по датчику движения.

Не удалось: подружить плату точного времени ds3231 работающую по шине i2C и Ethernet плату ENC28J60 работающую по шине SPI, Пошел какой-то конфликт между платами, разобраться как разрулить не смог. Пришлось время тоже брать с интернета.

11.09.15 - 1Ниже приведен скетч на текущий момент. » Читать далее

Arduino Mega и шина SPI

Теоретически шина SPI на Arduino  позволяет подключать к ней одновременно несколько устройств. Причем активным устройством на текущий момент, для работы скетча будет считаться то устройство, у которого низкий уровень сигнала на пине Cabel Select.

Например, подключаем два устройства к ардуине :  SD картридер и сетевой интерфейс на микросхеме enc28j60, по следующей схеме:

Arduino Mega enc28j60 SD
49 (SS, nCS, CS, CSB, CSN, nSS, STE) CS
50 (SCLK, SCK, CLK) SO SPI_CLK
51 (MOSI, SDI, DI, SI) SI SPI_MOSI
52 (MISO, SDO, DO, SO) SCK SPI_MISO
53 (SS, nCS, CS, CSB, CSN, nSS, STE) SD_CS
GND GND GND
5V VCC 5V

Или может быть понятнее рисунок:

 

 

схема подключения по шине spi двух устройств: enc28j60 и sd реадер

схема подключения по шине spi двух устройств: enc28j60 и sd реадер

Т.е. как мы видим, часть пинов используется совместно, но пины 49 и 53 выделены для управления, для того чтобы скетч и «железка» знали, какое именно устройство в данный момент может передавать данные по общим пинам. Если на управляющем пине низкий уровень напряжения, то скетч и железка считает, что может передавать данные именно та железка, которая подведена к данному пину. Например по моей схеме: если на 49 пине низкий уровень, а на 53 высокий, то работает сетевая карта. И наоборот.

На деле как оказалось конечному пользователю не нужно заморачиватся выставлением уровней на управляющих пинах…если конечно драйвера железок написаны правильно…

Например мой скетч по работе одновременно и с SD и с сетевой картой заработал с полпинка..

Пример скетча: » Читать далее

Русификация utft для arduino

Итак, пришел наконец дисплейчик на микросхеме HX8357B.  Подключил — работает. Демки показывает которые идут к библиотеке utft (взять можно здесь). Да вот беда — русский то шрифт (кириллицу) ожидаемо не поддерживает. Будем исправлять. Первым делом роем интернет. Находим два решения: тут и тут. Первое не интересно тем, что для вывода на экран в кириллице требуется писать код вида:

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

Итог: на основе этих двух решений разработано собственное:

  1. Устанавливаем библиотеку utft
  2. Создаем пустой проект, сохраняем его
  3. В папку проекта закидываем вот этот шрифт: RussianFonts
  4. Далее в проект вставляем следующий код:

Заливаем скетч в Arduino..и вуаля, получаем картинку вида:

04.08.15 - 1

Подключение дисплея 1602a к Arduino

Схема подключения:


collegamenti-lcdРаспиновка по контактам:

Контакт дисплея   Контакт Arduino   Значение

  1                                     GND                                 Vss

  2                                     5V                                    Vdd

  3                                     GND                                 Vo (контрастность)

  4                                     digital 12                        RS

  5                                     digital 11                        R/W

  6                                     digital 10                        ENABLE

  11                                   digital 5                          DB4

  12                                   digital 4                          DB5

  13                                   digital 3                          DB6

  14                                   digital 2                          DB7

  15                                   5V                                    LED+

  16                                   GND                                 LED-

Пример программы:

1 10 11 12 13 14