MakerGram Logo

    MakerGram

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Popular
    • Tags
    • Users
    • Groups

    IoT Cloud Service.

    General Discussion
    iot cloud devices things
    4
    9
    1672
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Abhay
      Abhay @swalahamani last edited by

      @swalahamani thank you

      1 Reply Last reply Reply Quote 0
      • Abhay
        Abhay @salmanfaris last edited by

        @salmanfaris thank you

        1 Reply Last reply Reply Quote 0
        • kowshik1729
          kowshik1729 last edited by kowshik1729

          @Abhay
          How can we store data generated from IoT devices to cloud and blockchain.

          As salman bro has told there are many ways to upload data to cloud like gcp, amazon s3 buckets and many more. But, I would suggest you to facilitate us with more details like what is the application that you are using to upload the data whether it's a temperature values from a DHT sensor or kinda stuff.

          Because, there are many simple and as complex ways to upload the data. If you are in the idea of using a laptop or a system with an internet connection at the project area then I would suggest you to go with Adafruit IO cloud services. You don't have to use any external shields or wifi modules to do this. You can use a simple python script running over your laptop that reads the values from the arduino and pushes them to the cloud.

          Adafruit IO is super easy to use for the beginners and flexible due to it's API. If you don't have to use a laptop then grab nodeMCU which has an on-board WiFi module that connects to nearby WiFi networks and uploads the data. The Adafruit IO has pretty good interfaces for Data visualization. Check out their website https://io.adafruit.com/

          Abhay 1 Reply Last reply Reply Quote 2
          • Abhay
            Abhay @kowshik1729 last edited by

            @kowshik1729 we are trying to store readings from vehicles like to blockchain. For the purpose of securly recording the data which can be further used for forensics. But before implementing it with blockchain we are trying to learn how to store these data to cloud. As a first step we are thinking to use arduino or rasberry pi to learn things. Later moving to NODEMCU.

            1 Reply Last reply Reply Quote 0
            • kowshik1729
              kowshik1729 last edited by

              @Abhay I would like to specify some things. As you told you are in prototyping stage and your project obviously involves sensors, my suggestion is to go with any MCU's like arduino or Nodemcu kinda stuff.

              Because raspberry pi can be used only when you need a replica of functionality that a computer gives. So, I suggest you to take up MCU's like nodeMCU, ESP32 and if I'm correct there is a variation of Arduino with an inbuilt esp8266 wifi chip over it. I'm sure there is one like that. Incase of any change in the functionality of the project you can go on with your own method. This is just a suggestion.

              Happy making...!!

              Abhay 1 Reply Last reply Reply Quote 2
              • Abhay
                Abhay @kowshik1729 last edited by

                @kowshik1729 thank you, for the suggestion. Its informative. ๐Ÿ‘๐Ÿผ

                1 Reply Last reply Reply Quote 1
                • First post
                  Last post

                Recent Posts

                • R

                  I am trying to set up a janus webrtc to stream an RTSP to an HTML page.
                  I have followed the getting-started steps by Janus-gateway official github repo.

                  Since I am new to web development. I do not understand how to host the Webrtc server. can anyone guide me to set up an HTML page that can display a video stream from an RTSP server using janus webrtc?

                  • read more
                • @zainmuhammed Can try capturing the GPS when the device is starting the loop instead after joining the LoRaWAN and see?

                  You can put the GPS value on top of the loop or setup function.

                  Also, what kind of gateway are you using? Is it configured okay, OTA is done?

                  • read more
                • @salmanfaris Today I tried after connecting a 18650 cell,
                  WhatsApp Image 2024-04-12 at 10.40.06_c7d1947e.jpg WhatsApp Image 2024-04-12 at 10.40.05_897b8bb6.jpg
                  Data getting in console after integration of both lora and gps.
                  3f45cfe7-0061-4328-8c55-ef0a73385203-image.png
                  here you can see that GPS value is 0,0. also in my previous post you can see that GPS value is not reading.
                  Also the status LED is active after it is connected to the satellite.

                  • read more
                • Hi @zainmuhammed ,

                  Can you share the GPS and LoRa output when itโ€™s working?

                  Also can try capturing the GPS when the device is starting the loop instead after joining the LoRaWAN and see?

                  Also make sure the device provides have enough to modules. The GPS need more power when you cold start.

                  • read more
                • @zainmuhammed
                  this is the code

                  #include <Arduino.h> #include <U8x8lib.h> #include <TinyGPS++.h> #include <SoftwareSerial.h> static const int RXPin = 1, TXPin = 2; static const uint32_t GPSBaud = 9600; // The TinyGPS++ object TinyGPSPlus gps; // The serial connection to the GPS device SoftwareSerial ss(RXPin, TXPin); U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(/*reset=*/U8X8_PIN_NONE); // U8X8_SSD1306_128X64_NONAME_SW_I2C u8x8(/*clock=*/ SCL, /*data=*/ SDA, /*reset=*/ U8X8_PIN_NONE); // OLEDs without Reset of the Display static char recv_buf[512]; static bool is_exist = false; static bool is_join = false; static int led = 0; static int at_send_check_response(char *p_ack, int timeout_ms, char *p_cmd, ...) { int ch; int num = 0; int index = 0; int startMillis = 0; va_list args; char cmd_buffer[256]; // Adjust the buffer size as needed memset(recv_buf, 0, sizeof(recv_buf)); va_start(args, p_cmd); vsprintf(cmd_buffer, p_cmd, args); // Format the command string Serial1.print(cmd_buffer); Serial.print(cmd_buffer); va_end(args); delay(200); startMillis = millis(); if (p_ack == NULL) { return 0; } do { while (Serial1.available() > 0) { ch = Serial1.read(); recv_buf[index++] = ch; Serial.print((char)ch); delay(2); } if (strstr(recv_buf, p_ack) != NULL) { return 1; } } while (millis() - startMillis < timeout_ms); return 0; } static void recv_prase(char *p_msg) { if (p_msg == NULL) { return; } char *p_start = NULL; int data = 0; int rssi = 0; int snr = 0; p_start = strstr(p_msg, "RX"); if (p_start && (1 == sscanf(p_start, "RX: \"%d\"\r\n", &data))) { Serial.println(data); u8x8.setCursor(2, 4); u8x8.print("led :"); led = !!data; u8x8.print(led); if (led) { digitalWrite(LED_BUILTIN, LOW); } else { digitalWrite(LED_BUILTIN, HIGH); } } p_start = strstr(p_msg, "RSSI"); if (p_start && (1 == sscanf(p_start, "RSSI %d,", &rssi))) { u8x8.setCursor(0, 6); u8x8.print(" "); u8x8.setCursor(2, 6); u8x8.print("rssi:"); u8x8.print(rssi); } p_start = strstr(p_msg, "SNR"); if (p_start && (1 == sscanf(p_start, "SNR %d", &snr))) { u8x8.setCursor(0, 7); u8x8.print(" "); u8x8.setCursor(2, 7); u8x8.print("snr :"); u8x8.print(snr); } } void setup(void) { u8x8.begin(); u8x8.setFlipMode(1); u8x8.setFont(u8x8_font_chroma48medium8_r); ss.begin(GPSBaud); Serial.begin(GPSBaud); pinMode(LED_BUILTIN, OUTPUT); digitalWrite(LED_BUILTIN, HIGH); Serial1.begin(9600); Serial.print("E5 LORAWAN TEST\r\n"); u8x8.setCursor(0, 0); if (at_send_check_response("+AT: OK", 100, "AT\r\n")) { is_exist = true; at_send_check_response("+ID: DevEui", 1000, "AT+ID=DevEui,\"xxxxx\"\r\n"); // replace 'xxxxxxxxxxxxx' with your DevEui at_send_check_response("+ID: AppEui", 1000, "AT+ID=AppEui,\"xxxxxxx\"\r\n"); // replace 'xxxxxxxxxxxxx' with your AppEui at_send_check_response("+KEY: APPKEY", 1000, "AT+KEY=APPKEY,\"xxxxxxxxx\"\r\n"); // replace 'xxxxxxxxxxxxx' with your AppKey at_send_check_response("+ID: DevAddr", 1000, "AT+ID=DevAddr\r\n"); at_send_check_response("+ID: AppEui", 1000, "AT+ID\r\n"); at_send_check_response("+MODE: LWOTAA", 1000, "AT+MODE=LWOTAA\r\n"); at_send_check_response("+DR: IN865", 1000, "AT+DR=IN865\r\n"); // Change FREQ as per your location at_send_check_response("+CH: NUM", 1000, "AT+CH=NUM,0-2\r\n"); at_send_check_response("+CLASS: C", 1000, "AT+CLASS=A\r\n"); at_send_check_response("+PORT: 8", 1000, "AT+PORT=8\r\n"); delay(200); u8x8.setCursor(5, 0); u8x8.print("LoRaWAN"); is_join = true; } else { is_exist = false; Serial.print("No E5 module found.\r\n"); u8x8.setCursor(0, 1); u8x8.print("unfound E5 !"); } u8x8.setCursor(2, 4); u8x8.print("led :"); u8x8.print(led); } void loop(void) { if (is_exist) { int ret = 0; if (is_join) { ret = at_send_check_response("+JOIN: Network joined", 12000, "AT+JOIN\r\n"); if (ret) { is_join = false; } else { at_send_check_response("+ID: AppEui", 1000, "AT+ID\r\n"); Serial.print("JOIN failed!\r\n\r\n"); delay(5000); } } else { gps.encode(ss.read()); float a=gps.location.lat(); float b=gps.location.lng(); Serial.println(a); Serial.println(b); char cmd[128]; sprintf(cmd, "AT+CMSGHEX=\"%04X%04X\"\r\n", (float)a,(float)b); ret = at_send_check_response("Done", 5000, cmd); if (ret) { recv_prase(recv_buf); } else { Serial.print("Send failed!\r\n\r\n"); } delay(5000); } } else { delay(1000); } }

                  9135d5d3-6277-4c60-81df-a2acac65c93d-image.png

                  • read more
                By MakerGram | A XiStart Initiative | Built with ♥ NodeBB
                Copyright © 2023 MakerGram, All rights reserved.
                Privacy Policy | Terms & Conditions | Disclaimer | Code of Conduct