Пишите

Тема в разделе "Сделаю проект", создана пользователем 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 отправка показаний на сайт народный мониторинг есть желание заняться?