Advertisement
Guest User

Arduion

a guest
Dec 13th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <Wire.h>
  2. #include <SPI.h>
  3. #include <Adafruit_Sensor.h>
  4. #include <Adafruit_BME280.h>
  5. #include <PubSubClient.h>
  6.  
  7. //#include <Dhcp.h>
  8. //#include <Dns.h>
  9. #include <Ethernet.h>
  10. #include <EthernetClient.h>
  11. #include <EthernetServer.h>
  12. #include <EthernetUdp.h>
  13.  
  14. #define BME280_ADRESA (0x76)
  15. #define ETH_CS  10
  16. #define SD_CS  4
  17.  
  18. Adafruit_BME280 bme;
  19. byte mac[] = {0x32, 0x56, 0xAB, 0x10, 0x10, 0x1A};
  20. char macstr[] = "3256AB10101A";
  21. byte ip[] = {10, 0, 0, 177};
  22.  
  23. char servername[] = "quickstart.messaging.internetofthings.ibmcloud.com";
  24. String clientName = String("d:quickstart:arduino:") + macstr;
  25. String topicName = String("iot-2/evt/status/fmt/json");
  26. EthernetClient ethClient;
  27. PubSubClient client(servername, 1883, 0, ethClient);
  28.  
  29. double teplota;
  30. double vlhkost;
  31. double tlak;
  32.  
  33. void setup() {
  34.   pinMode(ETH_CS,OUTPUT);
  35.   pinMode(SD_CS,OUTPUT);
  36.   digitalWrite(ETH_CS,LOW); //select the Ethernet Module
  37.   digitalWrite(SD_CS,HIGH); //de-select the internal SD Card
  38.  
  39.   Serial.begin(9600);
  40.   Serial.println("Načítání");
  41.   if (!bme.begin(BME280_ADRESA)) {
  42.     Serial.println("BME280 senzor nenalezen, zkontrolujte zapojeni!");
  43.     while (1);
  44.   }
  45.   Serial.println("Senzor načten");
  46.  
  47.   Ethernet.begin(mac);
  48.   Serial.println("Čeká se na IP");
  49.   Serial.println(Ethernet.localIP());
  50. }
  51.  
  52. void loop() {
  53.   teplota = bme.readTemperature();
  54.   vlhkost = bme.readHumidity();
  55.   tlak = bme.readPressure();
  56.  
  57.   Serial.print("Teplota: ");
  58.   Serial.print(teplota);
  59.   Serial.println(" stupnu Celsia.");
  60.   Serial.print("Relativni vlhkost: ");
  61.   Serial.print(vlhkost);
  62.   Serial.println(" %");
  63.   Serial.print("Tlak: ");
  64.   Serial.print(tlak / 100.0F);
  65.   Serial.println(" hPa.");
  66.   Serial.println();
  67.  
  68.   char clientStr[34];
  69.   clientName.toCharArray(clientStr,34);
  70.   char topicStr[26];
  71.   topicName.toCharArray(topicStr,26);
  72.  
  73.   if (!client.connected()) {
  74.     Serial.print("Trying to connect to: ");
  75.     Serial.println(clientStr);
  76.     client.connect(clientStr);
  77.   }
  78.  
  79.   if (client.connected() ) {
  80.     String json = buildJson(0.0);
  81.     char jsonStr[200];
  82.     json.toCharArray(jsonStr,200);
  83.     boolean pubresult = client.publish(topicStr,jsonStr);
  84.     Serial.print("Sending ");
  85.     Serial.println(jsonStr);
  86.     Serial.print("to ");
  87.     Serial.println(topicStr);
  88.     if (pubresult)
  89.       Serial.println("SUCCESS\n");
  90.     else
  91.       Serial.println("NOT SUCCESSFULL\n");
  92.   }
  93.   delay(5000);
  94. }
  95.  
  96. String buildJson(double temperature) {
  97.   int uptime = millis()/1000/60.0;
  98.   String data = "{";
  99.   data += "\"d\":{";
  100.   data += "\"name\": \"mega01\",";
  101.   data += "\"temperature\": \"";
  102.   data += (double)temperature;
  103.   data += "\",";
  104.   data += "\"uptime\": \"";
  105.   data += (int)uptime;
  106.   data += "\"}";
  107.   data += "}";
  108.   return data;
  109. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement