Про энергопотребление я знаю. Сигнатуры разные. Это может на что то повлиять?vitalyadm писал(а):Мега с буквой Р отличается от меги БЕЗ Р энергопотреблением, т.е. так что с Р является маложрущей по току. По всему остальному это один и тот же проц. Проще говоря они взаимозаменяемы. По сигнатурам не помню, но вроде они одинаковые.a_l_e_x писал(а):Хорошо, тогда возьмем за основу Гибрид, может и охрана понадобится в будущемПрошивка ведь подойдет и для Atmega 328P? Или обязательно надо без "P"?
GSM метеостанция.
- Сообщения: 181
- Зарегистрирован: Ср июл 22, 2009 19:41:17
- Реклама
Не, должно нормально прошиться и работать.a_l_e_x писал(а):Про энергопотребление я знаю. Сигнатуры разные. Это может на что то повлиять?
Привет друзья! В ходе очередных доработок, понадобилось сэмулировать работу датчика DHT11, да бы не менять уже существующее железо, для передачи каких - то иных значений, нежели влажность и температура. Для чего? Ну вот смотрите, к станции, как вы знаете может быть подключено два датчика DHT11, но Вас бы устроил и один датчик, а вместо второго набора влажности и температуры, вам бы лучше передавать иные значения, например уровень напряжения и состояние некой нагрузки, не важно.... Как быть, а просто, нужно слепить некий девайс, который вместо влажности и температуры будет передавать "ваши" данные, при этом прикидываясь датчиком DHT11, в общем думаю полезных примочек наделать можно....
По симу, вот вам код, осталось только подставить желаемые значения и всё
// настраиваем порты, сейчас датчик общается со станцией по ноге D.0
#define PULSE_DDR DDRD.0
#define PULSE_OUT PORTD.0
#define PULSE_IN PIND.0
// массив в котором будем хранить байт в виде бит
unsigned char bin_mass[ 8 ] = { 0 };
// байты которые будем слать, для удобства будет массив
unsigned char s_byte[ 2 ] = { 0 };
// переводим число в массив бит
void int_to_bin( unsigned char x ) {
unsigned char i;
// цикл в котором проходим по каждому индексу массива содержащего биты числа
for ( i = 0; i < 8; i++ ) {
// пробразовываем в массив
bin_mass[ i ] = ( x >> i ) & 1;
}
}
// функция передачи данных по протоколу DHT11
void data_transmission( void ) {
// переменные функции
unsigned char n = 0, k;
// считаем в милисекундах сколько прижата нога к земле
while ( PULSE_IN == 0 ) {
// увеличиваем счётчик
n++;
// если насчитали больше пятнадцати, прерываем цикл
if ( n >= 15 ) break;
// пауза счётчика
delay_ms( 1 );
}
// если счётчик меньше 15 мс- выходим, ошибка
if ( n < 15 ) return;
// дожидаемся когда ногу наконец- то отпустит ))))
while( PULSE_IN == 0 );
// делаем паузу в 40 микросекунд, в это время проц поднимает шину на 40 микросекунд, тупо забиваем на его старания
delay_us( 40 );
// начинаем имитировать запуск датчика
// пин на выход
PULSE_DDR = 1;
// выдаём 0
PULSE_OUT = 0;
// пауза
delay_us( 80 );
// выдаём 1
PULSE_OUT = 1;
// пауза
delay_us( 80 );
// заканчиваем имитировать запуск датчика
// запускаем цикл для передачи 5 байт
for ( n = 0; n < 5; n++ ) {
// тестовые данные, вместо хх, 0 уу, 0, хх + уу должны быть реальные значения т.е. переменные, 5- й байт сумма всех переменных
// т.е. байт1 + байт2 + байт3 + байт4
switch ( n ) {
// передаваемый байт 1
case 0: int_to_bin( s_byte[ 0 ] ); break;
// передаваемый байт 2, так как используем протокол DHT11, то 2 и 4 байты должны быть равны 0
case 1: int_to_bin( 0 ); break;
// передаваемый байт 3
case 2: int_to_bin( s_byte[ 1 ] ); break;
// передаваемый байт 4, так как используем протокол DHT11, то 2 и 4 байты должны быть равны 0
case 3: int_to_bin( 0 ); break;
// передаваемый байт 5, сумма всех предыдущих 4- х байт
case 4: int_to_bin( s_byte[ 0 ] + s_byte[ 1 ] ); break;
};
// цикл передачи байта (8 бит )
for(k = 0; k < 8; k++) {
// переводим ногу в 0
PULSE_OUT = 0;
// пауза исходя из протокола
delay_us( 50 );
// поднимает ногу в 1
PULSE_OUT = 1;
// хитропопый протокол, если передаём еденицу, значит нога висит в состоянии "1" 70 мкс,
// если передаём 0, то нога висит в состоянии "1" 28мкс
if ( bin_mass[ 7 - k ] == 0 ) delay_us( 28 ); else delay_us( 70 );
}
// обязательно опускаем ногу при окончании передачи очередного байта, иначе при приёме все биты сместяться на +1
PULSE_OUT = 0; // выдаём 0
}
// пауза по выходу
delay_us( 80 );
// уходем от сюда
return;
}
void main(void) {
.
.
.
.
.
.
// main цикл
while (1) {
// тестовые байты, которые будем передавать, их нужно заменить на свои значения.
s_byte[ 0 ] = 29;
s_byte[ 1 ] = 135;
// Пин как вход
PULSE_DDR = 0;
// если зафиксирован входящий сигнал. то пробуем отправить данные
if ( PULSE_IN == 0 ) data_transmission();
}
}
По симу, вот вам код, осталось только подставить желаемые значения и всё
// настраиваем порты, сейчас датчик общается со станцией по ноге D.0
#define PULSE_DDR DDRD.0
#define PULSE_OUT PORTD.0
#define PULSE_IN PIND.0
// массив в котором будем хранить байт в виде бит
unsigned char bin_mass[ 8 ] = { 0 };
// байты которые будем слать, для удобства будет массив
unsigned char s_byte[ 2 ] = { 0 };
// переводим число в массив бит
void int_to_bin( unsigned char x ) {
unsigned char i;
// цикл в котором проходим по каждому индексу массива содержащего биты числа
for ( i = 0; i < 8; i++ ) {
// пробразовываем в массив
bin_mass[ i ] = ( x >> i ) & 1;
}
}
// функция передачи данных по протоколу DHT11
void data_transmission( void ) {
// переменные функции
unsigned char n = 0, k;
// считаем в милисекундах сколько прижата нога к земле
while ( PULSE_IN == 0 ) {
// увеличиваем счётчик
n++;
// если насчитали больше пятнадцати, прерываем цикл
if ( n >= 15 ) break;
// пауза счётчика
delay_ms( 1 );
}
// если счётчик меньше 15 мс- выходим, ошибка
if ( n < 15 ) return;
// дожидаемся когда ногу наконец- то отпустит ))))
while( PULSE_IN == 0 );
// делаем паузу в 40 микросекунд, в это время проц поднимает шину на 40 микросекунд, тупо забиваем на его старания
delay_us( 40 );
// начинаем имитировать запуск датчика
// пин на выход
PULSE_DDR = 1;
// выдаём 0
PULSE_OUT = 0;
// пауза
delay_us( 80 );
// выдаём 1
PULSE_OUT = 1;
// пауза
delay_us( 80 );
// заканчиваем имитировать запуск датчика
// запускаем цикл для передачи 5 байт
for ( n = 0; n < 5; n++ ) {
// тестовые данные, вместо хх, 0 уу, 0, хх + уу должны быть реальные значения т.е. переменные, 5- й байт сумма всех переменных
// т.е. байт1 + байт2 + байт3 + байт4
switch ( n ) {
// передаваемый байт 1
case 0: int_to_bin( s_byte[ 0 ] ); break;
// передаваемый байт 2, так как используем протокол DHT11, то 2 и 4 байты должны быть равны 0
case 1: int_to_bin( 0 ); break;
// передаваемый байт 3
case 2: int_to_bin( s_byte[ 1 ] ); break;
// передаваемый байт 4, так как используем протокол DHT11, то 2 и 4 байты должны быть равны 0
case 3: int_to_bin( 0 ); break;
// передаваемый байт 5, сумма всех предыдущих 4- х байт
case 4: int_to_bin( s_byte[ 0 ] + s_byte[ 1 ] ); break;
};
// цикл передачи байта (8 бит )
for(k = 0; k < 8; k++) {
// переводим ногу в 0
PULSE_OUT = 0;
// пауза исходя из протокола
delay_us( 50 );
// поднимает ногу в 1
PULSE_OUT = 1;
// хитропопый протокол, если передаём еденицу, значит нога висит в состоянии "1" 70 мкс,
// если передаём 0, то нога висит в состоянии "1" 28мкс
if ( bin_mass[ 7 - k ] == 0 ) delay_us( 28 ); else delay_us( 70 );
}
// обязательно опускаем ногу при окончании передачи очередного байта, иначе при приёме все биты сместяться на +1
PULSE_OUT = 0; // выдаём 0
}
// пауза по выходу
delay_us( 80 );
// уходем от сюда
return;
}
void main(void) {
.
.
.
.
.
.
// main цикл
while (1) {
// тестовые байты, которые будем передавать, их нужно заменить на свои значения.
s_byte[ 0 ] = 29;
s_byte[ 1 ] = 135;
// Пин как вход
PULSE_DDR = 0;
// если зафиксирован входящий сигнал. то пробуем отправить данные
if ( PULSE_IN == 0 ) data_transmission();
}
}
Здравствуйте. Вопрос автору. можно внести изменения в прошивку.устройства - GSM метеостанция.Гибрид? поменять сенсор DHT22 на SHT21. DHT22 реально врет. Заранее спасибо.
И еще. В описании указано, что станция передает данные на сервер каждый час. Можно в прошивки изменить время передачи данных на сервер? к примеру каждые 10 минут. А то целый ЧАС - это как то очень редко..
- Реклама
DHT22 считается точным датчиком.
Если модель MG-2, то там отправка каждые пол часа. Если новая MG-3, то там уже настраивается в личном кабинете.
Если модель MG-2, то там отправка каждые пол часа. Если новая MG-3, то там уже настраивается в личном кабинете.
Спасибо за ответ. Скажите пожалуйста. Какая из станций MG2 и MG3.?MDX писал(а):DHT22 считается точным датчиком.
Если модель MG-2, то там отправка каждые пол часа. Если новая MG-3, то там уже настраивается в личном кабинете.
Нет, увы нельзя, SHT21 работает по протоколу I2C, что совершенно не вяжется с конструктивом. здесь всё намного проще. Посмотрите моё сообщение чуть выше, про протоколanaramo писал(а):Здравствуйте. Вопрос автору. можно внести изменения в прошивку.устройства - GSM метеостанция.Гибрид? поменять сенсор DHT22 на SHT21. DHT22 реально врет. Заранее спасибо.
Это так, но с влажностью у них действительно бывает беда, с температурой всё ОК. народ советует, если по значениям влажности беда- то питать датчик (нога Vcc) через резистор ~320 Ом. Вроде помогает.MDX писал(а):DHT22 считается точным датчиком.
Ну MG-3 существует пока в виде чертежей и набросков, тут немного поторопилисьanaramo писал(а):Если модель MG-2, то там отправка каждые пол часа. Если новая MG-3, то там уже настраивается в личном кабинете.
Спасибо за ответ. Скажите пожалуйста. Какая из станций MG2 и MG3.?
Спасибо за ответ, уважаемый автор.. Хочу собрать версию ГИБРИД. Пока собираю детали и все такое. В наличии оказался вот такой GSM модуль. http://www.ebay.com/itm/New-SIM800L-GPR ... SwLVZVzEHe 1. Этот модуль будет корректно работать с вашей станцией? По описанию это одно и тоже. Там есть встроенный стабилизатор напряжения. модуль работает от 5v.vitalyadm писал(а):Нет, увы нельзя, SHT21 работает по протоколу I2C, что совершенно не вяжется с конструктивом. здесь всё намного проще. Посмотрите моё сообщение чуть выше, про протоколanaramo писал(а):Здравствуйте. Вопрос автору. можно внести изменения в прошивку.устройства - GSM метеостанция.Гибрид? поменять сенсор DHT22 на SHT21. DHT22 реально врет. Заранее спасибо.Понимаете намёк? Поясняю, есть протокол работы датчика, можете сделать свой датчик, хоть на SHT, хоть на на фоторезисторе, просто потом передаёте эти данные по протоколу DHT.
Это так, но с влажностью у них действительно бывает беда, с температурой всё ОК. народ советует, если по значениям влажности беда- то питать датчик (нога Vcc) через резистор ~320 Ом. Вроде помогает.MDX писал(а):DHT22 считается точным датчиком.Ну MG-3 существует пока в виде чертежей и набросков, тут немного поторопилисьanaramo писал(а):Если модель MG-2, то там отправка каждые пол часа. Если новая MG-3, то там уже настраивается в личном кабинете.
Спасибо за ответ. Скажите пожалуйста. Какая из станций MG2 и MG3.?Есть действующая MG-2.1, а так на сайте ЛК, в разделе статьи скачайте прошивку.
2. метеостанция.Гибрид - это и есть MG-2.1 ?
Перепутал, речь о 1 и 2 версияхvitalyadm писал(а):Ну MG-3 существует пока в виде чертежей и набросков, тут немного поторопилисьЕсть действующая MG-2.1, а так на сайте ЛК, в разделе статьи скачайте прошивку.
Кстати, кто пользуется tele2, советую посмотреть тариф "Интернет для устройств".
vitalyadm, такой вопрос: если включить отправку данных на народмон. Как осуществляется отправка данных? То есть напрямую с устройства или с сайта метеолк? Если с устройства, то получается трафик увеличится в два раза?
Если данные передаются на народмон, то формируется два отдельных независимых пакета, один пакет отправляется в ЛК, второй на народмон. Но, при чём тут трафик, он измеряется в БАЙТАХ, даже не в килобайтах, а в байтах, там как такового трафика и нет. Не думаю, что это категорически увеличит расходы.MDX писал(а):Кстати, кто пользуется tele2, советую посмотреть тариф "Интернет для устройств".
vitalyadm, такой вопрос: если включить отправку данных на народмон. Как осуществляется отправка данных? То есть напрямую с устройства или с сайта метеолк? Если с устройства, то получается трафик увеличится в два раза?
Добавлено after 8 minutes 6 seconds:
Модуль подойдёт, цена конечно его меня совсем не порадовала, в два раза дороже чем красный шилд. А разница только в питании от 5в, собственно один стабилизатор обойдётся куда дешевле. Но дело хозяйское.anaramo писал(а): Спасибо за ответ, уважаемый автор.. Хочу собрать версию ГИБРИД. Пока собираю детали и все такое. В наличии оказался вот такой GSM модуль. http://www.ebay.com/itm/New-SIM800L-GPR ... SwLVZVzEHe 1. Этот модуль будет корректно работать с вашей станцией? По описанию это одно и тоже. Там есть встроенный стабилизатор напряжения. модуль работает от 5v.
2. метеостанция.Гибрид - это и есть MG-2.1 ?что то не могу найти где именно скачать прошивку...
По п.2 см личку.
vitalyadm писал(а):Если данные передаются на народмон, то формируется два отдельных независимых пакета, один пакет отправляется в ЛК, второй на народмон. Но, при чём тут трафик, он измеряется в БАЙТАХ, даже не в килобайтах, а в байтах, там как такового трафика и нет. Не думаю, что это категорически увеличит расходы.MDX писал(а):Кстати, кто пользуется tele2, советую посмотреть тариф "Интернет для устройств".
vitalyadm, такой вопрос: если включить отправку данных на народмон. Как осуществляется отправка данных? То есть напрямую с устройства или с сайта метеолк? Если с устройства, то получается трафик увеличится в два раза?
Добавлено after 8 minutes 6 seconds:Модуль подойдёт, цена конечно его меня совсем не порадовала, в два раза дороже чем красный шилд. А разница только в питании от 5в, собственно один стабилизатор обойдётся куда дешевле. Но дело хозяйское.anaramo писал(а): Спасибо за ответ, уважаемый автор.. Хочу собрать версию ГИБРИД. Пока собираю детали и все такое. В наличии оказался вот такой GSM модуль. http://www.ebay.com/itm/New-SIM800L-GPR ... SwLVZVzEHe 1. Этот модуль будет корректно работать с вашей станцией? По описанию это одно и тоже. Там есть встроенный стабилизатор напряжения. модуль работает от 5v.
2. метеостанция.Гибрид - это и есть MG-2.1 ?что то не могу найти где именно скачать прошивку...
По п.2 см личку.
По поводу цены модуля - согласен. Скажите пожалуйста. А как быть с системой "перезапуска" модуля? Может быть вообще не подключать модуль через реле. а подключить сразу напрямую.?!
- Сообщения: 20
- Зарегистрирован: Чт дек 22, 2016 22:02:38
Доброе время суток. Есть несколько штук NEOWAY M590, на них будет работать метеостанция?
Если ситуация при которой модуль завис и его надо передёрнуть по питанию является не критичной, то можно и без реле, но не советую.anaramo писал(а):По поводу цены модуля - согласен. Скажите пожалуйста. А как быть с системой "перезапуска" модуля? Может быть вообще не подключать модуль через реле. а подключить сразу напрямую.?!
Добавлено after 1 minute 24 seconds:
Не могу сказать, нужно сравнивать даташиты и смотреть, одинаковы ли команды у SIM800 и этого модуля. Т.е. весь вопрос в командах.sinar писал(а):Доброе время суток. Есть несколько штук NEOWAY M590, на них будет работать метеостанция?
- Сообщения: 20
- Зарегистрирован: Чт дек 22, 2016 22:02:38
Да команды вроде бы одинаковые а станция молчит. Периодически сразу три светодиода моргают и всё. Что может быть?
Нужно посмотреть что выдаёт проц, нужен USB-UART переходник. Подцепите RX USB-UART к TX МК, GND к GND, TX USB-UART никуда цеплять не надо. Далее качаете архив http://gsm.meteolk.ru/uploads/GSM_meteostation_g.zip из архива запускаете uart.exe, в настройках СОМ выбираете СОМ под которым определился USB-UART переходник, нажимаете "открыть СОМ", запускаете станцию.sinar писал(а):Да команды вроде бы одинаковые а станция молчит. Периодически сразу три светодиода моргают и всё. Что может быть?
пусть минут 5 работает, потом правой кнопкой мыши на окне- "Сохранить в файл", файл с информацией мне.
А пока нет информации о том, что происходит (или не происходит) сказать ничего не могу.
- Сообщения: 20
- Зарегистрирован: Чт дек 22, 2016 22:02:38
Может быть я что то не так настроил в Neoway M590?
- Вложения
-
- _23_12_16_20_00_37.txt
- (1.26 КБ) 177 скачиваний
1. От куда была взята прошивка? Если Вы делаете "гибрид", то прошивку лить нужно из этого архива: http://gsm.meteolk.ru/uploads/GSM_meteostation_g.zipsinar писал(а):Может быть я что то не так настроил в Neoway M590?
2. Когда снималась информация с ТХ МК, модуль был установлен? (как на картинке?)
3. Если пункт 2 ДА, то нужно проделать аналогичную процедуру, только теперь RX USB-UART подцепить на RX МК
Пока что вывод: нет ответа от модуля, но во первых залейте актуальную прошивку.
- Вложения
-
- UART.jpg
- (28.14 КБ) 501 скачивание
- Сообщения: 20
- Зарегистрирован: Чт дек 22, 2016 22:02:38
Прошивка была залита для меги8, модуль был не подключён. Сегодня ночью залил прошивку в мегу 328 из архива(актуальную) вообще тишина ни чего не работает и переходник подключал нет ни чего.BMP180 подключён.
См. личку.sinar писал(а):Прошивка была залита для меги8, модуль был не подключён. Сегодня ночью залил прошивку в мегу 328 из архива(актуальную) вообще тишина ни чего не работает и переходник подключал нет ни чего.BMP180 подключён.


