Main Content

Results for

Cody is a useful tool to practice MATLAB skills not only by solving the problems but also learn from each other’s solutions. Sometimes you see subpar solutions that are cheats and hacks. With the flagging feature we released recently, you can help us identify solutions that administrators, including Community Advisory Board members, can review and delete.

How to flag?

Flag Options - Only available on solutions

Skiing
35%
Skating (including hockey)
21%
Sledding (luge, bobsled, etc.)
10%
Curling
19%
Biathlon (skiing + shooting)
15%
640 votes
MATLAB (Way to go!!! You rock!)
49%
Python (not from within MATLAB)
29%
Any variation of C
12%
Java, Javascript
4%
R, Ruby, Swift, Go, Scala, PHP, VB
2%
Other not mentioned, or mixture
4%
10577 votes

In many universities, introductory programming is taught as a foundation course. Students from different departments are usually brought together to learn to program in these foundation courses. Their home departments may have a programming language preference and that preference may change from department to department. Some universities either strictly teach one language in a single course, some of them teach multiple languages in the same course and give students the flexibility to choose their language for the assignments and projects. How can we make students multilingual when it comes to programming? Is there a way to teach multiple languages in a fair light, side by side without creating a new course or sacrificing one language to teach the other one? Dr. Nathan Kutz from the University of Washington found a creative way to teach MATLAB and Python side by side in his AMATH 301 course. This course is an introductory programming course at the University of Washington and almost all engineering students take it. Do you wonder how Dr. Kutz taught this course? Check out these recordings and course resources! They can be utilized in an in-person or a distance learning setting:

I'm monitoring a temp and humidity sensor outside of my house using a ESP32. I have it update every 15 minutes. On my channel I have a chart and numeric readout. The readout shows me that it is updating every 15 minutes but the chart's last update was 2 hours ago. This was working until I went into the properties of the chart and changed the time base from daily to 12 hours. I have tried refreshing the page, signing out and back in as well as reboot the computer, still 2 hours behind. Is there something else I have to do to reestablish the chart?

Thanks John

If you are a student or researcher looking for a project idea, have a look at the MathWorks Excellence in Innovation site. There is at least one IoT-based project for a Smart watering system, and a project with a Digital twin of a pneumatic system. If you ask me, most of the other projects could also be enhanced with an IoT based component shared on ThingSpeak!

#include <Keypad.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <SoftwareSerial.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
SoftwareSerial ESP01(2, 3);
const byte ROWS = 4; // four rows
const byte COLS = 3; // three columns
char keys[ROWS][COLS] = { // keypad labels
  {'1', '2', '3'},
  {'4', '5', '6'},
  {'7', '8', '9'},
  {'*', '0', '#'}
};
byte rowPins[ROWS] = {12, 7, 8, 10};          //connect to keypad pins 12, 7, 8, 10
byte colPins[COLS] = {11, 13, 9};             // connect to keypad pins 11, 13, 9 column pinouts
Keypad customKeypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
#define Password_Length 5
#define DEBUG true
#define IP "184.106.153.149"
// define pin numbers
int buzzer = 5; // buzzer is connected to pin 5
int PIR = 6;    // PIR is connected to pin 6
// intruder alarm password
char Data[Password_Length];
char Master[Password_Length] = "1234";
byte data_count = 0, master_count = 0;
bool Pass_is_good;
char customKey;
int val = 0;
// thingspeak & WiFi
String apiKey = "xxxxxxxxxxxxxxxx"; // thingspeak API key
void setup() {
lcd.init(); 
lcd.backlight();
pinMode(buzzer, OUTPUT);
pinMode(PIR, INPUT);
Serial.begin(9600); 
while (!Serial){
}
Serial.println("Starting...");
ESP01.begin(9600);
// Reset ESP8266, put it into mode 1 i.e. STA only, make it join hotspot / AP, 
// establish single connection
ESP01.println();
sendData("AT+RST\r\n",2000,DEBUG);
sendData("AT+CWMODE=1\r\n",2000,DEBUG);
sendData("AT+CWJAP=\"AiPhone\",\"123889\"\r\n",20000,DEBUG);  
sendData("AT+CIPMUX=0\r\n",4000,DEBUG);
// Make TCP connection
String cmd = "AT+CIPSTART=\"TCP\",\"";
cmd += "184.106.153.149"; // Thingspeak.com's IP address  
cmd += "\",80\r\n";
sendData(cmd,4000,DEBUG);  
// Read PIR sensor value 
  val = digitalRead(PIR);
  // check if there was a state transition
    String val1 = String(val);
    if (val == HIGH)
    {
      Serial.println("Motion detected!");
      delay(10);
      Serial.println(val1);
    }
    else
    {
      Serial.println("Asleep");
      delay(10);
      //String val1 = String(val);
      Serial.println(val1);
    }
      //String val1 = String(val);
      //Serial.println(val1);
//Prepare GET string
String getStr = "GET /update?api_key=";
getStr += apiKey;
getStr += "&field1=";
getStr += val1;
getStr +="\r\n";
// Send data length & GET string
ESP01.print("AT+CIPSEND=");
ESP01.println (getStr.length());
Serial.print("AT+CIPSEND=");
Serial.println(getStr.length());
delay(500);
if(ESP01.find (">"))
{
  Serial.print(">");
  sendData(getStr, 2000, DEBUG);
}
//Close connection, wait a while before repeating
sendData("AT+CIPCLOSE", 16000, DEBUG); // 15 seconds delay between updates
}
if true
  % code
endvoid loop() {
if (digitalRead(PIR) == HIGH)
{
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("Enter Password: ");
    customKey = customKeypad.getKey();
    if (customKey)
    {
      Data[data_count] = customKey;
      lcd.setCursor(data_count, 1);
      lcd.print(Data[data_count]);
      data_count++;
    }
    if (data_count == Password_Length - 1)
    {
      lcd.clear();
      if (!strcmp(Data, Master))
      {
        lcd.print("OK");
        digitalWrite(buzzer, HIGH);
        delay(200);
        digitalWrite(buzzer, LOW);
        delay(200);
        digitalWrite(buzzer, HIGH);
        delay(200);
        digitalWrite(buzzer, LOW);
      }
      else
      {
        lcd.print("Wrong Password");
        digitalWrite(buzzer, HIGH);
        delay(1000);
        digitalWrite(buzzer, LOW);
      }
      lcd.clear();
      clearData();
    }
  }
  else
    {
      lcd.noBacklight();      // turn backlight off
      lcd.clear();            // clear display
      delay(250);
    }
}
String sendData(String command, const int timeout, boolean debug)
{
  String response = "";
  ESP01.print(command);
  long int time = millis();
    while( (time+timeout) > millis())
    {
      while(ESP01.available())
      {
        // "Construct" response from ESP01 as follows 
         // - this is to be displayed on Serial Monitor. 
        char c = ESP01.read(); // read the next character.
        response+=c;
      }  
    }
    if(debug)
    {
      Serial.print(response);
    }
    return (response);
}
void clearData() {
  while (data_count != 0)
{
  Data[data_count--] = 0;
  }
  return;
}
Ambient | Atmospheric | Nature
9%
Classical | Jazz | Musicals
10%
Electronic | Dubstep | House | VGM
15%
Lo-fi | Chill | Coffee House
22%
Rock | Metal | Pop | Punk | Hip Hop
27%
Other | Podcasts | Nothing
17%
753 votes
I only use it for homework problems
22%
1
5%
2-10
24%
10-100
28%
More than 100
12%
None yet (just started learning)
9%
6646 votes

I built a safe entry mechanism and i would like the matlab to send an email alert when arduino is not communicating or sending any data to thingspeak. How do i write the program to detect system down and to send email alert?

1 (just me)
8%
2-10
9%
11-100
8%
More than 100 (e.g. University)
65%
I can't even guess.
9%
8483 votes

Hi, I want to send an alert to multiple email ids when a channel event occurs(for example:sensor temperature exceeds a threshold value).How can I do it?Help is highly appreciated. Thanks in Advance!

1 monitor/screen
42%
2
46%
3
9%
4 or more
3%
12173 votes

EL TERMÓMETRO QUEDO CLAVADO EN -127°, LO RESETEE PERO AUN NO FUNCIONA, POSRA SER LA ZONDA Y SI FUESE ASÍ COMO ADQUIRIRLA-

Are you looking for ways to keep your students engaged in a virtual setting? Would you like to spice up your courses with hands-on projects? Using Arduino Engineering Kit, you can achieve these. Due to COVID-19, many instructors started to look for creative ways of giving students a lab experience. Some of them chose to create virtual labs, some of them designed hardware projects with low-cost hardware or integrated hardware projects kits to their curriculum. If you are interested in how Dr. Azadi from San Francisco State University used Arduino Engineering Kit during the pandemic to teach his Mechatronics course, check out these articles:

Windows
74%
Apple, Mac, iPad
13%
Android (MATLAB Online)
4%
iPhone (MATLAB Online)
1%
Unix, Linux, Ubuntu, etc.
6%
11570 votes

Hello, in the free usage of ThingSpeak, minimum data rate is 15 s. I have received a message that I will run messages in a month, and I would like to reduce the data rate, but I cannot find information of neither which is the current data rate that it's established in my channels, nor how might I modify it. I would like to reduce the rate at which I send data, as I actually do not need this rate to be high, but I cannot figure out how to do it. I am afraid I know little of how to "program" thingspeak, for creating my channels I followed the tutorials on "getting started with Thingspeak", and it worked quite well, but I have no idea which is the data rate that is being used or how to modify it. I will be really greatful if somebody may help me to learn how to do this.

Just getting started with Thingspeak, I'm reading temperature, humidity and pressure from a BME280 connected to a ESP32. I have both a chart and numeric display on my channels, works great.

Can I resize the visualizations to get more on the monitor at a time? Or can I add a numeric readout that will show the last value added to the chart? Both the chart and readout use the same field info. I do see that if I hover my mouse over a point on the chart I get the value but wanted to be displayed.

Thanks for any help John

Hi, this is my first question here... hope not to bother you all. Is it possible to stop a sensor from collecting data by using ThingSpeak/MQTT broker/MQTT protocol? How? I'm working with a MAX30102 for oxigen and bpm detection and I need to stop the sensor from ThingSpeak or at least this is what I was asked to do. At the moment I can't figure out how to do this except by using the APIkey and the HTTP protocol but my task was to only use MQTT protocol. Hope someone can help me finding a new point of view about this topic/problem.

EDIT: I solved the problem. I used another client, MQTTx to be precise, in order to send messages in a field of control. So, at the beginning I had just two fields (BPM and SpO2), then I added a third field of control. The board WeMos, connected to the sensor MH-ET LIVE MAX30102 was used to process the sensor's data and send them to Thingspeak every 15 seconds wherease the client desktop MQTTx was also connected to ThingSpeak's broker and enbled for both publish and subscribe and I used it to send messages of ON and OFF, literally, as payload for the control field. This messages were passed to the callBack function and the payload was checked in order to change the state of my code, nested in a switch system. Thamk's for the help to you all :) If you're interested to the code and the settings just let me know.

I need to model a brushless motor for which I only have the data of voltage, power, speed, nominal torque, starting torque, max current and total weight, which moves a bicycle. I have studied the Permanent Magnet Synchronous Machine power_pmmotor Simulink example, but I do not have all the required data. My question is whether it is possible to make an approximate model with my few data. I guess some data could be assumed, but I don't know what typical values ​​would be correct. I would greatly appreciate any suggestion. My best regards.