Передатчик FS1000A и приемник MX-RM-5V

Ответить
Alex787
Рядовой
Сообщения: 3
Зарегистрирован: 26 окт 2019, 10:05
Имя: Олег

Передатчик FS1000A и приемник MX-RM-5V

Сообщение Alex787 »

Добрый вечер. Есть проект "Беспроводной датчик температуры и влажности на базе радиомодулей 433/315" и там есть конструктор прошивки для Attiny13 + FS1000A в качестве без проводного датчика для DS18B20. Принимать сигнал можно на Arduino + MX-RM-5V. Применяется библиотека RCswitch. Там же есть алгоритм приема и пример приема данных на Arduino.
[spoiler title=Скетч примера]
#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();

float tempout=0,tempin=0,Hr=0;

#define key1 30000 // датчик температуры
#define key2 30300 // датчик температуры
#define key3 30500 // датчик влажность


void setup() {

mySwitch.enableReceive(0); // Receiver on inerrupt 0 => that is pin #2 // иницилизация.Используется вывод м/к с прерыванием под номером 0.
}
void loop() {

if (mySwitch.available()) {

unsigned long receivedCode= mySwitch.getReceivedValue();
if (receivedCode == 0) {
// обработка:не верный формат данных
} else {

if (key1<=receivedCode && key1+999>receivedCode) tempout=(float)(receivedCode-key1-500)/10;
else if (key2<=receivedCode && key2+999>receivedCode) tempin=(float)(receivedCode-key2-500)/10;
else if (key3<=receivedCode && key3+999>receivedCode) Hr=(float)(receivedCode-key3)/10;//пример для влажности
// можно не делить на 10,если отправляем через езернет на компьютер- разделить можно там.

}

mySwitch.resetAvailable(); // сброс данных.
} // end available
// тут могут выводится данные tempout и tempin на лсд экран или отправлятся через езернет.

}
[/spoiler]

Попробовал создать ПБ. Но не хватает мозгов. На экране отображается всегда 0,00. Прошу помощи. Вот мой проект:
Test_RF433.flp
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
ViktorPetrov
Капитан
Сообщения: 807
Зарегистрирован: 09 апр 2018, 23:56
Имя: Виктор
Благодарил (а): 4 раза
Поблагодарили: 1 раз

Передатчик FS1000A и приемник MX-RM-5V

Сообщение ViktorPetrov »

[ref]Alex787[/ref], Вам наверное нужны для проекта, блоки приема и передачи данных.
Блок приема-передачи данных по протоколу 2262 и 1527
Блоки приема и передачи данных посредством RF433 канала
Alex787
Рядовой
Сообщения: 3
Зарегистрирован: 26 окт 2019, 10:05
Имя: Олег

Передатчик FS1000A и приемник MX-RM-5V

Сообщение Alex787 »

Да, я выдел эти блоки. Только передатчик не влезет в Attiny13. А на приемник я не понял как туда прописать ключ.

#define key1 30000 // датчик температуры

if (key1<=receivedCode && key1+999>receivedCode) tempout=(float)(receivedCode-key1-500)/10;

Вот описание:
receivedCode - это принятый код.
key - это константа код-идентификатор,которую мы задавали при передаче текущих данных.
temp - полученная температура с одним знаком после запятой.
Откуда взялось число 999 ? - это указание диапазона,в котором число будет воспринято как данная температура в диапазоне -49.9 до +49.9
Для отправки НЕ отрицательного значения мы можем упустить прибавления числа 500
Для отправки ЦЕЛОГО числа мы можем не умножать на 10 при передаче,а при приеме не делить на 10

В конструкторе для Attiny13 задается ключ. Вот я и не знаю как его прописать.

Конструктор прошивки:

DS18B20 DHTT11
Протокол: двоичный
Ключ температура: 30000
Ключ влажность: 12000 Только для датчиков DHT.
Ответить

Вернуться в «Помогите, а то я "нимагу"»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя