Я увлекаюсь выращиванием растений и хотелось знать уровень освещенности, так как для растений есть рекомендуемые уровни освещенности. На алиэкспрессе был куплен калиброванный датчик BH1750. Также в интернете есть информfция про китайский плеер, позволяющий из него что то собрать, так как есть уже и библиотека для дисплея. И мне захотелось скрестить их: дисплей, ардуину, датчик и конечно все на питании от встроенного в плеер аккумулятора.

Собственно получилось вот что:



Компактный люксметр в корпусе плеера.

Характеристики люксметра определяются датчиком, а он может измерять освещенность от 1 до 65535 люкс.

Как видно на фото на экране кроме цифр ничего нет, даже единиц измерения. Я не стал делать потому что не вижу в этом необходимости, да и экран мелкий. Контроля батареи нет.

Я покупал плеер здесь. Ссылку привожу потому что в данном корпусе есть минимум 2 варианта платы, а контакты привожу для своей.

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

Сборка:

1. Плеер аккуратно разобрать, все детали сохранить! Они вам еще пригодятся.
2. Аккумулятор временно отпаять. Выпаять родной контроллер, разъем 3.5мм (для наушников), разъем для карты памяти, светодиод фонарика.
3. Нужна Arduino Pro Mini, у меня была только 5В 16мгц, но она успешно работает и от 3.3В. И разумеется нужен переходник USB-UART на 3.3В.
4. Нужен тонкий провод. У меня МГТФ, диаметр не помню, но толстый для этой задачи, с трудом засунул, берите сразу максимально тонкий.

Схему я не делал, нужные контакты указаны на картинках:






Так как ни одна имеющаяся библиотека для дисплея меня не устроила, написал свой код, включая управление дисплеем на основе одной из них. Код разбит по файлам, компилировался в Arduino IDE 1.6.12.

Luxmeter_mod2.ino
#include <avr/pgmspace.h>
#define pgm     pgm_read_byte
#include <Wire.h>
#include <BH1750.h>

BH1750 lightMeter;
unsigned int lux;

#define CS      10
#define Data    11
#define Clock   13
#define DC      A0

#define LCD_X        128
#define LCD_Y        64
#define LCD_String    8
#define swap(a, b) { int t = a; a = b; b = t; }

#define LCD_D         1
#define LCD_C         0

byte LCD_RAM[LCD_X*LCD_String];

#define BLACK 1
#define WHITE 0

#define LCDWIDTH 128
#define LCDHEIGHT 64

#define CMD_DISPLAY_OFF   0xAE
#define CMD_DISPLAY_ON    0xAF

#define CMD_SET_DISP_START_LINE  0x40
#define CMD_SET_PAGE  0xB0

#define CMD_SET_COLUMN_UPPER  0x10
#define CMD_SET_COLUMN_LOWER  0x00

#define CMD_SET_ADC_NORMAL  0xA0
#define CMD_SET_ADC_REVERSE 0xA1

#define CMD_SET_DISP_NORMAL 0xA6
#define CMD_SET_DISP_REVERSE 0xA7

#define CMD_SET_ALLPTS_NORMAL 0xA4
#define CMD_SET_ALLPTS_ON  0xA5
#define CMD_SET_BIAS_9 0xA2 
#define CMD_SET_BIAS_7 0xA3

#define CMD_RMW  0xE0
#define CMD_RMW_CLEAR 0xEE
#define CMD_INTERNAL_RESET  0xE2
#define CMD_SET_COM_NORMAL  0xC0
#define CMD_SET_COM_REVERSE  0xC8
#define CMD_SET_POWER_CONTROL  0x28
#define CMD_SET_RESISTOR_RATIO  0x20
#define CMD_SET_VOLUME_FIRST  0x81
#define  CMD_SET_VOLUME_SECOND  0
#define CMD_SET_STATIC_OFF  0xAC
#define  CMD_SET_STATIC_ON  0xAD
#define CMD_SET_STATIC_REG  0x0
#define CMD_SET_BOOSTER_FIRST  0xF8
#define CMD_SET_BOOSTER_234  0
#define  CMD_SET_BOOSTER_5  1
#define  CMD_SET_BOOSTER_6  3
#define CMD_NOP  0xE3
#define CMD_TEST  



Font.ino
#include <avr/pgmspace.h>
//цифры размером 16х32 пикселей
static const char mass16x32 [10][64] PROGMEM ={
{   0xF8, 0xFC, 0xFA, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xFA, 0xFC, 0xF8, //0
    0x3F, 0x7F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x3F,
    0xFE, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFE,
    0x1F, 0x3F, 0x5F, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x5F, 0x3F, 0x1F},

{   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFC, 0xF8, //1
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x3F,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFE,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x3F, 0x1F},

    {0x00, 0x00, 0x02, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xFA, 0xFC, 0xF8, //2
    0x00, 0x00, 0x80, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xBF, 0x7F, 0x3F,
    0xFE, 0xFF, 0xFE, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
    0x1F, 0x3F, 0x5F, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x40, 0x00, 0x00},

    {0x00, 0x00, 0x02, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xFA, 0xFC, 0xF8, //3
    0x00, 0x00, 0x80, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xBF, 0x7F, 0x3F,
    0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xFE, 0xFF, 0xFE,
    0x00, 0x00, 0x40, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x5F, 0x3F, 0x1F},

    {0xF8, 0xFC, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFC, 0xF8, //4
    0x3F, 0x7F, 0xBF, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xBF, 0x7F, 0x3F,
    0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xFE, 0xFF, 0xFE,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x3F, 0x1F},

    {0xF8, 0xFC, 0xFA, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x02, 0x00, 0x00, //5
    0x3F, 0x7F, 0xBF, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xFE, 0xFF, 0xFE,
    0x00, 0x00, 0x40, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x5F, 0x3F, 0x1F},

    {0xF8, 0xFC, 0xFA, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x02, 0x00, 0x00, //6
    0x3F, 0x7F, 0xBF, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00,
    0xFE, 0xFF, 0xFE, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xFE, 0xFF, 0xFE,
    0x1F, 0x3F, 0x5F, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x5F, 0x3F, 0x1F},

    {0x00, 0x00, 0x02, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xFA, 0xFC, 0xF8, //7
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x7F, 0x3F,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFE,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x3F, 0x1F},

    {0xF8, 0xFC, 0xFA, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xFA, 0xFC, 0xF8, //8
    0x3F, 0x7F, 0xBF, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xBF, 0x7F, 0x3F,
    0xFE, 0xFF, 0xFE, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xFE, 0xFF, 0xFE,
    0x1F, 0x3F, 0x5F, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x5F, 0x3F, 0x1F},

    {0xF8, 0xFC, 0xFA, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xFA, 0xFC, 0xF8, //9
    0x3F, 0x7F, 0xBF, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xBF, 0x7F, 0x3F,
    0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xFE, 0xFF, 0xFE,
    0x00, 0x00, 0x40, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0x5F, 0x3F, 0x1F}};

<source lang="arduino">


LCD.ino
#include <avr/pgmspace.h>
//======================================================Очистка дисплея
void Clear_LCD() {
  for (int index = 0; index < 864 ; index++) {
    LCD_RAM[index] = (0x00);
  }
}

//=======================================================Управление пинами
void dWrite(byte pin, byte val) {
  byte bit = digitalPinToBitMask(pin);
  volatile byte *out;
  out = portOutputRegister(digitalPinToPort(pin));
  (val) ? *out |= bit : *out &= ~bit;
}

#define _BV(bit) (1<<(bit))
//=========================================================Отправка 8 байт
void SendByte(byte mode, byte c) {
  dWrite(CS, 0);
  (mode) ? dWrite(DC, 1) : dWrite(DC, 0);
  for (byte i = 0; i <8; i++) {
    dWrite(Clock, 0);
    (c & 0x80) ? dWrite(Data, 1) : dWrite(Data, 0);
    dWrite(Clock, 1);
    c <<= 1;
  }
}

//=====================================================Обновить дисплей
void Update() {
  for (byte p = 0; p < 8; p++) {
    //SendByte(LCD_C, CMD_SET_PAGE | pagemap[p]);
    SendByte(LCD_C, CMD_SET_PAGE | p);

    byte col = 0;

    SendByte(LCD_C, CMD_SET_COLUMN_LOWER | (1 & 0xf));
    SendByte(LCD_C, CMD_SET_COLUMN_UPPER | ((1 >> 4) & 0x0F));
    SendByte(LCD_C, CMD_RMW);

    for (byte col = 0; col < LCD_X; col++) {
      SendByte(LCD_D, LCD_RAM[(LCD_X * p) + col]);
    }
  }
}


//===================================================Нарисовать пиксель
void drawPixel (byte x, byte y, boolean color) {
  if ((x < 0) || (x >= LCD_X) || (y < 0) || (y >= LCD_Y)) return;

  if (color) LCD_RAM[x + (y / 8)*LCD_X] |= _BV(y % 8);
  else       LCD_RAM[x + (y / 8)*LCD_X] &= ~_BV(y % 8);
}

//======================================================Вывод картинки
void drawBitmap(byte x, byte y, const char *bitmap, byte w, byte h, boolean color) {
  for (int16_t j = 0; j < h; j++) {
    for (int16_t i = 0; i < w; i++ ) {
      if (pgm(bitmap + i + (j / 8)*w) & _BV(j % 8)) {
        drawPixel(x + i, y + j, color);
      }
    }
  }
}

//========================================================================
//                        Управление дисплеем
//========================================================================




//===================================================Инициализация дисплея
void Inicialize() {
  pinMode(CS,    OUTPUT);
  pinMode(Data,  OUTPUT);
  pinMode(Clock, OUTPUT);
  pinMode(DC, OUTPUT);

  // Инициализация дисплея
  dWrite(CS, 0);
  delay(500);

  SendByte(LCD_C, CMD_SET_BIAS_7);              // LCD bias select
  SendByte(LCD_C, CMD_SET_ADC_NORMAL);          // ADC select
  SendByte(LCD_C, CMD_SET_COM_REVERSE);          // SHL select
  SendByte(LCD_C, CMD_SET_DISP_START_LINE);     // Initial display line
  SendByte(LCD_C, CMD_SET_POWER_CONTROL | 0x4); // turn on voltage converter (VC=1, VR=0, VF=0)
  delay(50);
  SendByte(LCD_C, CMD_SET_POWER_CONTROL | 0x6); // turn on voltage regulator (VC=1, VR=1, VF=0)
  delay(50);
  SendByte(LCD_C, CMD_SET_POWER_CONTROL | 0x7); // turn on voltage follower (VC=1, VR=1, VF=1)
  delay(10);
  SendByte(LCD_C, CMD_SET_RESISTOR_RATIO | 0x6); // set lcd operating voltage (regulator resistor, ref voltage resistor)

  SendByte(LCD_C, CMD_DISPLAY_ON);
  SendByte(LCD_C, CMD_SET_ALLPTS_NORMAL);

  SendByte(LCD_C, CMD_SET_DISP_REVERSE);

  SendByte(LCD_C, CMD_SET_VOLUME_FIRST);
  SendByte(LCD_C, CMD_SET_VOLUME_SECOND | (0 & 0x3f));

  Clear_LCD();
  Update();
}

//=========================Вывод символа 16х32 пикселя в координаты XY
void simb16x32(byte x, byte y, boolean color, byte c) {
  for (byte k = 0; k < 4; k++) {
    for (byte i = 0; i < 16; i++) {
      byte line = pgm(&(mass16x32[c][i + k * 16]));
      for (byte j = 0; j < 8; j++) {
        (line & 0x01) ? drawPixel(x + i, y + j + k * 8, color) : drawPixel(x + i, y + j + k * 8, !color);
        line >>= 1;
      }
    }
  }
}
<source lang="arduino">


Main.ino
#include <avr/pgmspace.h>
void setup(){
  Inicialize();
  lightMeter.begin();
}
+
void loop(){
  lux = lightMeter.readLightLevel();
  simb16x32(95,  17, 1, lux%10);
  lux/=10;
  simb16x32(75,  17, 1, lux%10);
  lux/=10;
  simb16x32(55,  17, 1, lux%10);
  lux/=10;
  simb16x32(35,  17, 1, lux%10);
  lux/=10;
  simb16x32(15,  17, 1, lux%10);

  Update();
  delay(300);
}
<source lang="arduino">


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

Есть также видео, но без звука. Хотел отдельно записать, но оказалось ни один мой микрофон не может это нормально сделать.

Поделиться с друзьями
-->

Комментарии (67)


  1. Rumlin
    23.01.2017 13:48

    off более тонкие провода можно добыть из шлейфа IDE 80 pin /off


    1. jeka_tm
      23.01.2017 13:54

      К сожалению дома много разных проводов, но ни одного такого шлейфа.


      1. zzzmmtt
        24.01.2017 09:45

        USB провод любой раздербанили бы, там тоже довольно тонкие, либо провод от копеешных наушников, там очень тонкие провода.


        1. jeka_tm
          24.01.2017 09:50

          Как вариант. У меня есть медний эмалированный лудащийся провод 0,3 кажется. Но он так воняет когда лудишь (просто прикладываешь разогретый паяльник с флюсом эмаль расплавляется и провод залуживается). Но если что буду иметь в виду, если еще одна задумка что можно сделать из плеера


          1. zzzmmtt
            24.01.2017 09:58

            Вспомнил где ещё находил тонкие провода — в недорогой китайской зарядке с micro USB, она успешно выгорела и пошла на дербан.


            1. jeka_tm
              24.01.2017 10:00

              Короче usb кабеля


          1. Alyoshka1976
            24.01.2017 11:52

            какой у Вас флюс? я эмалированные провода залуживаю ацетилсалициловой кислотой (таблетки цитрамона), но суровые на запах и ощущения химические соединения, выделяющиеся при этом, ни разу не полезны. Может Ваш флюс помягче будет?


            1. jeka_tm
              24.01.2017 12:27

              У меня припой с флюсом FC-5000. Запах не от флюса, а эмали. Это эмалированный провод ПЭВЛ или что то вроде, последняя Л означает лудящийся. Чистить провод не надо, просто отрезал, погрел паяльником он залудился. Но вонь как от цитрамона.


              1. Alyoshka1976
                24.01.2017 12:40

                Спасибо! Да, «Л» — способность провода облуживаться без предварительного удаления изоляции.


                1. jeka_tm
                  24.01.2017 12:51

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


                  1. Alyoshka1976
                    24.01.2017 12:54

                    Есть такие резисторы, но мне доступны только стоваттные :-) Расход припоя будет эпическим при их использовании. Хотя, конечно, заглушку можно перемещать. Сама идея, безусловно, интересна.


                    1. jeka_tm
                      24.01.2017 12:57

                      У меня была идея другая еще. Взять металлическую гильзу обмакнуть в гипс или раствор цементный. Высушить, будет тонкий слой. На него намотать нихромовую проволоку и снова в гипс. высушить и все готово. Почему расход будет эпическим? Испарятся будет?


                      1. Alyoshka1976
                        24.01.2017 13:00

                        Там диаметр отверстия большой.


                        1. jeka_tm
                          24.01.2017 13:04

                          Так есть резисторы небольшого размера. И припой за 100р купил без флюса и наверно еще останется. Или делать самодельный


              1. Alyoshka1976
                24.01.2017 15:28

                P.S. Запах от эмали — это ладно, это не страшно. Там газообразные вещества, по опыту весьма быстро и негативно влияющие на верхние дыхательные пути, выделяются. Если сюда заглянет химик, возможно, он подскажет цепочку реакций при термическом разложении C?H?O?


                1. jeka_tm
                  24.01.2017 15:40

                  Да уже запаха достаточно чтобы не хотеть его использовать. А судя по тому какой этот дым едкий вряд ли что то безобидное


                1. spinagon
                  25.01.2017 14:47

                  Ну, я химик.
                  http://www.revistadechimie.ro/article_eng.asp?ID=2191
                  Похоже, что в основном летит уксусная кислота, салициловая кислота и фенол.


                  1. jeka_tm
                    25.01.2017 14:48

                    Насколько это опасно?


                    1. Alyoshka1976
                      25.01.2017 15:43

                      «Фенол С6Н5ОН – искусственное соединение с резким характерным запахом.
                      … является крайне токсичным для человека и животных.
                      При вдыхании фенол вызывает нарушение деятельности нервной и сердечнососудистой системы.
                      Пары… оказывают раздражающее действие на кожу, слизистые оболочки дыхательных путей и глаз,… поражают внутренние органы, особенно почки и печень.»
                      Хм, я не полагал, что всё настолько плохо :-)
                      Так что цитрамон
                      "лесом или полем,
                      Ты иди — со мной не надо!
                      Хошь в долинах, хошь — по взгорьям,
                      Лишь бы — не были мы рядом!!!
                      "
                      (С) Марковцев Ю.


                      1. jeka_tm
                        25.01.2017 15:44

                        )) рано или поздно итак умрем


                        1. Alyoshka1976
                          25.01.2017 15:50

                          :-) В 40 лет смотришь на это немного по-другому.
                          «Тебя как, сразу прикончить, или желаешь помучиться?
                          Лучше, конечно, помучиться.» ;-)


                          1. jeka_tm
                            02.02.2017 14:18

                            А чего так боятся? Многое уже сделано, далее физические и умственные способности только падают, здоровье будет хуже. Жить чтобы просто жить, если хоть мечта ради которой. Дети вырастут и так не будут постоянно у тебя, да и самому это не будет нужно, ты же будешь старый, а с внуком сидеть сил потребуется немало. Хобби разве что и больше свободного времени, уж точно не сериалы только смотреть, или водку жрать, или в окошко смотреть жалея о потраченном времени. Может и кажется это пессимизмом, но для меня это просто здравый подход. Я скорее оптимист, но без витания постоянно в мечтах. Поговорим через 9 лет. Мне будет как раз 40.


                            1. Alyoshka1976
                              02.02.2017 19:14

                              Однако :-))))))))))))))))))))))))))))))))


    1. progchip666
      23.01.2017 17:42
      +1

      они не всегда паяются, в последнее время стали делать из какого то г…


      1. jeka_tm
        23.01.2017 17:52

        такое тоже встречал. они еще и магнитятся. много китайских проводов, в том числе и USB магнитятся


      1. Rumlin
        23.01.2017 19:20
        +1

        Все шлейфы подряд не проверял. Как-то оставил себе несколько как раз для мелкой пайки — как минимум они омедненные и лудятся сразу.


        1. WildHorn
          24.01.2017 16:20

          У меня они либо не лудились, либо изоляция плавилась слишком активно. В конце концов добыл себе катушку тонкого МГТФ из старых советских «закромов родины».


          1. jeka_tm
            24.01.2017 16:47

            На Митинском радиорынке можно купить, лень ехать, хоть на машине хоть на метро далеко и долго


  1. vvmk
    23.01.2017 13:54
    +1

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

    По плате вижу, что китайская «схема зарядки» состоит из резистора и диода, с +5В mini USB коннектора прямо на контакт аккумулятра.
    А на аккумуляторе вижу отсутвие платы защиты. Отсюда перезарядка и вспухание.
    Исходя из этого напишите что родную схему лучше вообще не использовать а поставить копеечный модуль TP4056 и очень желательно со схемой защиты аккумулятора.
    И еще вопрос, это вы сами среверсили подключение к дисплею или есть какой-то ресурс по этому вопросу?
    Если есть, то приведите ссылку, интересно больше подробностей.
    А за статью сапсибо, очень интересно, на GT сейчас таких статей очень мало.


    1. jeka_tm
      23.01.2017 14:05

      Да я знаю о недостатках схемы зарядки, хотелось сделать так чтобы больше количество людей могло повторить. Я могу просто развести нормальную плату и на ней все сделать, но платы не все могут делать. Только поэтому я стал делать все на проводах.
      TP4056 просто так тоже не установишь внутрь, места нет под него, если только под датчик освещенности засунуть. Может и поместится.
      Библиотеку кажется эту брал, но там так заморочено сделаy массив видеопамяти. Пытался сначала просто через вывод картинки свои шрифты вывести, ничего не получилось хорошего. Точнее выводится на внизу экрана, в центр так и не удалось? буквы разрывает, половина снизу, половина сверху. Поэтому и брал свой код от дисплея 1202 и допилил для работы с ST7565


  1. APLe
    23.01.2017 14:08

    Я, в своё время, решил аналогичную задачу с помощью фотоэкспонометра Ленинград-4 (проверил на Авито, продаются в больших количествах по 100-200 рублей) и таблички пересчёта.
    Решение, наверное, менее точное и менее интересное в техническом плане, но существенно более простое.
    Единственное что – при покупке фотоэкспонометра нужно следить, чтобы матовая светорассеивающая пластинка не была утеряна. Без неё экспонометр будет измерять не освещённость, а яркость.


    1. jeka_tm
      23.01.2017 14:15

      Я не разбираюсь в этих тонкостях, что такое освещенность, а что яркость. Поэтому и был выбран готовый калиброванный датчик. Он конечно врет, информацию находил в интернете, но в целом достаточно неплохой. У меня есть еще один, который по характеристикам лучше, но пусть лежит ждет своего часа.


      1. mihmig
        24.01.2017 10:59

        Он врёт постоянно? Может можно с помощью профессионального люксметра построить таблицу пересчёта и загрузить её в код?


        1. jeka_tm
          24.01.2017 11:01

          Сравнивали его с нормальным, где то больше где меньше, но в целом данные соответствовали.
          Да можно датчик получше взять. Еще 2 варианта озвучено, а сколько их еще есть.


    1. ClearAirTurbulence
      23.01.2017 16:24

      Где-то читал, что если его хранить вне чехла, у него селен выгорает, что, естественно, негативно сказывается на показаниях…


      1. jeka_tm
        23.01.2017 16:31

        Селен в датчике BH1750 и подобных? Если да буду хранить в темноте.


      1. APLe
        23.01.2017 23:38

        Да. тоже об этом читал. Но производитель, похоже, это тоже понимал: вытащить экспонометр из чехла сложно (и экспонометров без чехла я в продаже не видел), хранить в открытом чехле тоже очень неудобно.
        Но, к сожалению, гарантированно точного люксметра для калибровки у меня нет, проверить уровень деградации я не могу.


  1. jeka_tm
    23.01.2017 14:12
    +1

    Не по теме. У меня есть материалы по гаусгану с автоматом заряжания на 4 снаряда. Правда пока без корпуса и на гусеничное шасси еще не установил. Но макет рабочий. Дверь мне испортил во время тестов. Мощность конечно небольшая. Может тоже выложить?


    1. sviterov
      23.01.2017 14:53

      Давайте


      1. jeka_tm
        23.01.2017 14:56

        Хорошо. Пожалуй сначала напечатаю на него корпус на 3д принтере и установлю на шасси чтобы было интереснее.


  1. jar_ohty
    23.01.2017 14:29

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


    1. jeka_tm
      23.01.2017 14:33
      +1

      А это и не измерительный прибор, а скорее индикатор)) Я писал об этом. А раз датчик калиброван на заводе и измеряет освещенность сразу в люксах как его обозвать как не люксметр?


      1. Alyoshka1976
        23.01.2017 15:04

        Вот что нашел для сравнения:
        кривая спектральной чувствительности BH1750 (https://www.dfrobot.com/wiki/index.php/Selector_Guide_of_Ambient_Light_Sensor):
        image
        глаза (http://laser.physics.sunysb.edu/~carolyn/report/):
        image


        1. Frt
          23.01.2017 15:17

          На мой взгляд вполне соответствует, может автор напишет модель датчика с лучшими характеристиками которая у него есть?


          1. jeka_tm
            23.01.2017 15:18

            TSL2561. Я лично не проверял, но находил чье то сравнение. Они оба I2C и повесить на одну ардуину и проверить не проблема


            1. Frt
              23.01.2017 15:31

              Спасибо, быстрый поиск выдал еще более качественный датчик, по словам превосходящий данные, это MAX44009 но с ценой уже в 2 бакса, есть из чего выбрать.


              1. jeka_tm
                23.01.2017 15:33

                Ага). Только он люксметром от этого похоже никогда не станет


      1. jar_ohty
        23.01.2017 15:24

        Можно отградуировать в люксах хоть сурьмяно-цезиевый фотоэлемент, но люксметром он от этого не станет. К тому же, судя по даташиту, наличие заводской калибровки — скорее плод чьей-то фантазии. Обратите внимание на строчку Measurement accuracy в таблице на стр. 2 даташита, где соотношение результата преобразования к освещенности датчика в люксах может колебаться в пределах 0,96-1,44.


        1. jeka_tm
          23.01.2017 15:29
          +2

          Ну и пусть, он (мой индикатор недолюксметр) думаю не расстроится. Он и сам не знает что он люксметр или не люксметр.


        1. APLe
          23.01.2017 23:40

          может колебаться в пределах 0,96-1,44.

          Ошибка максимум в полтора раза. Для домашнего цветоводства приемлемо.


      1. justicebest
        23.01.2017 16:22

        Если свет для растений, то при измерении в люксах будут получаться неточные значения.
        Подробности в видео: https://www.youtube.com/watch?v=YvaSrRnsAvc
        Растение — это не глаз:)


        1. jeka_tm
          23.01.2017 16:30

          Согласен. Но у меня освещение в основном люминесцентные лампы. Светодиодные светильники из 10 Вт светодиодов синих и красных больше не собираю, мороки много. Может со временем снова буду делать, но только сначала более приличный урожай огурцов вырастить, а дальше уже можно будет думать, ставить эксперименты, построить еще один бокс. Но на данный момент он мне подходит.


          1. zzzmmtt
            24.01.2017 09:49

            А сравнивали люминесцентные лампы и светодиодные сборки (красный+синий)? Что эффективнее? Я вот думаю для салатов и зелени прикупить для эксперимента с али готовую лампу (на красных и синих светодиодах), или же смысла нет и проще взять обычную люминесцентную?


            1. jeka_tm
              24.01.2017 09:58

              Светодиодные мне кажется эффективнее, но светодиодами 30вт я освещаю сциндапсус приличного размера, он сам по себе очень быстрорастущий. Так что может и не совсем так.
              Собираюсь провести еще один эксперимент: такие светодиодные модули 20 Вт теплые и радиатор с охлаждением. Правда у светодиодов тут преимущество, меньший размер и их проще ближе пододвинуть к растению. Тут еще один эксперимент. Освещенность падает с расстоянием, а пододвигать лампу не всегда удобно. Напечатал на 3д принтере крепеж для лампы на мебельную роликовую направляющую. Она и позволит регулировать высоту светильника для каждого растения. Но это я планирую только для рассады огурца, так как потом огурец пойдет в бокс с 3 36вт лампами 640.


  1. darkdaskin
    23.01.2017 15:15

    А как этот датчик реагирует на различные источники освещения?
    На днях пробовал измерять освещённость встроенным датчиком смартфона. В помещениях с люминесцентными или светодиодными лампами показания похожи на правду, а вот в помещении с галогенными лампами показывает 4 люкс — то же значение он выдаёт и если датчик закрыть пальцем. Только при поднесении к лампе вплотную показания начинают расти.


    1. jeka_tm
      23.01.2017 15:23

      На видео там где значения в районе 1000+ люкс возле цветов это люминесцентные 18 Вт 640. А там где моргает это светодиодный светильник 30 Вт с прямым питанием от сети, холодный белый.
      Измерял также в контейнере с рассадой, светильники 6вт, 2 красных и 1 синий светодиоды, на расстоянии около 5-6 см в районе 10000 люкс.


  1. Faramant
    23.01.2017 16:07

    2. Выпаять родной контроллер, разъем 3.5мм (для наушников), разъем для карты памяти, светодиод фонарика. Аккумулятор временно отпаять.

    В этом пункте «Сборки» поменяйте, пожалуйста, предложения местами.


    1. jeka_tm
      23.01.2017 16:07

      Согласен.


  1. progchip666
    23.01.2017 18:03
    +1

    Я покупал плеер здесь. Ссылку привожу потому что в данном корпусе есть минимум 2 варианта платы, а контакты привожу для своей.

    Хорошая идея — использовать копеечный плеер в качестве корпуса с индикатором плюс бонус аккумулятор. пытаюсь заказать три штуки по этой наводке, но что то алиэкспресс глючит — новый год у них наступил что ли.
    Скиньте пожалуйста ссылку на информацию об индикаторе и его подключении, я так понимаю вы не сами додумались до того какой пин индикатора за что отвечает, должен быть первоисточник.


    1. progchip666
      23.01.2017 18:12

      Странно, по приведённой в статье ссылке качается даташит на датчик с параллельным 8 битным интерфейсом, а в этой поделке явно последовательный используется


      1. jeka_tm
        23.01.2017 19:16

        Да последовательный с пином данные/команда. Даташит лучше отдельно искать. Там я незнаю что такое лежит


    1. jeka_tm
      23.01.2017 19:19
      +1

      На картинке есть сайт
      <img src="" alt=«image»/>


      1. progchip666
        23.01.2017 20:55

        спасибо, это похоже то что нужно


  1. 4ebriking
    23.01.2017 18:57

    У меня «экспонометром» служат сами растения — плюс-минус несколько дней они «держат» даже освещённость на порядки больше или ниже рекомендованной — поэтому чисто методом «добавить-прибавить» / ближе-дальше при практически прочих равных (температура и влажность) — очень быстро видно, которе быстрее всего растёт — значит там оптимум. Правда у меня рассада (клубника в основном), и под практически одним красным (что-то один синий диод на 12 красных) — ей тупо максимум размеров к весне набрать надо. Ну и — в зеркальной клетке даже не предсавляю как мерить что-то прибором с «глазком» — от поворота сильно зависит, а листья сами разберутся.


    1. jeka_tm
      23.01.2017 19:21

      У меня еще нет столько опыта. Не смогу отличить мало/много полил и т.д. от освещения, а также индивидуальных особенностей.


  1. tormozedison
    23.01.2017 23:51

    Вот если бы и процессор его задействовать, а не заменять, сказка была бы.


    1. jeka_tm
      24.01.2017 07:59

      В идеале да