Связать датчик усилия (тензодатчик) с андройд средой

Всем доброго!
задача следующая:

Тензодатчик подключить к микроконтроллеру(на ваш выбор)
и через интерфейс BlueTooth организовать передачу данных в простую программу на Андройде (или Win)

добрейшего!

сколько денег за проект ?

где ссылка на тензодатчик ? (мне бы убедиться что он от 5 вольт питается… )

надеюсь вы слышали что негласная цена на apk приложение всегда была 50к ?
простое столько же стоить должно… а подбор библиотек для работы с датчиком, или их написание можно наверное бесплатно сделать…

так же могу порекомендовать сделать на esp32 и с помощью wifi, управление через телефон будет,(или пк, подключитесь по wifi) и через любой браузер, перейдете по адресу 192.168.4.1 и будите там наблюдать… и это будет дешевле….

MoDyz - приложение для Android, которое позволит вам выводить по Bluetooth -каналу информацию, получаемую с тензодатчика. Сделайте поиск по “MoDyz" и найдете мой старый топик, где представлены некоторые возможности приложения, в том числе и необходимые для вашей задачи.

Пишете для начала на почту wizard@yandex.ru. свяжем. Если нужно будет перейдем из почты на более быструю и удобную связь.

Я бы мог взяться. Например сделать как веб страничка, чтобы данные в браузере получать

В конце недели появилось немного свободного времени, которое решил потратить на нижеприведённых скрипт, реализующий процесс передачи данных по маршруту микроконтроллер-Bluetooth-смартфон. В качестве основы взял один из примеров, доступных в библиотеке MD_Scout, и дополнил его строчками описания интерфейса (функция drawHelloWorld и несколько строк в функции interpreteCommand) и вывода текущих значений (функция showCurValues) - времени в секундах с начала работы скетча и количества нажатий на кнопку.

Результат работы - на прилагаемом скриншоте:

Для вашего случая осталось лишь решить задачу считывания показаний с тензодатчика и отправлять их на смартфон. Но тут я пас…

#include <SoftwareSerial.h>
// библиотека, автоматизирующая процесс создания управляющих строковых последовательностей
#include <mdwriter.h>
#include <mdsender_bt.h>

SoftwareSerial mySerial(7, 6); // RX, TX
MD_Sender_BT mdScout;

String cmdBuffer, sResponse;
unsigned long mNextUpdate;
int curValue, nClicks;
char sbuf[11];

void addCmdString(String sCmd) {
  sResponse += sCmd;
  if(sResponse.length()>100) sendString(sResponse);
}

void sendString(String s) {
  for(int i=0;i<s.length();i++) {
    mySerial.write(s.charAt(i));
  }
  mySerial.write('\r'); mySerial.write('\n');
  sResponse = "";
} // of sendString

void showCurValues(int textSize,int textColor/*,String sText*/) {
  curValue = millis()/1000;
  sprintf(sbuf,"%6d",curValue);

  addCmdString(mdScout.setTextSize(textSize));
  addCmdString(mdScout.setTextColors(textColor,C_BLACK));
//  addCmdString(mdScout.outTextC(270,300,sText));
  addCmdString(mdScout.outTextC(270,300,sbuf));
  
//  addCmdString(mdScout.setValue7SegmentDisplay(1, curValue));
  addCmdString(mdScout.setValue7SegmentDisplay(1, nClicks));
}

void drawHelloWorld() {
  addCmdString(mdScout.setTextColors(C_YELLOW, C_BLACK));
  addCmdString(mdScout.setTextSize(40));
  addCmdString(mdScout.outTextC(270,200,"Текстовый вывод"));
  addCmdString(mdScout.outTextC(270,400,"Вывод на индикатор"));
  showCurValues(60,C_YELLOW/*,"=== ==="*/);
  
  addCmdString(mdScout.setLineColors(C_RED, C_BLACK));
  addCmdString(mdScout.define7SegmentDisplay(1, 270-150, 450, 100, 5, 0, 0));
  
  addCmdString(mdScout.setTextSize(40));
  addCmdString(mdScout.defineTouchButton( 170, 600, 370, 680, 101, 102, "Обновить"));
  sendString(sResponse);
}

void readSerialData() {
  char c;
  if (mySerial.available()) {
    c = (char)mySerial.read();
    if (c==0x0A || c==0x0D) interpreteCommand();
    else cmdBuffer=cmdBuffer+c;
  }
} // of readSerialData

void interpreteCommand() {
  if(cmdBuffer.length()==0) return;
  if(cmdBuffer.equalsIgnoreCase("drw"))          drawHelloWorld();//drawScene();
  else if (cmdBuffer.equalsIgnoreCase("101")) {
    nClicks++;
	showCurValues(80,C_CYAN);
  }
  cmdBuffer = "";
} // of interpreteCommand
 
void setup() {
  // put your setup code here, to run once:
  mySerial.begin(9600); // инициализация и настройка скорости програмного последовательного порта
  mNextUpdate = millis() + 1000;
  curValue = 0;
  nClicks = 0;
}

void loop() {
  readSerialData();
  if(millis()>=mNextUpdate) {
//    curValue = millis()/1000;
//	sprintf(sbuf,"%6d",curValue);
	showCurValues(80,C_CYAN/*,sbuf*/);
	mNextUpdate = mNextUpdate + 1000;
  }
}

Upd. Что-то не получается с планшета весь код скинуть - скопировал все строки, а при попытке вставки (кнопка code вверху слева в окне редактора) уставилась только первая строчка. Сейчас попробую с десктопа…

Upd2. И с планшета получилось, именно через самую левую кнопку - переключился в HTML-режим и вставил текст между группами апострофов. А кнопки code так и не нашел на планшете…