GARAM LEE in MATLAB Answers
上次活动时间: 2022-11-10

Good afternoon. I want to send mpu6050 data to thingspeak every second. However, data is only sent once now. How can I keep sending data? (When I searched for it, there is a saying that the data transfer limit of thingspeak is 15 seconds, so is it possible to transfer data one by one in up to 15 seconds?) And currently, the board and laptop are connected by a usb cable for uploading the code, so can I still send data even if I remove the usb cable and connect the external battery after uploading? Hardware : mkr1000, mpu6050 #include <SPI.h> #include <WiFi101.h> #include <Wire.h> #include <I2Cdev.h> #include <WiFiClient.h> #include "MPU6050.h" #include "ThingSpeak.h" // always include thingspeak header file after other header files and custom macros char ssid[] = "abc-2.4G"; // your network SSID (name) char pass[] = "abcdefgh"; // your network password // Initialize the Wifi client library WiFiClient client; unsigned long myChannelNumber = num; const char * myWriteAPIKey = "key tiped"; MPU6050 accel1; int16_t ax1, ay1, az1; int16_t gx1, gy1, gz1; unsigned long lastTime = 0; unsigned long timerDelay = 1000; // sending every second void setup() { Serial.begin(115200); // Initialize serial Wire.begin ( ); accel1.initialize(); delay(10); WiFi.begin(ssid, pass); // Connect to WPA/WPA2 network. ThingSpeak.begin(client); // Initialize ThingSpeak } void loop() { if (millis() - lastTime >= timerDelay) { accel1.getMotion6(&ax1, &ay1, &az1, &gx1, &gy1, &gz1); //acceleration full-scale range between +-2 g (16,384LSB/g) float accX = ((float)ax1) / 16384.0; float accY = ((float)ay1) / 16384.0; float accZ = ((float)az1) / 16384.0; // set the fields with the values ThingSpeak.setField(1, accX); ThingSpeak.setField(2, accY); ThingSpeak.setField(3, accZ); ThingSpeak.setField(4, gx1); ThingSpeak.setField(5, gy1); ThingSpeak.setField(6, gz1); ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey); } lastTime = millis(); // Update the last update time }
Jayanth Tadikonda in MATLAB Answers
上次活动时间: 2020-2-20

#!/usr/bin/python import smbus import math import requests import json power_mgmt_1 = 0x6b power_mgmt_2 = 0x6c def read_byte(reg): return bus.read_byte_data(address, reg) def read_word(reg): h = bus.read_byte_data(address, reg) l = bus.read_byte_data(address, reg+1) value = (h << 8) + l return value def read_word_2c(reg): val = read_word(reg) if (val >= 0x8000): return -((65535 - val) + 1) else: return val def dist(a,b): return math.sqrt((a*a)+(b*b)) def get_y_rotation(x,y,z): radians = math.atan2(x, dist(y,z)) return -math.degrees(radians) def get_x_rotation(x,y,z): radians = math.atan2(y, dist(x,z)) return math.degrees(radians) bus = smbus.SMBus(1) # bus = smbus.SMBus(0) fuer Revision 1 address = 0x68 # via i2cdetect bus.write_byte_data(address, power_mgmt_1, 0) print "Gyrosk op" print "--------" while(True): gyroskop_xout = read_word_2c(0x43) gyroskop_yout = read_word_2c(0x45) gyroskop_zout = read_word_2c(0x47) print "gyroscope_xout: ", ("%5d" % gyroskop_xout), " skaliert: ", (gyroskop_xout / 131) print "gyroscope_yout: ", ("%5d" % gyroskop_yout), " skaliert: ", (gyroskop_yout / 131) print "gyroscope_zout: ", ("%5d" % gyroskop_zout), " skaliert: ", (gyroskop_zout / 131) # How to send the above sensor data to ThingSpeak ? Please Help.

关于 ThingSpeak

The community for students, researchers, and engineers looking to use MATLAB, Simulink, and ThingSpeak for Internet of Things applications. You can find the latest ThingSpeak news, tutorials to jump-start your next IoT project, and a forum to engage in a discussion on your latest cloud-based project. You can see answers to problems other users have solved and share how you solved a problem.