Помогите довести до ума скетч
- Войдите на сайт для отправки комментариев
Это панель RGB 16x32, BME280, DS1307rtc.
Этот проект в месте со всеми библиотеками есть http://embedded-lab.com/blog/rgb-matrix-clock-plus-environmental-data-meter/
Просто довести до ума
убрать все лишнее
ну и кое что добавить
Кнопки для регулировки времени и даты.
Точки у часов чтоб хоть как то мигали показывая отсчёт секунд.
Вот мой скетч
/* Project: RGB matrix displaying temperature, humidity, and pressure
using BME280 sensor and Arduino Uno
Author: Raj Bhatt (www.embedded-lab.com)
RGB LED panel + Arduino shield: http://www.elecrow.com/cooperated-d...b-led-matrix-panel-arduino-driver-shield.html
*/
#include <Adafruit_GFX.h> // Core graphics library
#include <RGBmatrixPanel.h> // Hardware-specific library
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#include "RTClib.h"
#define CLK 8 // MUST be on PORTB! (Use pin 11 on Mega)
#define LAT A3
#define OE 9
#define A A0
#define B A1
#define C A2
Adafruit_BME280 bme; // I2C
#define DHTPIN 12 // what pin we're connected to
#define DHTTYPE DHT22 // DHT 22 (AM2302)
#define F2(progmem_ptr) (const __FlashStringHelper *)progmem_ptr
RGBmatrixPanel matrix(A, B, C, CLK, LAT, OE, false);
RTC_DS1307 rtc;
char *daysOfTheWeek[] = {"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"};
char *monthsOfyear[] = {"JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"};
float h, t, p;
byte red, green, blue, BackgroundBalls = 1;
int hue1 = 0, hue2 = 1536;
long j = 0;
String message = "";
//const char message[] PROGMEM = "";
int textX = matrix.width(),
textMin = sizeof(message) * -12,
hue = 0;
int8_t ball[3][4] = {
{ 3, 0, 1, 1 }, // Initial X,Y pos & velocity for 3 bouncy balls
{ 17, 15, 1, -1 },
{ 27, 4, -1, 1 }
};
void Display_Data() {
matrix.setTextSize(1);
matrix.fillScreen(0);
h = bme.readHumidity();
t = bme.readTemperature();
p = bme.readPressure() / 100.0F;
Serial.println(p);
// Display temperature, humidity, pressure
matrix.setTextColor(matrix.Color333(1, 0, 0)); // Red color
matrix.setCursor(2, 0); // start at top left
matrix.print((int)t);
matrix.print((char)248); // Degree symbol
matrix.print('C');
float tf = t * 1.8 + 32;
matrix.setCursor(2, 9); // start at second row left
matrix.setTextColor(matrix.Color333(0, 3, 1));
matrix.print((int)tf);
matrix.print((char)248); // Degree symbol
matrix.print('F');
delay(9000);
matrix.fillScreen(0);
matrix.setCursor(2, 0);
matrix.setTextColor(matrix.Color333(0, 3, 0));
matrix.print("Hum=");
matrix.setCursor(2, 9); // start at second row left
matrix.print(h, 1);
matrix.print('%');
delay(9000);
matrix.fillScreen(0);
matrix.setCursor(5, 0);
matrix.setTextColor(matrix.Color333(1, 1, 3));
matrix.print(p, 0);
matrix.setCursor(9, 9);
matrix.print("hPa");
delay(25000);
//Display time
DateTime now = rtc.now();
matrix.fillScreen(0);
matrix.setCursor(2, 1);
matrix.setTextColor(matrix.Color333(2, 2, 2));
if (now.hour() < 10) matrix.print(0, DEC);
matrix.print(now.hour(), DEC);
matrix.print(':');
if (now.minute() < 10) matrix.print(0, DEC);
matrix.print(now.minute(), DEC);
matrix.setCursor(7, 9);
matrix.setTextColor(matrix.Color333(0, 1, 3));
matrix.print(daysOfTheWeek[now.dayOfTheWeek()]);
delay(25000);
//DateTime now = rtc.now();
matrix.fillScreen(0);
matrix.setCursor(2, 0);
matrix.setTextColor(matrix.Color333(1, 1, 2));
if (now.month() < 10) matrix.print(0, DEC);
matrix.print(now.month(), DEC);
matrix.print('/');
matrix.print(now.day(), DEC);
matrix.setCursor(7, 9);
matrix.setTextColor(matrix.Color333(1, 1, 2));
matrix.print(now.year(), DEC);
delay(25000);
//Construct String message
message = monthsOfyear[now.month() - 2];
message += ' ';
message += now.day();
message += ", ";
message += now.year();
message += ", ";
message += daysOfTheWeek[now.dayOfTheWeek()];
message += " ";
message += now.hour();
message += ':';
message += now.minute();
message += " T=";
message += tf;
message += ((char)248);
message += "F, Humidity=";
message += h;
message += "% ";
textMin = message.length() * -12;
Serial.print("Message::");
Serial.println(message);
}
/* Recode russian fonts from UTF-8 to Windows-1251 */
String utf8rus(String source)
{
int i,k;
String target;
unsigned char n;
char m[2] = { '0', '\0' };
k = source.length(); i = 0;
while (i < k) {
n = source; i++;
if (n >= 0xC0) {
switch (n) {
case 0xD0: {
n = source; i++;
if (n == 0x81) { n = 0xA8; break; }
if (n >= 0x90 && n <= 0xBF) n = n + 0x30;
break;
}
case 0xD1: {
n = source; i++;
if (n == 0x91) { n = 0xB8; break; }
if (n >= 0x80 && n <= 0x8F) n = n + 0x70;
break;
}
}
}
m[0] = n; target = target + String(m);
}
return target;
}
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Serial.println(F("BME280 test"));
if (!bme.begin()) {
Serial.println("Could not find a valid BME280 sensor, check wiring!");
}
matrix.begin();
if (! rtc.begin()) {
Serial.println("Couldn't find RTC");
}
if (! rtc.isrunning()) {
Serial.println("RTC is NOT running!");
// following line sets the RTC to the date & time this sketch was compiled
rtc.adjust(DateTime(F(__DATE__),F(__TIME__)));
// This line sets the RTC with an explicit date & time, for example to set
// January 21, 2014 at 3am you would call:
// rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
}
}
void loop() {
Display_Data();
matrix.setTextWrap(false); // Allow text to run off right edge
matrix.setTextSize(2);
// Scroll_Text();
}
До чьего ума довести и что тут лишнее?
Посмотрел ссылку. Такая панель двух подобных скетчей стоит.
Здравствуйте просто поубрать лишнее и добавить кнопки для подводки часов
Я не разбираюсь в коде
Я заплачу сколько скажите
Сделать можно, проверить не на чем. Где ж такую панель нарыть... А 1307 на 3231 замените - тогда и подводить время мож не надо будет.
Я проверю безпроблем можно н лайн через скайп или как вам будет удобно.
Напишите на wrk.sadman@gmail.com как нужно модифицировать (убрать чего и т.д.)
Скетч на почту отправить
Я заплачу сколько скажите
Сурово :) Жаль, что неправда :)
Ну не программист я что не так то не всем же уметь программы писать.
Ну не программист я что не так то не всем же уметь программы писать.
Да нет, с этим всё норм, я про другое: фраза "Я заплачу, сколько скажете" - враньё, вот и всё. Давай я тебе скажу - плати мне сто тысяч долларов, и я напишу тебе скетч, ок? Я сказал, сколько мне надо заплатить. Плати, ты же высказал намерение, не?
Жизненный опыт шепчет мне на ухо, что разбрасываться такими фразами - не стоит, пустое это. И проходит с возрастом.
Зазнался ты товарищь
Зазнался ты товарищь
С чего такие выводы? Ок, я то же самое могу о тебе сказать: заврался ты, товарищ.
Ну сказать можно по разному. Хотя вы правы, с возрастом проходит. Я вот уже никогда не скажу - заплати 100 тысяч.
Я например скажу - сделаю за 1000 рублей. Там всё готово, только менюшку настройки часов вставить. Делал дома бегущую строку над дверью висит. Время, температура, давление, влажность дома и на улице. Третий год работает.
Ну сказать можно по разному. Хотя вы правы, с возрастом проходит. Я вот уже никогда не скажу - заплати 100 тысяч.
Я например скажу - сделаю за 1000 рублей. Там всё готово, только менюшку настройки часов вставить. Делал дома бегущую строку над дверью висит. Время, температура, давление, влажность дома и на улице. Третий год работает.
Спасибо как с вами связаться
DIYMan
Зазнался ты товарищь
С чего такие выводы? Ок, я то же самое могу о тебе сказать: заврался ты, товарищ.
Научитесь общаться
Если там все готово, то за что тыща? ))
Расскажете потом, как точками мигали и кнопки обрабатывали на приведенном коде.
Научитесь общаться
Не надо лезть в бутылку.
Тем более, что озвученная DIYMan сумма, хотя и не для текущего проекта, но в принципе не представляет собой ничего особенного - всего 5000 строк.
Правда, насколько я понял, не на этом форуме.
Аж интересно становится кто больше ?
Зазнался ты товарищь
С чего такие выводы? Ок, я то же самое могу о тебе сказать: заврался ты, товарищ.
Научитесь общаться
Взаимно, собственно. Ты чего такой смурной - кто-то обидел? Нормально же общались, или ты ни малейшей критики в свой адрес не принимаешь? Расслабься, не рефлексируй, всё нормально.
Я например скажу - сделаю за 1000 рублей. Там всё готово, только менюшку настройки часов вставить.
Скиф, если сделаешь за полдня и 1000 рублей - мой тебе респект и уважуха, без "б". Вот только опыт, опять же, рассказывает, что из этих полдня - половину уйдёт на утрясание деталей, четверть - на пост-продакшн, остаётся - только четверть, максимум. Почему полдня? Потому что рабочий день средненького такого быдлокодера, типа меня - от 2000 рублей.
Я вот, например, не готов за 1000, минимальный ценник на любую прошивку - от 2000 рублей, ещё ни разу, ттт, эта цифра не оказывалась чрезмерной по постфактум анализу затраченных усилий на всех этапах, включая отдалённые по времени (звонок через неделю "ой, а я забыл, для чего вот эта настройка!", "соединил по вашей схеме, почему-то не работает" и т.п.). Оно ж - не только программирование, тут пучок задач, наседающих на личное время ;)
Согласен с вами. Какое там полдня. Это мне дня на три (ну или вечера, практически то же самое, допоздна сижу). А "ой, а я забыл, для чего вот эта настройка!", это уже бесплатно.
От до чего довели бюджетников в расейских ширинках. :(
Ну не программист я что не так то не всем же уметь программы писать.
Для того чтобы вам сделали то что вы хотите, вам и не надо быть программистом. Вам вполне достаточно указать
1 - ЧТО вам надо сделать
2 - КОГДА вам надо сделать
3 - СКОЛЬКО ВЫ сами готовы заплатить, за то что вам надо сделать!
ЧТО надо сделать указано. Осталось только указать КОГДА надо сделать и ЗА СКОЛЬКО надо сделать!
Указав всего две цифры, Вы поможете потенциальному испонителю решиться на ваше предложение, а себя избавите пустой траты времени. Ведь даже если ваше коммерческое предложение и не вызовет интереса у потенциальных исполнителей, то вы узнаете, что ваше коммерческое предложение не стоит тех денег, которые вы готовы на него потратить. Если же вы сразу получите массу предложений от потенциальных исполнителей, у вас появится возможность выбрать того кто вам понравится, и вы получите то что хотите не за те деньги которые вам скажут, а за те деньги, которые сказали ВЫ!!!
Разумно
Для того чтобы вам сделали то что вы хотите, вам и не надо быть программистом. Вам вполне достаточно указать
1 - ЧТО вам надо сделать
2 - КОГДА вам надо сделать
3 - СКОЛЬКО ВЫ сами готовы заплатить, за то что вам надо сделать!
1- Ой, а знаете , мне такая штучка нужна что бы вот сама все делала .
2- вот прям срочно, надо вчера .
3-А форум не для того что бы помогать за так ? / тыжпрограммист , для тебя это на 5 минут.
Оно ж - не только программирование, тут пучок задач, наседающих на личное время ;)
Еще есть модная штучка - запись в персональные советники на все времена за цену скетча. Назвал цену за программинг, вытряс из заказчика ТЗ, сделал, полдня выяснял, почему у него не заводится и объяснял зачем нужно землю подавать на бредбоард, получил деньги и... Каждый месяц (в лучшем случае) - "Помнишь, ты мне скетч делал. Объясни, почему... <в телевизоре звука нет>".
Нахер форум, есть же специалист, который по старой памяти все разрулит - ведь ему уже было уплачено когда-то, а тут ваще нечего делать - за минутку черкнуть имейл с ответом. Это ж ваще не работа.
1- Ой, а знаете , мне такая штучка нужна что бы вот сама все делала .
2- вот прям срочно, надо вчера .
3-А форум не для того что бы помогать за так ? / тыжпрограммист , для тебя это на 5 минут.
1 - тогда Вы не туда попали. Вам в сказку надо, а тут форум.
2 - Если надо было вчера, то вы опрздали! А если срочно, то за срочность придется доплатить!
3- Так форум не служба спасения и не скорая помощь, и даже не справочная служба. Иногда на нем помогают, иногда просто общаются и проводят досуг, а иногда и деньги зарабатывают.
"тыжпрограммист , для тебя это на 5 минут." Для меня это на 5 минут РАБОТЫ, а для вас это на дни и недели (а то и на месяцы и годы) удовольствие и состояние душевного комфорта. А за удовольствие и комфорт принято платить, и чем больше комфорта и дольше удовольствие, тем и цена на них выше!!! Так что свои деньги вы платите не за мою профессию, а за СВОЕ удовольствие и СВОЙ комфорт. Приятно же получать удовольствие СРАЗУ, а не потом, и уж тем более не когда-нибудь.
согласна сделать. Cожалению никак немею делать дешево, с того знания имеют своя цена. Книга за скетч, OK? https://www.wiley.com/en-ua/Designing+Embedded+Systems+and+the+Internet+...
Оно ж - не только программирование, тут пучок задач, наседающих на личное время ;)
Еще есть модная штучка - запись в персональные советники на все времена за цену скетча. Назвал цену за программинг, вытряс из заказчика ТЗ, сделал, полдня выяснял, почему у него не заводится и объяснял зачем нужно землю подавать на бредбоард, получил деньги и... Каждый месяц (в лучшем случае) - "Помнишь, ты мне скетч делал. Объясни, почему... <в телевизоре звука нет>".
Нахер форум, есть же специалист, который по старой памяти все разрулит - ведь ему уже было уплачено когда-то, а тут ваще нечего делать - за минутку черкнуть имейл с ответом. Это ж ваще не работа.
Опа. А я думал такое только у меня. И у вас тоже?
согласна сделать. Cожалению никак немею делать дешево, с того знания имеют своя цена. Книга за скетч, OK? https://www.wiley.com/en-ua/Designing+Embedded+Systems+and+the+Internet+of+Things+%28IoT%29+with+the+ARM+mbed-p-9781119364047
Согласен с вами
каждая работа и каждые знания имеют свою цену
но не 100 тысяч доларов за исправление готового скетча
Ну конечно нет. То он образно написал. Здесь по стольку никто не платит. Цены всегда разумные.
если Вы, согласны webserpantin gmail.com. Никогда не откажусь от 100K$)
strarbit, вы видите тут кого-то, кто отказывается? ))
Спасибо буду иметь виду
sadman41, нет, не видела) sadman41 благодарю ВАС!
Хорошо когда с юмором всё в порядке.)
Здравствуйте это вы мне про почту то
Всем спаибо тему закрываем!!! :(
Всем спаибо тему закрываем!!! :(
А чего смайлик грустный? Не нашлось исполнителя? Или - нашёлся, но цена ввела в печаль? :)
pmasyukov@gmail.com
скинь скетч со всеми библиотеками и описание что конкретно требуется.
Ну, я так понимаю, что тут ищется вариант "скетч не дороже половины стоимости железок". А скиф имейл не дает, только обещает за стоимость четырех обедов запрограммить, отладить и объяснить.
Ну, я так понимаю, что тут ищется вариант "скетч не дороже половины стоимости железок".
Лежит у меня тут прибор на DIN-рейку: стоимость железок там на пару тысяч, на программирование потрачена сумма с пятью нулями. Щас бы по стоимости железок оценивать трудозатраты, конечно :) Хотя - у нас тут и не такое возможно :)
Работу программиста можно определять и по стоимости железяк... только с условием, что железяка выходит тиражом не менее 1000 экземпляров.
согласна сделать. Cожалению никак немею делать дешево, с того знания имеют своя цена. Книга за скетч, OK? https://www.wiley.com/en-ua/Designing+Embedded+Systems+and+the+Internet+of+Things+%28IoT%29+with+the+ARM+mbed-p-9781119364047
Согласен с вами
каждая работа и каждые знания имеют свою цену
но не 100 тысяч доларов за исправление готового скетча
Может у меня с глазами что-то, но я там 100 евриков увидел.?????
Тема закрыта 4 кнопки прикрутить програмно за 100 тысяч ещё и долорей развод в чистом виде
Извеняюсь за беспокойство!!!
Тема закрыта 4 кнопки прикрутить програмно за 100 тысяч ещё и долорей развод в чистом виде
Извеняюсь за беспокойство!!!
Если вы считаете, что можете это сделать за шесть дней, то тогда, да.
Кто сказал что за шесть дней Тема закрыта Сам разберусь со временем время не ограниченно
Я не знаю уровень ваших доходов, поэтому привел к минимальной сумме за рабочий день, ниже которой нет смысла ходить на работу.
Я обыкновенный человек занимаюсь подъёмом мёртвых ноутбуков компов и тд любой электроники но с программами у меня напряг C++ просто не знаю когдато учил бейсик но очинь давно
// put your setup code here, to run once: Serial.begin(9600); Serial.println(F("BME280 test")); if (!bme.begin()) { Serial.println("Could not find a valid BME280 sensor, check wiring!"); } matrix.begin(); if (! rtc.begin()) { Serial.println("Couldn't find RTC"); } if (! rtc.isrunning()) { Serial.println("RTC is NOT running!"); // following line sets the RTC to the date & time this sketch was compiled rtc.adjust(DateTime(F(__DATE__),F(__TIME__))); // This line sets the RTC with an explicit date & time, for example to set // January 21, 2014 at 3am you would call: // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0)); } }В этой части берётся время с компа но как именно не понимаю
соответственно как его настроить то же непойму