I have a problem with my connectivity between my sensor and MIT

I trying to trigger a sound alarm on the MIT app inventer every time the FSR value goes above 200.

But its not working for some reason and i am very new to using MIT so i am not sure whats wrong, hoping you can help me

Try this standard BlueTooth Delimiter advice.

Please see the Delimiter article in FAQ

Be sure to use println() at the end of each message to send from the sending device, to signal end of message. Do not rely on timing for this, which is unreliable. * you already do this

In the AI2 Designer, set the Delimiter attribute of the BlueTooth Client component to 10 to recognize the End of Line character.
Also, return data is not immediately available after sending a request,
you have to start a Clock Timer repeating and watch for its arrival in the Clock Timer event. The repeat rate of the Clock Timer should be faster than the transmission rate in the sending device, to not flood the AI2 buffers.

In your Clock Timer, you should check

  Is the BlueTooth Client still Connected?
  Is Bytes Available > 0?
     IF Bytes Available > 0 THEN
       set message var  to BT.ReceiveText(-1) 

This takes advantage of a special case in the ReceiveText block:

Receive text from the connected Bluetooth device. If numberOfBytes is less than 0, read until a delimiter byte value is received.

If you are sending multiple data values per message separated by | or comma, have your message split into a local or global variable for inspection before trying to select list items from it. Test if (length of list(split list result) >= expected list length) before doing any select list item operations, to avoid taking a long walk on a short pier. This bulletproofing is necessary in case your sending device sneaks in some commentary messages with the data values.

is this how the [set message var to BT.ReceiveText(-1) ] is done? instead of the global variable i will have my Label1? how can i make sure that the repeat rate is faster? thank you


Don't forget to also set that BlueTooth Delimiter to 10, or this won't work.

You can copy the global variable contents into Label1.Text in addition to working with the variable further down. It's good to leave footprints for debugging.

Since your transmitting delay is 400 ms, an AI2 Clock1 Milliseconds of 200 should be faster while still doable. You can set that in the Clock1 Designer Attributes or in a block.

You're welcome!


I did what u asked but it still doesnt work, am i missing something here ? Because from my code on Arduino whenever i get "d" it should detect this in the App and play the sound

I keep all threads public, because I am away from the board and lots of other people can answer these questions.

Export your .aia file and upload it here.

aa.aia (123.3 KB)

I am reading the data constantly to check if the FSR >200

AI2 math blocks hate blanks.


i tried this too but no luck and that part doesnt seem to work :confused:

Show all incoming data in a Label:

set LabelIncoming.Text to JOIN(LabelIncoming.Text, \n, data, \n)

How do I know that there's ANY data at all going into your app through BlueTooth?