Хотелось бы совета

  • В этой теме 5 ответов, 2 участника, последнее обновление 1 неделя назад сделано Dark.
Просмотр 6 сообщений - с 1 по 6 (из 6 всего)
  • Автор
    Сообщения
  • #54584
    Dark
    Участник
    • Ответов: 494
    @dark

    Совершенно пьяный Dark, думал и вот что у него получилось :

    5 датчиков температуры

    10 клапанов

    2 управления тэнами

    3 мотора

    Минимальная хотелка в автоматике.

    Температура (бак, царга, узел отбора, охлаждающая жидкость, температура продукта)

    Клапана (подача воды(или мотор один насоса) открытие отбора, 6 отбор по емкостям, верхний и Нижний отбор)

    Тэны(один разгонный, и один основной)

    Моторы (подача воды охлаждения, мешалка, насос сусла)

    Весы под вопросом.

    Может что пропустил

    Дарк это не только море харизмы, но и несколько вёдер вредности.
    PS. Авторы T9 будут гореть в аду.
    P. S. Не верьте Дарку, он сам не понимает, что творит.
    Дарк не исчез, Дарк очень любит работать, много работать....

    0
    #60709
    Dark
    Участник
    • Ответов: 494
    @dark

    Чтобы не плодить тем. Может кто сталкивался с подключением нескольких esp по шине i2c, c разным количеством подключённых модулей i2c на каждой. Вопрос возможно ли организовать две шины i2c для каждого устройства, или они все будут весеть на одной?

    Дарк это не только море харизмы, но и несколько вёдер вредности.
    PS. Авторы T9 будут гореть в аду.
    P. S. Не верьте Дарку, он сам не понимает, что творит.
    Дарк не исчез, Дарк очень любит работать, много работать....

    0
    #62819
    Андрей
    Участник
    • Ответов: 164
    @5-158

    На квадратной шине должно находиться ОДНО мастер устройство и несколько подчиненных. При использовании аппаратной шины I2C, ESP может работать ТОЛЬКО в режиме мастер. Поэтому в подчиненных устройствах необходимо будет реализовать программный I2C.

    Опять же никто не запрещает, используя программный протокол, назначать под него имеющиеся пины.

    0
    #73641
    Dark
    Участник
    • Ответов: 494
    @dark

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

    #include <OneWire.h>
    #include <DallasTemperature.h>
    #include <iarduino_I2C_connect.h>
    //#include <LiquidCrystal_I2C.h>
    //LiquidCrystal_I2C lcd(0x27,20,4);
    iarduino_I2C_connect I2C2;
    int Tem_pin[8]={1, 2,3,4,5,6,7,8}; //номера пинов к которым подключенны датчики
    int Temp_dal[8]={0,0,0,0,0,0,0,0};
    int work_on = 0;
    int work_rez = 0;// пока резерв
    OneWire mt_ds_1(Tem_pin[0]);
    OneWire mt_ds_2(Tem_pin[1]);
    OneWire mt_ds_3(Tem_pin[2]);
    OneWire mt_ds_4(Tem_pin[3]);// резерв

    OneWire dt_ds_1(Tem_pin[4]);
    OneWire dt_ds_2(Tem_pin[5]);
    OneWire dt_ds_3(Tem_pin[6]);
    OneWire dt_ds_4(Tem_pin[7]);// резерв

    DallasTemperature sensor_main1(&mt_ds_1);
    DallasTemperature sensor_main2(&mt_ds_2);
    DallasTemperature sensor_main3(&mt_ds_3);
    DallasTemperature sensor_main4(&mt_ds_4);// резерв

    DallasTemperature sensor_safuty1(&dt_ds_1);
    DallasTemperature sensor_safuty2(&dt_ds_2);
    DallasTemperature sensor_safuty3(&dt_ds_3);
    DallasTemperature sensor_safuty4(&dt_ds_4);// резерв

    byte Temp_Massive[38];

    void setup() {
    // put your setup code here, to run once:
    Serial.begin(9600);
    Wire.begin(0x02);
    I2C2.begin(Temp_Massive);
    sensor_main1.begin();
    sensor_main2.begin();
    sensor_main3.begin();
    sensor_main4.begin();
    sensor_safuty1.begin();
    sensor_safuty2.begin();
    sensor_safuty3.begin();
    sensor_safuty4.begin();
    }

    void loop() {
    // put your main code here, to run repeatedly:
    switch (work_on){
    case 0:{
    work_on = Temp_Massive[0]<<8; // Считываем указатель начала работы
    work_on += Temp_Massive[1];
    work_rez = Temp_Massive[2]<<8; // Считываем указатель режим работы – резерв – или другое
    work_rez += Temp_Massive[3];
    break;
    }
    case 1:{
    int t=0;
    for (int i=4;i<20;i=i+2){
    Temp_dal[t] = Temp_Massive<<8; // Считываем используемые датчики
    Temp_dal[t] += Temp_Massive;
    if (Temp_dal[t]=1) { // Если датчик используется то запрашиваем температуру
    switch (t){
    case 0:{
    sensor_main1.requestTemperatures();
    break;
    }
    case 1:{
    sensor_main2.requestTemperatures();
    break;
    }
    case 2:{
    sensor_main3.requestTemperatures();
    break;
    }
    case 3:{
    sensor_main4.requestTemperatures();
    break;
    }
    case 4:{
    sensor_safuty1.requestTemperatures();
    break;
    }
    case 5:{
    sensor_safuty2.requestTemperatures();
    break;
    }
    case 6:{
    sensor_safuty3.requestTemperatures();
    break;
    }
    case 7:{
    sensor_safuty4.requestTemperatures();
    break;
    }
    }
    }
    t==t++;
    }
    float temp_temp;
    for(int i=0;i<8;i++){
    if (Temp_dal[t]=1) { // Если датчик используется то запрашиваем температуру
    switch (t){
    case 0:{
    temp_temp == sensor_main1.getTempCByIndex(0);
    t== temp_temp*100;
    Temp_Massive[20+(i*2)] = t>>8; // отправляем данные c датчика температуры
    Temp_Massive[21+(i*2)] = t;
    t==0;
    break;
    }
    case 1:{
    temp_temp == sensor_main2.getTempCByIndex(0);
    t== temp_temp*100;
    Temp_Massive[20+(i*2)] = t>>8; // отправляем данные c датчика температуры
    Temp_Massive[21+(i*2)] = t;
    t==0;
    break;
    }
    case 2:{
    temp_temp == sensor_main3.getTempCByIndex(0);
    t== temp_temp*100;
    Temp_Massive[20+(i*2)] = t>>8; // отправляем данные c датчика температуры
    Temp_Massive[21+(i*2)] = t;
    t==0;
    break;
    }
    case 3:{
    temp_temp == sensor_main4.getTempCByIndex(0);
    t== temp_temp*100;
    Temp_Massive[20+(i*2)] = t>>8; // отправляем данные c датчика температуры
    Temp_Massive[21+(i*2)] = t;
    t==0;
    break;
    }
    case 4:{
    temp_temp == sensor_safuty1.getTempCByIndex(0);
    t== temp_temp*100;
    Temp_Massive[20+(i*2)] = t>>8; // отправляем данные c датчика температуры
    Temp_Massive[21+(i*2)] = t;
    t==0;
    break;
    }
    case 5:{
    temp_temp == sensor_safuty2.getTempCByIndex(0);
    t== temp_temp*100;
    Temp_Massive[20+(i*2)] = t>>8; // отправляем данные c датчика температуры
    Temp_Massive[21+(i*2)] = t;
    t==0;
    break;
    }
    case 6:{
    temp_temp == sensor_safuty3.getTempCByIndex(0);
    t== temp_temp*100;
    Temp_Massive[20+(i*2)] = t>>8; // отправляем данные c датчика температуры
    Temp_Massive[21+(i*2)] = t;
    t==0;
    break;
    }
    case 7:{
    temp_temp == sensor_safuty4.getTempCByIndex(0);
    t== temp_temp*100;
    Temp_Massive[20+(i*2)] = t>>8; // отправляем данные c датчика температуры
    Temp_Massive[21+(i*2)] = t;
    t==0;
    break;
    }
    }
    }
    }
    Temp_Massive[36] = work_on>>8; // отправляем данные что приступили к работе
    Temp_Massive[37] = work_on;
    break;
    }
    }
    }

    Дарк это не только море харизмы, но и несколько вёдер вредности.
    PS. Авторы T9 будут гореть в аду.
    P. S. Не верьте Дарку, он сам не понимает, что творит.
    Дарк не исчез, Дарк очень любит работать, много работать....

    0
    #73895
    Dark
    Участник
    • Ответов: 494
    @dark

    Спасибо Sergey_r, что не вмешивались в процесс, Dark, пьяный, но еще большое содержание крови в алкоголе.

    Обидно, ошибку на самом видном месте и ни кто не сказал, маленькая подсказка про экранчик, ни кто не поинтересовался, а зачем тебе Dark, там такая приблуда, ну да ладно.

    Описание, модуль контроля температуры, при установки экрана 4х20, и парочки изменений, получаем простой индикатор температуры на 8 точек. В автоматике будет всегда с номером 0x01 ошибся, с 0x02 пойдет модуль отбора на 6 клапанов и 2 крана, управление тэном будет скорее всего в самой простой конфигурации аналогично управлению тэном от Sergey_r, только управление будет по i2c и номер будет 0x03, контроль за безопасностью модуль с номером 0x04, весы с номером 0x05 , модуль охлаждения будет или такой-же как и модуль отбора но уже с номером 0x06 или просто будет использовать часть ресурсов модуля отбора, модуль управления всякими двигателями будет с номером 0x07, возможно в будущем, часть модулей можно будет устанавливать парами.

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

    На сим Dark, уходит в запой нирвану.

    Дарк это не только море харизмы, но и несколько вёдер вредности.
    PS. Авторы T9 будут гореть в аду.
    P. S. Не верьте Дарку, он сам не понимает, что творит.
    Дарк не исчез, Дарк очень любит работать, много работать....

    0
    #73993
    Dark
    Участник
    • Ответов: 494
    @dark

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

    Дарк это не только море харизмы, но и несколько вёдер вредности.
    PS. Авторы T9 будут гореть в аду.
    P. S. Не верьте Дарку, он сам не понимает, что творит.
    Дарк не исчез, Дарк очень любит работать, много работать....

    0
Просмотр 6 сообщений - с 1 по 6 (из 6 всего)
  • Для ответа в этой теме необходимо авторизоваться.