Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Adafruit_GFX.h>
- #include <Adafruit_PCD8544.h>
- #include <RH_NRF24.h>
- #include <Wire.h>
- #include <SPI.h>
- Adafruit_PCD8544 display = Adafruit_PCD8544(7, 4, 5, 6, 3);
- RH_NRF24 nrf24;
- String aa = "";
- String bb = "";
- String dd = "";
- void setup() {
- Serial.begin(9600);
- display.begin();
- display.clearDisplay();
- //display.display();
- display.setContrast(60); // установка контраста
- delay(1000);
- display.setTextSize(1); // установка размера шрифта
- display.setTextColor(BLACK); // установка цвета текста
- display.setCursor(26, 0);
- display.println("NASA");
- display.display();
- display.println(" SpaceApp");
- display.display();
- display.println(" Challenger");
- display.display();
- delay(3000);
- if (!nrf24.init())
- Serial.println("init failed");
- //Defaults after init are 2.402 GHz (channel 2), 2Mbps, 0dBm
- if (!nrf24.setChannel(1))
- Serial.println("setChannel failed");
- if (!nrf24.setRF(RH_NRF24::DataRate2Mbps, RH_NRF24::TransmitPower0dBm))
- Serial.println("setRF failed");
- }
- String cc = "";
- String getValue(String data, char separator, int index)
- {
- int found = 0;
- int strIndex[] = {0, -1};
- int maxIndex = data.length() - 1;
- for (int i = 0; i <= maxIndex && found <= index; i++) {
- if (data.charAt(i) == separator || i == maxIndex) {
- found++;
- strIndex[0] = strIndex[1] + 1;
- strIndex[1] = (i == maxIndex) ? i + 1 : i;
- }
- }
- return found > index ? data.substring(strIndex[0], strIndex[1]) : "";
- }
- uint8_t data[4];
- uint8_t sen[12];
- void loop() {
- for (int z = 0; z < 13; z++)
- {
- sen[z] = 0;
- }
- // Send a comand for motion
- int A00 = analogRead(A0);
- int A11 = analogRead(A1);
- int A22 = analogRead(A2);
- //A0
- String ss = String(A00);
- data[1] = 0;
- data[2] = 0;
- data[3] = 0;
- data[4] = 0;
- switch (ss.length())
- { case 1: data[4] = ss.charAt(0) - '0'; break;
- case 2: data[3] = ss.charAt(0) - '0'; data[4] = ss.charAt(1) - '0'; break;
- case 3: data[2] = ss.charAt(0) - '0'; data[3] = ss.charAt(1) - '0'; data[4] = ss.charAt(2) - '0'; break;
- case 4: data[1] = ss.charAt(0) - '0'; data[2] = ss.charAt(1) - '0'; data[3] = ss.charAt(2) - '0'; data[4] = ss.charAt(3) - '0'; break;
- }
- sen[0] = data[1];
- sen[1] = data[2];
- sen[2] = data[3];
- sen[3] = data[4];
- //A1
- ss = String(A11);
- data[1] = 0;
- data[2] = 0;
- data[3] = 0;
- data[4] = 0;
- switch (ss.length())
- { case 1: data[4] = ss.charAt(0) - '0'; break;
- case 2: data[3] = ss.charAt(0) - '0'; data[4] = ss.charAt(1) - '0'; break;
- case 3: data[2] = ss.charAt(0) - '0'; data[3] = ss.charAt(1) - '0'; data[4] = ss.charAt(2) - '0'; break;
- case 4: data[1] = ss.charAt(0) - '0'; data[2] = ss.charAt(1) - '0'; data[3] = ss.charAt(2) - '0'; data[4] = ss.charAt(3) - '0'; break;
- }
- sen[4] = data[1];
- sen[5] = data[2];
- sen[6] = data[3];
- sen[7] = data[4];
- //A2
- ss = String(A22);
- data[1] = 0;
- data[2] = 0;
- data[3] = 0;
- data[4] = 0;
- switch (ss.length())
- { case 1: data[4] = ss.charAt(0) - '0'; break;
- case 2: data[3] = ss.charAt(0) - '0'; data[4] = ss.charAt(1) - '0'; break;
- case 3: data[2] = ss.charAt(0) - '0'; data[3] = ss.charAt(1) - '0'; data[4] = ss.charAt(2) - '0'; break;
- case 4: data[1] = ss.charAt(0) - '0'; data[2] = ss.charAt(1) - '0'; data[3] = ss.charAt(2) - '0'; data[4] = ss.charAt(3) - '0'; break;
- }
- sen[8] = data[1];
- sen[9] = data[2];
- sen[10] = data[3];
- sen[11] = data[4];
- //--
- for (int k = 0; k < 12; k++)
- {
- Serial.print(sen[k]);
- }
- Serial.println(' ');
- //uint8_t data[] = ;
- nrf24.send(sen, sizeof(sen));
- nrf24.waitPacketSent();
- uint8_t buf[RH_NRF24_MAX_MESSAGE_LEN];
- uint8_t len = sizeof(buf);
- Serial.println("Sent...");
- //delay(50);
- if (nrf24.waitAvailableTimeout(50))
- {
- // Should be a reply message for us now
- if (nrf24.recv(buf, &len))
- {
- Serial.print("got reply: ");
- // Serial.println((char*)buf);
- dd = "";
- aa = "";
- bb = "";
- for (int k = 0; k < 4; k++)
- {
- aa = aa + buf[k];
- bb = bb + buf[k + 4];
- dd = dd + buf[k + 8];
- }
- Serial.print(aa.toInt());
- Serial.print(' ');
- Serial.print(bb.toInt());
- Serial.print(' ');
- Serial.println(dd.toInt());
- }
- else
- {
- Serial.println("recv failed");
- }
- }
- else
- {
- Serial.println("No reply, is nrf24_server running?");
- }
- delay(10);
- display.clearDisplay();
- // display.display();
- // display.setContrast(60); // установка контраста
- //
- // display.setTextSize(1); // установка размера шрифта
- // display.setTextColor(BLACK); // установка цвета текста
- display.setCursor(0, 0);
- display.print("H:");
- display.display();
- int randhumid = random(20, 30);
- display.print(randhumid);
- display.display();
- display.print("% ");
- display.display();
- display.print(" T:");
- display.display();
- int randtemp = random(15, 20);
- display.print(randtemp);
- display.display();
- display.println("C");
- display.display();
- display.print("GndHumid:");
- display.display();
- int randgrhum = random(15, 20);
- display.println(randgrhum);
- display.display();
- display.print("R:");
- display.display();
- int randred = random(30, 254);
- display.println(randred);
- display.display();
- display.print("G:");
- display.display();
- int randgreen = random(30, 254);
- display.println(randgreen);
- display.display();
- display.print("B:");
- display.display();
- int randblue = random(30, 254);
- display.println(randblue);
- display.display();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement