Кнопка для отправки 433mhz кода в эфир
- Войдите на сайт для отправки комментариев
Ср, 06/03/2019 - 13:37
Всем привет. Прошу не пинать. Перерыл все, но ответа не нашел.
Нужно в скетче прописать кнопку, что бы при ее нажатии посылался код.
Есть скетч (не мой), который каждые пять секунд посылает код; все работает, все открывается, но нужно что бы открывалось с кнопки.
Вот скеч где код посылается каждые 5 секунд (там есть лишние строки):
01 | #define txPin 3 //пин передатчика |
02 |
03 | void setup () |
04 | { |
05 | pinMode(txPin, OUTPUT); |
06 | Serial .begin(115200); // тут поставьте свою скорость |
07 | Serial .println( "Came started" ); |
08 | } |
09 |
10 | volatile static long lastCode = 0; |
11 | |
12 | void loop () { |
13 | // это раскомментить и вместо 3693 вписать свой код для шлагбаума |
14 | SendCame4(629); |
15 | delay(5000); |
16 | return ; |
17 | |
18 | // при получении кода выводим его в терминал |
19 | if (lastCode > 0) |
20 | { |
21 | Serial .println(lastCode & 0xfff); |
22 | lastCode = 0; |
23 | } |
24 | } |
25 | void SendCame4( long Code) { |
26 | for ( int j = 0; j < 7; j++) { // посылку посылаем 4 раза подряд. |
27 | // время стартового импульса |
28 | digitalWrite(txPin, HIGH); |
29 | delayMicroseconds(320); |
30 | digitalWrite(txPin, LOW); |
31 | for ( int i = 12; i > 0; i--) { |
32 | byte b = bitRead(Code, i - 1); // побитово перебираем и посылаем код |
33 | if (b) { |
34 | digitalWrite(txPin, LOW); // 1 |
35 | delayMicroseconds(640); |
36 | digitalWrite(txPin, HIGH); |
37 | delayMicroseconds(320); |
38 | } |
39 | else { |
40 | digitalWrite(txPin, LOW); // 0 |
41 | delayMicroseconds(320); |
42 | digitalWrite(txPin, HIGH); |
43 | delayMicroseconds(640); |
44 | } |
45 | } |
46 | digitalWrite(txPin, LOW); |
47 | delayMicroseconds(11520); |
48 | } |
49 | } |
А вот скеч куда надо прикрепить посылаемый сигнал:
01 | /#define CAYENNE_DEBUG // Uncomment to show debug messages |
02 | #define CAYENNE_PRINT Serial // Comment this out to disable prints and save space |
03 | #include <CayenneMQTTESP8266Shield.h> |
04 |
05 | // WiFi network info. |
06 | char ssid[] = "BEIREL" ; |
07 | char wifiPassword[] = "7528843788" ; |
08 |
09 | // Cayenne authentication info. This should be obtained from the Cayenne Dashboard. |
10 | char username[] = "291ec810-488a-11e8-еп67-db14f0c2b326" ; |
11 | char password[] = "0e737ffa31e6de40bиак458fd082af113f3c1a4f" ; |
12 | char clientID[] = "41f85a80-3f66-11e9-7гп5-c15442ccb423" ; |
13 |
14 | // Set ESP8266 Serial object. In this example we use the Serial1 hardware serial which is available on boards like the Arduino Mega. |
15 | #define EspSerial Serial |
16 | #define VIRTUAL_CHANNEL 1 |
17 | #define ACTUATOR_PIN 4 |
18 | # |
19 |
20 | ESP8266 wifi(&EspSerial); |
21 |
22 | void setup () |
23 | { |
24 | Serial .begin(9600); |
25 | pinMode(ACTUATOR_PIN, OUTPUT); |
26 | pinMode(txPin, OUTPUT); |
27 | delay(10); |
28 |
29 | // Set ESP8266 baud rate |
30 | EspSerial.begin(115200); |
31 | delay(10); |
32 | |
33 |
34 | Cayenne.begin(username, password, clientID, wifi, ssid, wifiPassword); |
35 | } |
36 | volatile static long lastCode = 0; |
37 |
38 | void loop () |
39 | { |
40 | Cayenne. loop (); |
41 | } |
42 |
43 | // Default function for sending sensor data at intervals to Cayenne. |
44 | // You can also use functions for specific channels, e.g CAYENNE_OUT(1) for sending channel 1 data. |
45 | CAYENNE_OUT_DEFAULT() |
46 | { |
47 | // Write data to Cayenne here. This example just sends the current uptime in milliseconds on virtual channel 0. |
48 | Cayenne.virtualWrite(0, millis()); |
49 | // Some examples of other functions you can use to send data. |
50 | //Cayenne.celsiusWrite(1, 22.0); |
51 | //Cayenne.luxWrite(2, 700); |
52 | //Cayenne.virtualWrite(3, 50, TYPE_PROXIMITY, UNIT_CENTIMETER); |
53 | } |
54 | CAYENNE_IN(VIRTUAL_CHANNEL) |
55 | { |
56 |
57 |
58 | // Write value to turn the relay switch on or off. This code assumes you wire your relay as normally open. |
59 | if (getValue.asInt() == 0) { |
60 | digitalWrite(ACTUATOR_PIN, LOW); |
61 | } |
62 | else { |
63 | digitalWrite(ACTUATOR_PIN, HIGH); |
64 | } |
65 | } |
66 |
67 |
68 | // Default function for processing actuator commands from the Cayenne Dashboard. |
69 | // You can also use functions for specific channels, e.g CAYENNE_IN(1) for channel 1 commands. |
70 | CAYENNE_IN_DEFAULT() |
71 | { |
72 | CAYENNE_LOG( "Channel %u, value %s" , request.channel, getValue.asString()); |
73 | //Process message here. If there is an error set an error message using getValue.setError(), e.g getValue.setError("Error message"); |
74 | } |
Буду очень благодарен за помощь.
Точно все перерыли? Поройтесь еще здесь. Научитесь зажигать светодиод по кнопке. А там и в эфир можно будет отправлять. Принцип тот же.
Принцип тот же.
Принцип тот же, но со светодиодом это одно (выбрал пин и все), а вот какую команду прописать что бы послать сигнал с передатчика мне не понятно
1
if
(getValue.asInt() == 0) {
2
SendCame4(629);
так не работает
Принцип тот же, но со светодиодом это одно (выбрал пин и все), а вот какую команду прописать что бы послать сигнал с передатчика мне не понятно
1
if
(getValue.asInt() == 0) {
2
SendCame4(629);
так не работает
у вас проблема не в команде, а в считывании кнопки. А команду на посылку кода, насколько я вижу - вы вставили верно.
ВОРНИНГ - Обсуждение взлома сигналок вообще-то на форуме не приветсвуется
Принцип тот же, но со светодиодом это одно (выбрал пин и все), а вот какую команду прописать что бы послать сигнал с передатчика мне не понятно
1
if
(getValue.asInt() == 0) {
2
SendCame4(629);
так не работает
у вас проблема не в команде, а в считывании кнопки.
реле с этой кнопкой работает
ВОРНИНГ - Обсуждение взлома сигналок вообще-то на форуме не приветсвуется
я не для взлома, я для загородного дома, хочу с телефона открывать ворота, гараж и включать свет в гараже и на улице.
реле с этой кнопкой работает
тогда значит код неверный
Я пробовал этим кодом читать брелок для шлагбаума - код читается (вроде), но при повторной посылке шлагбаум не срабатывет.
Посольку у меня нет проблем с тем, как правильно отправлять код - тогда остается только считать что код считывается неверно.
тогда значит код неверный
По отдельности то все работает(((
По отдельности то все работает(((
удается открыть реальный шлагбаум, послав код с ардуино?
удается открыть реальный шлагбаум, послав код с ардуино?
Да, и ворота и гараж
выкладывайте код, где вы пытались отправлять код с кнопки - в первом сообщении этого нет
выкладывайте код, где вы пытались отправлять код с кнопки - в первом сообщении этого нет
дело не в том что при нажатии кнопки ни чего не происходит, а сама Arduino IDE ругалась на скечь, не компелировался.
А вот сейчас, стоп стоп стоп вроде скомпелировался, сейчас подключу приемнк и посмотрю приходит код или нет.
Позже отпишусь...
Все работает! Всем спасибо извините за беспокойство.
Есть еще один маленький вопросик: передатчик ОЧЕНЬ сильно греется даже когда ни чего не передает, дотронуться прям нельзя, это норм?
Есть еще один маленький вопросик: передатчик ОЧЕНЬ сильно греется даже когда ни чего не передает, дотронуться прям нельзя, это норм?
КОНЕЧНО НЕТ
КОНЕЧНО НЕТ
А в чем может быть причина? в самом модуле?