Контроллер пивоварни на esp8266
Отв.120 05 Янв. 18, 23:24
Если с расширителем портов, то только в pins.h
если без него (все на ESP подключить) то смотри сообщение выше.
если без него (все на ESP подключить) то смотри сообщение выше.
Dr. Shpack
Кандидат наук
Барнаул
313 129
![](https://cdn.homedistil.ru/th/1505/27/40168.165783.jpg)
Отв.121 06 Янв. 18, 01:08
В config.h раскомментировал строку:
#define LCD_I2C_ADDR 0x3F
и 0x3F исправил на 0x20
В pins.h закомментировал строку:
#define PCF8574_ADDRESS 0x20
При компиляции, выдал ошибку, что не задан адрес для PCF8574_ADDRESS, пришлось раскомментировать эту строку и исправить на:
#define PCF8574_ADDRESS 0x27
В pins.h исправил
#define I2C_SCL NODEMCU_PIN_D1
#define I2C_SDA NODEMCU_PIN_D2
на
#define I2C_SCL NODEMCU_PIN_D8
#define I2C_SDA NODEMCU_PIN_D9
При компиляции обругался, что не декларирован пин9, в config.h добавил строку:
#define NODEMCU_PIN_D9 18
Скомпилировал. Скетч залил, экран ничего не показывает. Кнопки на подключал, не пробовал.
Я не понимаю, почему у меня Buzzer нормально работает, только при подключении на D2? И сейчас, после прошивки, он нормально работает на D2.
Добавлено через 6мин.:
Ппц китайцы гонят. Текст из мануала по дисплею с eBay (жирным выделил интересные места):
Product information
Specification:
https://bitbucket.org/...ystal/downloads
but with a little change in the init lines:
LiquidCrystal_I2C lcd(0x20, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Addr, En, Rw, Rs, d4, d5, d6, d7, backlighpin, polarity
This is IIC Serial 20X4 LCD module . With this I2C interface LCD module, you will be able to realize data display via only 2 wires. If you already has I2C devices in your project, this LCD module actually cost no more resources at all. It is fantastic for Arduino based project.
Download material
See detail
Interface: I2C
I2C Address: 0x20
Sofware version :0022
SDA (DATA) -> analog input pin 4
SCL (CLOCK) -> analog input pin 5
Pin Definition : GND、VCC、SDA、SCL
Back lit (Yellow with black char color)
Supply voltage: 5V
Pcb Size : 60mm×99mm
Contrast Adjust : Potentiometer
Backlight Adjust : Jumper
2004 LiquidCrystal_I2C
Arduino Test Code:
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); //set the LCD address to 0x27 for a 16 chars and 2 line display
void setup()
{
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("b2cqshop");
lcd.setCursor(0, 1);
lcd.print("Voltage: ");
lcd.setCursor(13, 1);
lcd.print("V");
}
void loop()
{
int val;
float temp;
val=analogRead(0);
temp=val/4.092;
val=(int)temp;//
lcd.setCursor(9, 1);
lcd.print(0x30+val/100,BYTE);
lcd.print(0x30+(val0)/10,BYTE);
lcd.print('.');
lcd.print(0x30+val,BYTE);
delay(100);
}
Какой же все таки у дисплея адрес?
Добавлено через 7мин.:
В ui.h нашел строки:
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20,4,YWROBOT);
исправил на
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x20,20,4,YWROBOT);
Завтра, точнее сегодня утром буду пробовать.
#define LCD_I2C_ADDR 0x3F
и 0x3F исправил на 0x20
В pins.h закомментировал строку:
#define PCF8574_ADDRESS 0x20
При компиляции, выдал ошибку, что не задан адрес для PCF8574_ADDRESS, пришлось раскомментировать эту строку и исправить на:
#define PCF8574_ADDRESS 0x27
В pins.h исправил
#define I2C_SCL NODEMCU_PIN_D1
#define I2C_SDA NODEMCU_PIN_D2
на
#define I2C_SCL NODEMCU_PIN_D8
#define I2C_SDA NODEMCU_PIN_D9
При компиляции обругался, что не декларирован пин9, в config.h добавил строку:
#define NODEMCU_PIN_D9 18
Скомпилировал. Скетч залил, экран ничего не показывает. Кнопки на подключал, не пробовал.
Я не понимаю, почему у меня Buzzer нормально работает, только при подключении на D2? И сейчас, после прошивки, он нормально работает на D2.
Добавлено через 6мин.:
Ппц китайцы гонят. Текст из мануала по дисплею с eBay (жирным выделил интересные места):
Product information
Specification:
https://bitbucket.org/...ystal/downloads
but with a little change in the init lines:
LiquidCrystal_I2C lcd(0x20, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Addr, En, Rw, Rs, d4, d5, d6, d7, backlighpin, polarity
This is IIC Serial 20X4 LCD module . With this I2C interface LCD module, you will be able to realize data display via only 2 wires. If you already has I2C devices in your project, this LCD module actually cost no more resources at all. It is fantastic for Arduino based project.
Download material
See detail
Interface: I2C
I2C Address: 0x20
Sofware version :0022
SDA (DATA) -> analog input pin 4
SCL (CLOCK) -> analog input pin 5
Pin Definition : GND、VCC、SDA、SCL
Back lit (Yellow with black char color)
Supply voltage: 5V
Pcb Size : 60mm×99mm
Contrast Adjust : Potentiometer
Backlight Adjust : Jumper
2004 LiquidCrystal_I2C
Arduino Test Code:
Скрытый текст
#include <Wire.h>#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); //set the LCD address to 0x27 for a 16 chars and 2 line display
void setup()
{
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("b2cqshop");
lcd.setCursor(0, 1);
lcd.print("Voltage: ");
lcd.setCursor(13, 1);
lcd.print("V");
}
void loop()
{
int val;
float temp;
val=analogRead(0);
temp=val/4.092;
val=(int)temp;//
lcd.setCursor(9, 1);
lcd.print(0x30+val/100,BYTE);
lcd.print(0x30+(val0)/10,BYTE);
lcd.print('.');
lcd.print(0x30+val,BYTE);
delay(100);
}
Добавлено через 7мин.:
В ui.h нашел строки:
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20,4,YWROBOT);
исправил на
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x20,20,4,YWROBOT);
Завтра, точнее сегодня утром буду пробовать.
![](https://forum.homedistiller.ru/Themes/default/images/post/wireless.gif)
Платы Arduino нет чтоб отдельно проверить экран и узнать адрес расширителя портов?
Dr. Shpack
Кандидат наук
Барнаул
313 129
![](https://cdn.homedistil.ru/th/1505/27/40168.165783.jpg)
Отв.123 06 Янв. 18, 10:09
Платы Arduino нетEroshKA, 06 Янв. 18, 08:57Нет.
Но зато есть еще 2 NodeMCU.
Вобщем подключил я его к одной, залил сканер I2C. Программа нашла I2C по адресу 0x3F. После чего залил скетч:
Скрытый текст
/*14CORE NodeMCU i2C 16x2 LCD SCREEN
Test COde.........................
*/
#include <Wire.h> // This library is already built in to the Arduino IDE
#include <LiquidCrystal_I2C.h> //This library you can add via Include Library > Manage Library >
LiquidCrystal_I2C lcd(0x3F, 20, 4);
void setup()
{
lcd.init(); // initializing the LCD
lcd.backlight(); // Enable or Turn On the backlight
lcd.setCursor(0, 1);
lcd.print("14CORE | 16x2 LCD TEST"); // Start Print text to Line 1
lcd.setCursor(0, 2);
lcd.print("-----------------------"); // Start Print Test to Line 2
}
void loop()
{
// Nothing Absolutely Nothing!
}
Есть контакт, но совсем не то. В первой строке, примерно пятая позиция от конца, моргает прямоугольник.
![](https://forum.homedistiller.ru/Themes/default/images/post/wireless.gif)
Я искал сканер портов для ESP, но не нашел. Надо узнать адрес не контролера lcd экрана. А адрес расширителя портов для клавиатуры. Или ты решил собирать без него?
Dr. Shpack
Кандидат наук
Барнаул
313 129
![](https://cdn.homedistil.ru/th/1505/27/40168.165783.jpg)
Отв.125 06 Янв. 18, 11:32, через 5 мин
Надо узнать адрес не контролера lcd экрана. А адрес расширителя портов для клавиатуры.EroshKA, 06 Янв. 18, 11:28Пока без него, хочу хотя бы, что бы дисплей напрямую заработал.
Отв.126 06 Янв. 18, 12:06, через 34 мин
У меня нет такой платы как у тебя чтоб проверить. Но судя по коду если нет расширителя портов, то надо указывать адрес в config.h, а в pins.h строку с адресом расширителем портов для клавиатуры закрываем. Иначе он пытается его найти и не находит, а до поиска контролера lcd не доходит.
Сейчас попробую собрать без кнопок и расширителя портов.
Добавлено через 39мин.:
И так! Странно но экран загорелся без расширителя портов и без вноса всяких правок. Была скачан архив с версией 0.2.3, единственная правка был указан адрес
#define PCF8574_ADDRESS 0x25
расширителя портов, который не подключал.
И покрутил подстроечный резистор на I2C плате.
Был не прав.
Добавлено через 15мин.:
Значит у тебя где-то, что-то не так подключено. Попробуй подключить к контактам которые я подчеркнул красным, а все остальное пока отключи.
Сейчас попробую собрать без кнопок и расширителя портов.
Добавлено через 39мин.:
И так! Странно но экран загорелся без расширителя портов и без вноса всяких правок. Была скачан архив с версией 0.2.3, единственная правка был указан адрес
#define PCF8574_ADDRESS 0x25
расширителя портов, который не подключал.
И покрутил подстроечный резистор на I2C плате.
Был не прав.
Добавлено через 15мин.:
Значит у тебя где-то, что-то не так подключено. Попробуй подключить к контактам которые я подчеркнул красным, а все остальное пока отключи.
Dr. Shpack
Кандидат наук
Барнаул
313 129
![](https://cdn.homedistil.ru/th/1505/27/40168.165783.jpg)
Отв.127 06 Янв. 18, 13:43
Я писал, что взял другую ESP и пробую на ней только дисплей, безо всякой переферии.
Подозрение, что у меня дисплей не рабочий.
В общем, вот что он мне показывает с выкрученной на всю яркостью. Дисплей подключен от блока питания 5В, 1А.
Добавлено через 2мин.:
Я уже собрал прошивку на сайте http://wifi-iot.com/p/esp8266/ и залил.
В этой прошивке есть сканер I2C, не находит.
Адреса пробовал разные ставить, не помогает.
Добавлено через 16мин.:
Уже оформляю на eBay возврат.
Подозрение, что у меня дисплей не рабочий.
В общем, вот что он мне показывает с выкрученной на всю яркостью. Дисплей подключен от блока питания 5В, 1А.
Добавлено через 2мин.:
Я уже собрал прошивку на сайте http://wifi-iot.com/p/esp8266/ и залил.
В этой прошивке есть сканер I2C, не находит.
Адреса пробовал разные ставить, не помогает.
Добавлено через 16мин.:
Уже оформляю на eBay возврат.
![](https://forum.homedistiller.ru/Themes/default/images/post/wireless.gif)
Такое я видел только с подключенным расширителем портов, если адрес указан не верно.
Dr. Shpack
Кандидат наук
Барнаул
313 129
![](https://cdn.homedistil.ru/th/1505/27/40168.165783.jpg)
Отв.129 06 Янв. 18, 15:44
EroshKA, выложи плз. твою библиотеку LiquidI2C, может у меня с библиотекой, что-то напутано.
Отв.130 06 Янв. 18, 16:16, через 33 мин
Попробуй. А так все это есть в архиве вместе со всем ПО, в папке libs. На всякий случай все необходимые библиотеки засунул.
Советую убрать остальные библиотеки I2C.
Советую убрать остальные библиотеки I2C.
Dr. Shpack
Кандидат наук
Барнаул
313 129
![](https://cdn.homedistil.ru/th/1505/27/40168.165783.jpg)
Отв.131 06 Янв. 18, 18:28
Что-то у меня вообще погнало...
Запустил I2C-scanner, вот он чего выдает:
Unknown error at address 0x06
Unknown error at address 0x0D
Unknown error at address 0x0F
Unknown error at address 0x17
Unknown error at address 0x1F
Unknown error at address 0x24
Unknown error at address 0x27
Unknown error at address 0x29
Unknown error at address 0x32
I2C device found at address 0x38 !
Unknown error at address 0x41
Unknown error at address 0x4E
Unknown error at address 0x51
Unknown error at address 0x53
Unknown error at address 0x65
Unknown error at address 0x6C
Unknown error at address 0x72
Unknown error at address 0x74
done
Scanning...
Unknown error at address 0x02
Unknown error at address 0x0A
Unknown error at address 0x12
Unknown error at address 0x1B
Unknown error at address 0x23
I2C device found at address 0x2B !
Unknown error at address 0x2D
Unknown error at address 0x35
Unknown error at address 0x3D
Unknown error at address 0x42
Unknown error at address 0x45
Unknown error at address 0x56
I2C device found at address 0x58 !
Unknown error at address 0x61
Unknown error at address 0x71
Unknown error at address 0x76
Unknown error at address 0x7A
Unknown error at address 0x7C
done
и так далее, всякие разные адреса.
Запустил I2C-scanner, вот он чего выдает:
Скрытый текст
Scanning...Unknown error at address 0x06
Unknown error at address 0x0D
Unknown error at address 0x0F
Unknown error at address 0x17
Unknown error at address 0x1F
Unknown error at address 0x24
Unknown error at address 0x27
Unknown error at address 0x29
Unknown error at address 0x32
I2C device found at address 0x38 !
Unknown error at address 0x41
Unknown error at address 0x4E
Unknown error at address 0x51
Unknown error at address 0x53
Unknown error at address 0x65
Unknown error at address 0x6C
Unknown error at address 0x72
Unknown error at address 0x74
done
Scanning...
Unknown error at address 0x02
Unknown error at address 0x0A
Unknown error at address 0x12
Unknown error at address 0x1B
Unknown error at address 0x23
I2C device found at address 0x2B !
Unknown error at address 0x2D
Unknown error at address 0x35
Unknown error at address 0x3D
Unknown error at address 0x42
Unknown error at address 0x45
Unknown error at address 0x56
I2C device found at address 0x58 !
Unknown error at address 0x61
Unknown error at address 0x71
Unknown error at address 0x76
Unknown error at address 0x7A
Unknown error at address 0x7C
done
и так далее, всякие разные адреса.
![](https://forum.homedistiller.ru/Themes/default/images/post/wireless.gif)
Чет не то. Давай все с начала. Какую версию правишь, на чем?
Dr. Shpack
Кандидат наук
Барнаул
313 129
![](https://cdn.homedistil.ru/th/1505/27/40168.165783.jpg)
Отв.133 06 Янв. 18, 18:55, через 24 мин
NodeMcu Lua CH340G ESP8266.
Сейчас Flasher'ом залил blank.bin. Монитор порта Arduino IDE ничего не пишет, значит память очищена полностью.
Дисплей подключен SDA-D2 SCL-D1.
Залил скетч I2C-сканер, сегодня он мне выдавал адрес дисплея 0х3F.
Скетч:
void setup()
{
Wire.begin();
Serial.begin(9600);
while (!Serial); // Leonardo: wait for serial monitor
Serial.println("
I2C Scanner");
}
void loop()
{
byte error, address;
int nDevices;
Serial.println("Scanning...");
nDevices = 0;
for(address = 1; address < 127; address++ )
{
// The i2c_scanner uses the return value of
// the Write.endTransmisstion to see if
// a device did acknowledge to the address.
Wire.beginTransmission(address);
error = Wire.endTransmission();
if (error == 0)
{
Serial.print("I2C device found at address 0x");
if (address<16)
Serial.print("0");
Serial.print(address,HEX);
Serial.println(" !");
nDevices++;
}
else if (error==4)
{
Serial.print("Unknown error at address 0x");
if (address<16)
Serial.print("0");
Serial.println(address,HEX);
}
}
if (nDevices == 0)
Serial.println("No I2C devices found
");
else
Serial.println("done
");
delay(5000); // wait 5 seconds for next scan
}
И опять он мне выдает всякие разные адреса.
Добавлено через 5мин.:
Подключил питание дисплея (до этого было подключено от блока питания) от esp8266, монитор порта выдает:
Scanning...
I2C device found at address 0x3F !
done
Сейчас Flasher'ом залил blank.bin. Монитор порта Arduino IDE ничего не пишет, значит память очищена полностью.
Дисплей подключен SDA-D2 SCL-D1.
Залил скетч I2C-сканер, сегодня он мне выдавал адрес дисплея 0х3F.
Скетч:
Скрытый текст
#include <Wire.h>void setup()
{
Wire.begin();
Serial.begin(9600);
while (!Serial); // Leonardo: wait for serial monitor
Serial.println("
I2C Scanner");
}
void loop()
{
byte error, address;
int nDevices;
Serial.println("Scanning...");
nDevices = 0;
for(address = 1; address < 127; address++ )
{
// The i2c_scanner uses the return value of
// the Write.endTransmisstion to see if
// a device did acknowledge to the address.
Wire.beginTransmission(address);
error = Wire.endTransmission();
if (error == 0)
{
Serial.print("I2C device found at address 0x");
if (address<16)
Serial.print("0");
Serial.print(address,HEX);
Serial.println(" !");
nDevices++;
}
else if (error==4)
{
Serial.print("Unknown error at address 0x");
if (address<16)
Serial.print("0");
Serial.println(address,HEX);
}
}
if (nDevices == 0)
Serial.println("No I2C devices found
");
else
Serial.println("done
");
delay(5000); // wait 5 seconds for next scan
}
И опять он мне выдает всякие разные адреса.
Добавлено через 5мин.:
Подключил питание дисплея (до этого было подключено от блока питания) от esp8266, монитор порта выдает:
Scanning...
I2C device found at address 0x3F !
done
![](https://forum.homedistiller.ru/Themes/default/images/post/wireless.gif)
Я спросил версию BrewManiacEx и версию Arduino IDE или то на чем ты там все это делаешь.
Dr. Shpack
Кандидат наук
Барнаул
313 129
![](https://cdn.homedistil.ru/th/1505/27/40168.165783.jpg)
Отв.135 06 Янв. 18, 19:19, через 3 мин
Я спросил версию BrewManiacEx и версию Arduino IDEEroshKA, 06 Янв. 18, 19:16BrewManiacEx - 0.2.3 только что, свежую с git'а слил.
Arduino IDE - 1.8.3.
![](https://forum.homedistiller.ru/Themes/default/images/post/wireless.gif)
Я делал на версии 0.2.3 и Arduino IDE 1.6.13. С теми библиотеками что выложил до этого. Все завелось. Могу повторить на таком же модуле как на твоём последнем фото. И для того чтоб у меня все взлетело мне адрес I2C не нужен был.
Добавлено через 2мин.:
Скачал бы Arduino IDE 1.6.13. Столкнулся с тем что последние версии как-то криво работают.
Добавлено через 2мин.:
Скачал бы Arduino IDE 1.6.13. Столкнулся с тем что последние версии как-то криво работают.
сообщение удалено
alexmw2006
Доктор наук
Ljubljana
704 652
![](https://cdn.homedistil.ru/th/1602/08/43884.166448.jpg)
Отв.137 06 Янв. 18, 19:51, через 32 мин
Dr. Shpack, а как подключал экран?
Я так понял, что в оригинальной схеме уровни сигналов с ESP(3,3V) подтягиваются до уровня(5V) расширителя I2C.
Я так понял, что в оригинальной схеме уровни сигналов с ESP(3,3V) подтягиваются до уровня(5V) расширителя I2C.
Dr. Shpack
Кандидат наук
Барнаул
313 129
![](https://cdn.homedistil.ru/th/1505/27/40168.165783.jpg)
Отв.138 06 Янв. 18, 19:53, через 2 мин
Скачал бы Arduino IDE 1.6.13.EroshKA, 06 Янв. 18, 19:20Скачал. Залил поправив #define PCF8574_ADDRESS 0x25 - экран пустой.
Исправил в ui.h LiquidCrystal_I2C lcd(0x3F,20,4,YWROBOT); - экран пустой.
Короче не понимаю, что делать.
Добавлено через 1мин.:
Подключил как на фото в этом сообщении [сообщение #13205350]
![](https://forum.homedistiller.ru/Themes/default/images/post/wireless.gif)
alexmw2006, нормально на 5 вольт работает.
Dr. Shpack, в ui.h я совсем ничего не трогал.
Добавлено через 1мин.:
SCL с SDA не перепутал?
Dr. Shpack, в ui.h я совсем ничего не трогал.
Добавлено через 1мин.:
SCL с SDA не перепутал?