Вопрос по arduino и c++

Здравствуйте, всем шарящим и не очень. Я делаю проект для учёбы и мне нужен хороший проект. Почти всё готово, но осталась одна деталь : код на c++ под ардуинку (вернее его малая часть). Нужно, чтобы ардуинка снимала показания с датчика dht11 (влажность, температура воздуха) и передавала их по bluetooth на телефон. Приложение с этой и другими функциями я уже замутил в app inventor 2, а в с++ не силён (согласно возрасту и опыту). Спасибо всем за ответы, и буду очень рад, если кто - то захочет написать за меня код. Так же буду рад другим советам.
Надеюсь, сила Пикабу поможет.
З.Ы. всем добра и коммент для минусов внизу.

Arduino & Pi

1.5K поста20.9K подписчиков

Правила сообщества

В нашем сообществе запрещается:

• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)

• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском

• Выкладывать код прямо в посте - используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)

• Рассуждать на темы политики

• Нарушать установленные правила Пикабу

Вы смотрите срез комментариев. Показать все
Автор поста оценил этот комментарий

Однако чукче это дорого встанет)))

Средняя цена часа работы программиста 1С - от 1000 до 3000 рублев, в зависимости от хотелок. Соответственно программист Си, а темболее для ардуины будет дороже.


Теперь по делу:

Схема подключения ардуины датичиков DHT11, схема подключения модуля блюпуп и его модель? Модель ардуины?


Ну и самый главный вопрос:

Что за ВУЗ? Что за проект?


PS: примерные трудозатраты программиста-разработчика 30 часов.

раскрыть ветку (17)
1
Автор поста оценил этот комментарий
примерные трудозатраты программиста-разработчика 30 часов.
ты, видимо, ни разу не разработчик, а дэффективный менеджер, раз такую задачу в 30 часов оцениваешь
раскрыть ветку (10)
0
Автор поста оценил этот комментарий

Задача делится на:

1. Понять что написано в ТЗ, и осознать потребности заказчика - 1 день.

2. Проработать варианты - 1 день

3. Накодить - 0.5 дня

4. Отладка накоженого - 1 день.

5. Оформить документацию - 0.5 дня.

Ок. Уговорил 32 часа.


И я не дефективный меньжер, а приходится табелировать работы, как ведущему.

раскрыть ветку (9)
0
Автор поста оценил этот комментарий

1) разговора в скайпе с заказчиком - написание ТЗ. ну или в данном случае принятие упрощенного ТЗ сразу, без общения.  ~ 15 минут

2) скачать ардуино IDE. Скачать библиотеку для датчика. Запустить. ~ 2 -5 минуты.

3) собрать из двух примеров работающий проект - кнтрл + С,  кнтрл + V. ~ минута.

4) отдать исходники. ~ 10 минут.


Ну а так да, растянуть можно на год :)

раскрыть ветку (3)
0
Автор поста оценил этот комментарий

Давайте посчитаем))) я где то рчдом дал малчику-ТСу развернутое решение, а комраду написал, что решил за 4 часа эту задачку.... Вот "раскадровка")))

1. Прочитать, что хочет мальчик, почитать комменты, вспомнить молодость и почесать причинное место - 1 минута

2. Прочитать про датчик - 10 минут

3. Прочитать про блюпуп - 10 минут

Поднять прогу для рисования схем - 40 минут (дольше возился с запуском под вынь 10)

4. Посмотреть про ардуино нано - 5 минут.

5. Накинуть схему подключения - 30 минут из которых "вспомнить" как в этом говне рисовать уго, и забить потом" заняло половину времени.

6. Залезть в закрома родины и найти ардуину 5 минут.

7. Вспомнить что в закромах есть блюпуп модуль и найти его - 50 минут

8. Курнуть мануалы и найти различие между 05 и 06 блюпупом - 10 минут.

9. Осознать что резюки в закромах сугубо SMD, бредоборда "не попадась" а паяльник включать и макетки распаивать лень - 10 минут.

10. Установить ардуино IDE - 5 минут

11. Написать "helloworld" - 1 минута

12. Офигеть что ардуину комп не видит, проверить провода, выругаться, найти дрова на кЕтайскую поделку - 4 минуты.

13. Поиграться с выводом строки в терминал 1 минута.

14. Прикинуть, что конструкция if (Serial.available() > 0) для примера избыточна и "словить пару лулзов" без применения delay(10) - 4 минуты.

15. Прикинуть что в примере лучше оставить два вывода: в консоль на 9600 на аппаратном uart и добавить програмный на "D-pins" к которым подключить блюпуп и откорректировать принципиалку- 5 минут. /*вспомнив опыт предыдущих рукоблудий с подключенным переходником 485 и попыткой программироваться без отключения переходника*/

16. Сделать копипасту примеров, выкинуть "проверки" - 5 минут.

17. Охренеть от того, что DHT.H нужна еще какая то библиотека. Внимательно прочитать описание на github - 10 минут

18. Охренеть от ардуино IDE и ее "printf" - 10 минут.

19. Перепилить код из копипасты и прогнать вывод неких данных типа float, с учетом что будет ловить мальчик на смартфон, адаптировав к уровню "for dummies" - 5 минут.

20. Перекур. Написать ответ ТСу, выкинув матюки из комментариев, напилить скринов и "все такое" - 20 минут.

Итого 4 часа.

раскрыть ветку (2)
0
Автор поста оценил этот комментарий

Ну короче 3 часа 40 минут вы страдали херней по своему желанию :D

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Почему херней? Я работу работал:)))) (ц)...


А если серьезно, то ну пострадал немного, один хрен все эти проги рано или поздно пришлось бы ставить :)

0
Автор поста оценил этот комментарий
Собственно, мой комментарий ты только подтвердил.
раскрыть ветку (4)
Автор поста оценил этот комментарий

Яж сказал... не менее 4х часов наШкодить:)))))

#comment_158350610


Студент/выпускник на эту работу затратит - неделю!, НЕ МЕНЬШЕ!

Предпросмотр
YouTube1:25
раскрыть ветку (3)
0
Автор поста оценил этот комментарий

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

раскрыть ветку (2)
1
Автор поста оценил этот комментарий

Если ты знаешь о чем писать, то диплом пишется примерно неделю. При этом в эту неделю дольше ждешь согласования научника, и макет собираешь на ATmega128+LCD12864 с аналоговым узелком на ОУ с фильтрами 3го порядка. В позапрошлом году как раз второй раз писал, 105 стр. 1 лист А1, 5 - А3. Макет сказали - "не приноси"...

А вот однокурсники - пол года заказы свои ждали, на 40 страничек....

Летом вел производственную практику... У студентов глаза - стекло, голова как друшлаг.... Из всей группы (3 человека) один хоть как то интересовался чем то.... Остальным двум пришлось надиктовывать дневник производственной практики...

Приходил подрабатывать старшекурсник на должность техника... С листа схему в PCad перерисовывал месяц, ушел, сказал "не мое"... Я его потом в макдаке со шваброй видел.


Так что, работы тут - на неделю. =)) среднестатистическому выпускнику вуза радиогубительской/программистстскской специальности.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Мерить затраты исключительно по верхней границе, весьма странное решение. Ты в пример привел человека, писавшего 20 строк 4 часа, лол. 20 строк из примеров собрать за 4 часа. Вот это как раз уровень среднестатистического выпускника.
0
Автор поста оценил этот комментарий
Гимназия "название вашего района". Проект - умный дом. 7 класс.

Модуль блюпуп hc-05. Подключение: питание стандартно + и -. Tx к rx и наоборот. Пока что логика dht 11 (средний контакт) подключена к пину d2.
arduino nano китайская
Иллюстрация к комментарию
Иллюстрация к комментарию
Иллюстрация к комментарию
раскрыть ветку (5)
2
Автор поста оценил этот комментарий

А учат на кого, ну в итоге после сдачи проекта надо какие знания получить?

Если знания менеджера по поиску аутсорсных программеров- то нормально в посте поставлено ТЗ: "сделайте за меня".

Если же идея научиться самому- то закрываем данный пост со всем тем, что тут понаписали, и идем читать бумажные (желательно) учебники.

1
Автор поста оценил этот комментарий

Вот. Без датчика увы... но мне потребовалось чуть более 4х часов:

На фотках схема подключения для моего кода.

Скрин, как выглядит у меня код.

В коде даны рекомендации где и откуда брать библиотеку DHT.


//Выбираем тип платы:
//Инструменты -> Плата -> Arduino NANO
//Инструменты -> Процессор -> ... выбираем 168/328/328(OLD) в зависимости от конкретной платы.
// Подключаем библиотеки
#include <SoftwareSerial.h> // Программный UART.
//Перед написанием скетча убедиться,
//что у нас установлена библиотека для работы с датчиками влажности и температуры.
//Скачать ее можно по ссылке
//https://github.com/adafruit/DHT-sensor-library.
//Загрузится папка под названием «DHT-sensor-library-master».
// 1й вариант установки:
// Установить, указав этот ZIP архив
// Повторить для: https://github.com/adafruit/Adafruit_Sensor
#include <DHT.h> //Библиотеки для работы с датчиками типа DHT
#include <DHT_U.h>
//Объявим используемые порты ардуины, в соответствии со схемой
// Вместо цифр сможем применять имена LED, SOFTRX, SOFTTX, DHT
#define LED 13 //Индикатор на ардуино
#define SOFTRX 3//приемник блютус
#define SOFTTX 2//передатчик блютус
#define DHTPIN 4//Датчик DHT11
//Преинициализация приемопередатчика блютус
SoftwareSerial softSerial(SOFTRX, SOFTTX); // RX, TX> может прийдется их поменять.
//Преинициализация датчика DHT
DHT dht(DHTPIN, DHT11); //Пин подключения, модель>

void setup() //Действия при включении
{
// Инициализируем:
// Монитор порта ардуино IDE
Serial.begin(9600); //Скорость 9600
//Приемопередатчик Блютус
softSerial.begin(38400); //Скорость 38400, по описанию это скорость "по умолчанию" блютус модуля. Если не работает меняем 9600...
//Включаем DHT
dht.begin();
}
void loop() //Действия в рабочем, бесконечном цикле
{
delay(1000); //Ждем секунду, чаще датчик DHT не отвечает

digitalWrite(LED,1); //Включаем индикатор
//Считываем влажность
float vlajnost = dht.readHumidity();
// Считываем температуру
float temperature = dht.readTemperature();
// Передаем на монитор порта ардуино IDE
Serial.print("H:");
delay(10); //Ждем 0,01 сек (10 мс) пока передастся символ
Serial.println(vlajnost); //Передаем значение влажности
delay (10); //Ждем 0.01 секунду (10 мс) пока строчка не передастся
Serial.print("T:");
delay (10); //Ждем 0.01 секунду (10 мс) пока строчка не передастся
Serial.print(temperature); //Передаем значение температуры на монитор порта ардуино IDE
delay (10); //Ждем 0.01 секунду (10 мс) пока строчка не передастся
Serial.println(""); //Перенос строки.
delay (10); //Ждем 0.01 секунду (10 мс) пока строчка не передастся
// Передаем тоже самое на блютус
softSerial.print("H:");
delay(10); //Ждем 0,01 сек (10 мс) пока передастся символ
softSerial.println(vlajnost); //Передаем значение влажности
delay (10); //Ждем 0.01 секунду (10 мс) пока строчка не передастся
softSerial.print("T:");
delay (10); //Ждем 0.01 секунду (10 мс) пока строчка не передастся
softSerial.print(temperature); //Передаем значение температуры на монитор порта ардуино IDE
delay (10); //Ждем 0.01 секунду (10 мс) пока строчка не передастся
softSerial.println(""); //Перенос строки.
delay (10); //Ждем 0.01 секунду (10 мс) пока строчка не передастся
digitalWrite(LED,0); //Выключаем индикатор
}

Если перед строчкой, или частью строки стоит "//" значит все что после - комментарий, и он не компилируется. Но комментарии - читать и вникать! Я постарался дать как можно более подробные комментарии написать.


Теперь по той части, которая принимается на "той" стороне.


Ардуина непрерывно шпарит сообщения:


H: "Значение"

T: "Значение"

потом ждет секунду... и отправляет новые данные.


Если в данных nan - Значит датчик - не работает, или работает но не так....как на скрине и показано.


Смартфон должен принимать строку, заканчивающуюся символом "перевод каретки" и обрабатывать ее. Первый символ(латинский) - H-Влажность, Т-температура. Далее - значение параметра в десятичном формате с точкой. Символ "Перевод каретки" - конец строки.


Теперь об источниках информации:

Про датчики и модули:

https://arduinomaster.ru/datchiki-arduino/datchiki-temperatu...

https://arduinomaster.ru/datchiki-arduino/arduino-bluetooth-...

http://geekmatic.in.ua/arduino_software_uart

http://edurobots.ru/2015/02/arduino-dlya-nachinayushhix-urok...


Про саму ардуину:

http://arduino.ru/Hardware/ArduinoBoardNano

http://arduino.ru/Reference/Delay

http://all-ht.ru/inf/prog/c/func/isnan,isnanf,isnanl.html

http://arduino.ru/Reference/DigitalWrite

https://doc.arduino.ua/ru/prog/Serial/Print


Остальное:

https://wiki.iarduino.ru/page/ustanovka-nastroyka-programmno...

https://iarduino.ru/file/126.html

https://github.com/adafruit/Adafruit_Sensor


Самые важные ссылки я дал в самом коде, в комментарияхЪ.


Дерзайте молодой человек! и у вас все получится:)

Иллюстрация к комментарию
Иллюстрация к комментарию
Иллюстрация к комментарию
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Спасибо огромное.
0
Автор поста оценил этот комментарий

Брать питание с вывода Reset плохая примета

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Ошибся чуть-чуть на рисунке. С 5 вольт беру
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества