Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <SoftEasyTransfer.h> // toto je tá pojebaná knižnica
- #include <SoftwareSerial.h>
- SoftwareSerial mySerial(2, 4); //Arduino RX - RS485 RO, Arduino TX - RS485 DI (zapojenie)
- #define TXenableRS485 3 //RE + DE (zapojenie)
- // struktura na odosielanie dát
- struct PayloadTX {
- byte nodeID, address, command, func;
- int data1, data2, data3, data4, data5, data6, data7, data8;
- long data9, data10, data11, data12;
- };
- PayloadTX emontx; // vytvoreni instance
- SoftEasyTransfer ET;
- void setup()
- {
- pinMode(TXenableRS485, OUTPUT);
- digitalWrite(TXenableRS485, LOW); // nastavenie pinov na ovladanie RS485 nič podstatné
- mySerial.begin(9600);
- ET.begin(details(emontx), &mySerial); // nastavenie EasyTransfer
- }
- void loop()
- {
- if (ET.receiveData())
- {
- // kontrola požiadania o data z emonHUBu
- if (emontx.nodeID == 15 && emontx.address == 12 && emontx.command == 5)
- {
- // naplneni struktury
- emontx.data1 = napeti;
- emontx.data2 = proud;
- emontx.data3 = vykon;
- emontx.data9 = vyroba; //vyroba ve Wh
- emontx.nodeID = nodeID; // ID solar inventoru
- emontx.command = 6; // odpoved na pozadavek
- emontx.address = 15; // data pro emonHUB
- delay(15);
- // štruktúra je naplnená hodnotami a teraz sa odošle
- digitalWrite(TXenableRS485, HIGH);//prepni prevodnik RS485 na vysilani
- ET.sendData(); // odesli data na emonHUB
- digitalWrite(TXenableRS485, LOW);
- delay(20);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement