Пишите

Тема в разделе "Сделаю проект", создана пользователем ostrov, 18 мар 2017.

  1. А другим можно угадывать? Я думаю, что вы загалали стиральную машину.
     
  2. smail

    smail Нуб

    Открыл тему в закажу проект.
     
  3. Добрый день
    Нужна помощь в разработке проекта по наливу пива в кафе
    Если интересно, готов рассказать о проекте
    9122334880@mail.ru
     
  4. Kotopes

    Kotopes Нуб

    Нуждаюсь в скетче для управления электрическим котлом

    ТЗ
    электрический котел 9 кВт (3 тэна по 3 кВт)

    Электроника
    Esp 8266 wemos d1 mini
    3 шт. твердотельные реле (SR40A ssr-40A)
    2 шт. датчик температуры 18B20
    Экран (необходимо помочь с выбором)

    Как я это вижу… датчик температуры на выходе и на самом котле, плавная регулировка мощности за счет твердотельных реле, с учетом температуры подающего и нагретого теплоносителя. Управление с кнопок 2-4 (сколько необходимо), а так же через MQTT (в последствие прикручу в majordomo)

    Режимы
    Автоматический режим (выставляем желаемую температуру теплоносителя)
    Ручной режим (вкл\выкл тэнов, и их мощность)
    Режим ГВС (выбор температуры (использовать тэны поочередно))
    Режим настройка (корректировка датчиков температур, подключение к wi-fi, дата время)

    На экране должно отражаться
    Выбранный режим, температура входящего теплоносителя, котла и желаемого, мощность, кол-во задействованных тэнов (их лучше прономеровать) время, уровень сигнала.
     
  5. ostrov

    ostrov Гуру

    Пока что есть свободное время.
     
  6. Сколько обычно берешь за написание скетча ?
     
  7. ostrov

    ostrov Гуру

    100 руб. За строку. Вопрос требует уточнения.
     
  8. Помогите подправить :);)
    Вот есть наработка , нужно чтоб запись начиналась каждый раз на новый файл ,

    Код (C++):

    // библиотека для работы I²C
    #include <Wire.h>
    // библиотека для работы с модулями IMU
    #include <TroykaIMU.h>
    // библиотека для работы с устройствами по SPI
    #include <SPI.h>
    // библиотека для работы с SD-картой
    #include <SD.h>
    // библиотека для работы с GPS устройством
    #include <TroykaGPS.h>
    // создаём объект класса GPS и передаём в него объект Serial1
    GPS gps(Serial1);
    // создаём объект для работы с акселерометром
    Accelerometer accel;


    // пин светодиода
    #define LED_PIN             9

    // пин кнопки
    #define BUTTON_PIN          A4

    // пин CS micro-sd карты
    #define SD_CHIP_SELECT_PIN  8
    // интервал времени записи данных на карту
    #define INTERVAL            100
    // задаём размер массива для времени, даты, широты и долготы
    #define MAX_SIZE_MASS 16
    // массив для хранения текущего времени
    char time[MAX_SIZE_MASS];
    // состояние записи на карту памяти
    bool stateRec = false ;
    // запоминаем текущее время
    long startMillis = millis();
    // счётчк записи
    int counter = 0;

    void setup()
    {

    // устанавливаем светодиод в режим выхода
      pinMode(LED_PIN, OUTPUT);
      // устанавливаем кнопку в режим входа
      pinMode(BUTTON_PIN, INPUT_PULLUP);

      Serial1.begin(115200);
      delay(100);
       Serial1.write("$PMTK220,200*2C\r\n");
       accel.begin();




      SD.begin(SD_CHIP_SELECT_PIN);

    }
    void loop()
    {
      bool bp = false;
      // Фиксируем нажатие кнопки
      if (digitalRead(BUTTON_PIN)) {
        // меняем состояние «запись» / «не запись» на карту памяти
        stateRec = !stateRec;
         delay(10);
        // меняем состояние светодиода индикации
        digitalWrite(LED_PIN, stateRec);
        bp = true;
      }
       gps.readParsing();
       if (millis() - startMillis > INTERVAL && stateRec) {
              // сохраняем данные GPS и акселерометра на карту памяти
              saveSD(bp);
              // запоминаем текущее время
              startMillis = millis();
            }

    }

    // функция сохарение данных на карту памяти
    void saveSD(bool bp) {
    File dataFile = SD.open("dataGPS.csv", FILE_WRITE);
      if (bp){

        counter=0;
        ;
      }

    //секундомер


    static unsigned long x = 0;
    if (bp)
    x = millis();
    int number = ((millis() - x) / 1000) % 200;




    Serial.println( number);

       
      // если файл существует и открылся
      if (dataFile) {
         dataFile.print(counter++);
        dataFile.print("\t");
         dataFile.println(number);




        dataFile.close();

      }
      }
    Вот есть ещё , но тут не работает не создаётся файл
    Код (C++):
    // библиотека для работы I²C
    #include <Wire.h>
    // библиотека для работы с модулями IMU
    #include <TroykaIMU.h>
    // библиотека для работы с устройствами по SPI
    #include <SPI.h>
    // библиотека для работы с SD-картой
    #include <SD.h>
    // библиотека для работы с GPS устройством
    #include <TroykaGPS.h>
    // создаём объект класса GPS и передаём в него объект Serial1
    GPS gps(Serial1);
    // создаём объект для работы с акселерометром
    Accelerometer accel;
    //
    char StrFile[80];
    int FileNumber = 0;


    // пин светодиода
    #define LED_PIN             9

    // пин кнопки
    #define BUTTON_PIN          A4

    // пин CS micro-sd карты
    #define SD_CHIP_SELECT_PIN  8
    // интервал времени записи данных на карту
    #define INTERVAL            100
    // задаём размер массива для времени, даты, широты и долготы
    #define MAX_SIZE_MASS 16
    // массив для хранения текущего времени
    char time[MAX_SIZE_MASS];
    // состояние записи на карту памяти
    bool stateRec = false ;
    // запоминаем текущее время
    long startMillis = millis();
    // счётчк записи
    int counter = 0;

    void setup()
    {

    // устанавливаем светодиод в режим выхода
      pinMode(LED_PIN, OUTPUT);
      // устанавливаем кнопку в режим входа
      pinMode(BUTTON_PIN, INPUT_PULLUP);
      Serial1.begin(115200);
      delay(100);
       Serial1.write("$PMTK220,200*2C\r\n");
       accel.begin();

      SD.begin(SD_CHIP_SELECT_PIN);
    }
    void loop()
    {
      bool bp = false;
      // Фиксируем нажатие кнопки
      if (digitalRead(BUTTON_PIN)) {
        // меняем состояние «запись» / «не запись» на карту памяти
        stateRec = !stateRec;
        FileNumber++;
         delay(10);
        // меняем состояние светодиода индикации
        digitalWrite(LED_PIN, stateRec);
        bp = true;
      }
       gps.readParsing();
       if (millis() - startMillis > INTERVAL && stateRec) {
              // сохраняем данные GPS и акселерометра на карту памяти
              saveSD(bp);
              // запоминаем текущее время
              startMillis = millis();
            }
    }

    // функция сохарение данных на карту памяти
    void saveSD(bool bp) {
    sprintf (StrFile, "%s_%d.csv", "dataGPS", FileNumber);
    File dataFile = SD.open(StrFile, FILE_WRITE);
      if (bp){
        counter=0;
        ;
      }
    //секундомер


    static unsigned long x = 0;
    if (bp)
    x = millis();
    int number = ((millis() - x) / 1000) % 200;




    Serial.println( number);
     
         
      // если файл существует и открылся
      if (dataFile) {
         dataFile.print(counter++);
        dataFile.print("\t");
         dataFile.println(number);
     
     
        dataFile.close();
      }
      }
     
    Последнее редактирование: 7 апр 2019
  9. Maximsav

    Maximsav Нуб

    Помогите! Как подключить блютуз геймпад к ардуино уно?
     
    Последнее редактирование: 15 май 2019
  10. DetSimen

    DetSimen Спамовредитель Модератор

    В крации говоря, - НИКАК. для этого Леанарда есть.
     
  11. AntonKos87

    AntonKos87 Нуб

    Sim800 отправка показаний на сайт народный мониторинг есть желание заняться?
     
  12. Добрый день
    Ищу специалиста, который поможет сделать электронику под технологическую оснастку, где требуется балансировка. На пальцах: на одном из плеч, вращающегося коромысла (800-1200об/мин) установлен держатель, который тоже вращается (380-500 об/мин). В держатель вставляют, не открывая, банку с материалом для перемешивания (псевдопланетарное движение, постоянно меняющийся вектор силы тяжести качественне перемешивают вязкий материал без пузырей и контакта с другими (кроме тары) предметами). Количество материала в банке может быть от 50 до 1000гр. Для компенсации дисбаланса — на другом плече установлен перемещаемый балансир. Необходимо сделать систему управления перемещения балансира для минимизации дисбаланса.
    Если Вас заинтересует эта тема — готов дать более развернутую информацию и обсудить возможность совместной работы.
    Железо делаю сам. Мне нужна электроника.
     
  13. ostrov

    ostrov Гуру

    Напишите подробнее.