Sida 1 av 1

Arduino MKR NB 1500

Postat: 11 februari 2024, 15:44:01
av Elektriker
Hej
Jag håller på med ett projekt där jag vill mäta temperatur var 20e sekund och skicka datan till MYSQL databas.

Jag har köpt ett Arduino MKR NB1500 kort och en Adafruit TMP117 sensor.

Jag får allt att funka om jag ansluter det till Arduino IOT cloud, men jag vill att temperaturen skall skickas till databasen istället.

Detta är ganska ny mark för mig dels med Arduino men även programmering i stort.

Jag har försökt med GET reguest till PHP men jag får det inte att funka, jag har provat med ett ESP32 Things Plus C kort och då funkar det hur bra som helst.

Är det någon som skulle kunna hjälpa mig med något exempel för MKR NB1500 eller kan man på något sätt hämta data från IOT cloud och läsa in det i databasen?

Tack på förhand!

Re: Arduino MKR NB 1500

Postat: 12 februari 2024, 02:31:55
av Mindmapper
Det bästa är om du postar koden.

Re: Arduino MKR NB 1500

Postat: 12 februari 2024, 10:00:00
av Elektriker
Här är koden som jag provat med:

#include <MKRNB.h>
#include <ArduinoHttpClient.h>
#include <Wire.h>
#include <Adafruit_TMP117.h>

#define APN "online.telia.se" // Access Point Name provided by your cellular network provider
#define SERVER_ADDRESS "example.se"
#define SERVER_PORT 443
#define RESOURCE_PATH "https://example.se/Data/Temperature.php"

// Initialize the TMP117 sensor
Adafruit_TMP117 tmp117;

// Set up the NB client
NB nbAccess;
NBSSLClient client;

// Function to send temperature data to the server
void sendTemperature(float temp) {
HttpClient http(client, SERVER_ADDRESS, SERVER_PORT);

// Construct the GET request URL with the temperature value
String url = RESOURCE_PATH;
url += "?temperature=";
url += String(temp);

// Print the complete URL
Serial.print("Sending data to: ");
Serial.println(url);

// Send the GET request
http.get(url);
int statusCode = http.responseStatusCode();

// Check for a successful request
if (statusCode == 200) {
Serial.println("HTTP request successful");
} else {
Serial.print("HTTP request failed with status code ");
Serial.println(statusCode);
}
}

void setup() {
Serial.begin(115200);
while (!Serial) {
; // Wait for serial port to connect
}

// Start NB connection
Serial.println("Starting NB connection...");
nbAccess.begin(APN);
while (!nbAccess.ready()) {
Serial.println("Failed to start NB connection! Trying again...");
delay(5000);
}
Serial.println("NB connection established!");

// Initialize TMP117 sensor
if (!tmp117.begin()) {
Serial.println("TMP117 sensor not detected. Please check wiring.");
while (1);
}
}

void loop() {
// Read temperature
sensors_event_t temp;
tmp117.getEvent(&temp);
float temperature = temp.temperature;

// Send temperature to server
sendTemperature(temperature);

// Wait for 20 seconds
delay(20000);
}

Re: Arduino MKR NB 1500

Postat: 13 februari 2024, 07:48:41
av petertub
Jag hade ju använt UDP.
En enkel server instans på servern som tar emot en mätning och en enkel client instans som sänder en mätning.