Gebruik je Android telefoon als display

Toon hier Uw afgeronde projecten aan anderen.
Berichten: 17
Geregistreerd: 06 Feb 2013, 19:30

Gebruik je Android telefoon als display

Berichtdoor retlawrobbe » 05 Sep 2014, 18:38

Je kan met een Android telefoon je parameters online weer geven in plaats van een LCD, OLED, TFT scherm te gebruiken.
Ten eerste heb je de app FRSKY Dasboard nodig welke je kan vinden op google play.
https://play.google.com/store/apps/details?id=biz.onomato.frskydash&feature.
Vervolgens heb je ook nog een Bleutooth module nodig ( ingesteld op 9600Baud ).

Met deze app is het mogelijk om tot ongeveer 14 parameters ( integers en byte waarden) te laten zien op je telefoon.
je kan een display aanmaken voor verschillende modules ( Models )
Het is ook mogelijk om een tekst naar keuze en de eenheid ( cm , Volt , enz ) in te geven en indien gewenst te laten horen ( text to speech ).
Het voorbeeld programma neemt ongeveer 2.630 bytes in beslag om alle 14 parameters weer te geven.
Bijgevoegde code
Code: Alles selecteren
 /*
 Use Android phoneas display for simple Frsky telemetry Via Bluetooth.
 Developers Website https://play.google.com/store/apps/details?id=biz.onomato.frskydash&feature
 
 */

 #define send_BT_data 1

 #define Debug 1
 
 // Send_Bluetooth ****FRSKY DASHBOARD**************
#define GPS_alt_B_01    0x01   // 0x01    GPS altitude    m      S                     Before"."
#define GPS_alt_A_09    0x09   // 01+8 (0x09)    ""              U                     After"."
#define Temp1_02        0x02   // 0x02    Temperature1   °C      S   1°C / -30~250°C"
#define RPM_03          0x03   // 0x03    RPM           RPM      U     0~60000 | 1 => 60 step=60
#define Fuel_04         0x04   // 0x04    Fuel level      %      U   0,25,50,75,100
#define Temp2_05        0x05   // 0x05    Temperature2    C0     S   1°C / -30~250°C
#define Volt_06         0x06   // 0x06    Volt           1/500V      0.01V / 0~-4,2V
#define Alt_Vario_B_10  0x10   // 0x10    Altitude(vario) m      S   0.01m /-500~9000m Before"."
#define Alt_Vario_A_21  0x21   // 0x21     ""                    U                     After"."
#define GPS_Speed_B_11  0x11   // 0x11    GPS speed      Knots   U                     Before"."
#define GPS_Speed_A_19  0x19   // 0x11+8 (0x19)""                U                     After"."
// doesn't work ------------------
//#define GPS_Long_B_12   0x12 // 0x12    Longitude   ddmm.mmmm                        Before"."
//#define GPS_Long_A_1A   0x1A // 0x12+8 (0x1A)""                                      After"."
// doesn't exist in the APP
//#define GPS_Long_E_W_22 0x22 // 0x1A+8 (0x22)          E/W E=&H45 // W=&H57
//#define GPS_Lat_B_13    0x13 // 0x13    Latitude    dddmm.mmmm                       Before"."
//#define GPS_Lat_A_1B    0x1B // 0x13+8 (0x1B)""                U                     After"."
// doesn't exist in the APP
//#define GPS_Lat_N_S_23  0x23 // 0x1B+8 (0x23)          N/S  N=&H4E // S=&H53
// doesn't work ------------------
#define GPS_Course_B_14 0x14   // 0x14    Course       Degree    U    0~359,99         Before"."
#define GPS_Course_A_1C 0x1C   // 0x14+8 (0x1C)""                                      After"."
// NOT usable -------------------
//#define GPS_Day_Month_15 0x15// 0x15    Date/Month
//#define GPS_Year_16     0x16 // 0x16    Year
//#define GPS_Hour_Min_17 0x17 // 0x17    Hour/minute
//#define GPS_Second_18   0x18 // 0x18    Second
// NOT usable -------------------
// doesn't work ------------------
//#define Acc_x_24        0x24 // 0x24    Acc-x                  S   0,016g / -8g ~ +8g
//#define Acc_y_25        0x25 // 0x25    Acc-y                  S   0,016g / -8g ~ +8g
//#define Acc_z_26        0x26 // 0x26    Acc-z                  S   0,016g / -8g ~ +8g
//#define FAS_Volt_B_3A  0x3A  // 0x3A  Voltage(Ampere sensor) V U   0,5v / 0~48,0V     Before"."
// doesn't work ------------------
//#define FAS_Volt_A_3B  0x3B  // 0x3B     ""                                           After"."
#define FAS_Current_28 0x28    // 0x28    Current A              U   0.1A / 0~100A
  // doesn't work ------------------
 

 int up = 0; //  TEST max and min values
 void setup()
 {
 Serial.begin(9600);
 #if Debug
   Serial.println("_FRSKY_logger_01");
  #endif
 /*  TEST max and min values
  pinMode(8, INPUT_PULLUP);   
  pinMode(9, INPUT_PULLUP);   
 */   
 }
 
void loop(){
  /*  TEST max and min values
   boolean sensorVal8 = digitalRead(8);
   boolean sensorVal9 = digitalRead(9);
   boolean sensorVal10 = digitalRead(9);
    if (sensorVal8 == LOW) {  up = up +1;}
    if (sensorVal9 == LOW) {  up = up -10;}
  ---------------------------*/
  #if send_BT_data
 
     send_TX_RX_Bleutooth(105,104+up);          // two times 0 ~ 255
     Send_Bluetooth(Temp1_02,25,true);          // -255 ~ +255 (if thirth true => display neg values)2 gives -254 ( 2 - 256)
     Send_Bluetooth(Temp2_05,32000+up,0);       // 0 .... 32255
     Send_Bluetooth(Fuel_04,65535+up,0);        // 0 ~ 65535
     Send_Bluetooth(GPS_alt_B_01,32760,0);      // maximum 32767
     Send_Bluetooth(GPS_alt_A_09,9,0);          // maximum 1 digit 0 ~ 9
     Send_Bluetooth(Alt_Vario_B_10,32760+up,0); // maximum 32760
     Send_Bluetooth(Alt_Vario_A_21,99,0);       // max 2 digits 0 ~ 99
     Send_Bluetooth(GPS_Speed_B_11,65535+up,0); // maximum 65535
     Send_Bluetooth(GPS_Speed_A_19,99,0);       // max 2 digits  0 ~ 99
     Send_Bluetooth(GPS_Course_B_14,1+up,0);    //0 ~ 65536
     Send_Bluetooth(GPS_Course_A_1C,up,0);      // max 2 digits 0 ~ 99
   
  // Anomalies -----------------------
    Send_Bluetooth(RPM_03,51+up,0);             // maximum 65535  step is 60 | 1= 60 : set FACTOR to 0.01666 in the APP
    Send_Bluetooth(FAS_Current_28,32001+up,0);  // Displayed value 255 => 25.5 | 32000=3200.0 SET factor to 10 in the APP
  // Anomalies -----------------------
 
 
   #endif 
} // END loop
//***************************************************
#if send_BT_data
 void Send_Bluetooth(char Ident_code,int value, boolean neg){
   // 0x7E=start send str START ; 0xFD=hub data           ; 0x05=nr of bytes
   // FRS_seq= sequence nr      ; 0x5E= Hub data start    ; ID= Identity information
   // LO= Low byte              ; HI=High byte            ; 0x5E= Hub data end
   // 0x00= dummy               ; 0x7E=start send str END
   byte FRS_seq =0;
 
   byte Low_byte = (byte)(value & 0xFF); // (bitwise and)
   byte High_byte = (byte)((value >> 8) & 0xFF);// (bitshift right)
   if ( neg ){ High_byte = 255;} // temp can be positive or negatif
   
 // 7E|7D|length of valid bytes|Sequence nr|5E|Ident code|Low Byte|High byte|5E|not used|7E
   char data_send_HUB[11] = {0x7E,0xFD,0x05,FRS_seq,0x5E,0x00,0x00,0x00,0x5E,0x00,0x7E};
   data_send_HUB[5] = Ident_code;
   data_send_HUB[6] = Low_byte; 
   data_send_HUB[7] = High_byte;
   for ( byte xx=0;xx<11;xx++ ){
     Serial.print (data_send_HUB[xx]);
     delay(2); //2 delay(10) with int batt it doesn't work without the delay
   }
 }
#endif

 //-------------------------------------------------------------------------------

 void send_TX_RX_Bleutooth(char P1A1,char P2A2){
    #define RSSIrx   60 // can also be used 0 ~ 255
    #define RSSItx  140  // will be divided by two ( 2 ) for display
     char data_send_RX[11] = {0x7E,0xFE,P1A1,P2A2,RSSIrx,RSSItx,0x00,0x00,0x00,0x00,0x7E};
    for ( byte i=0;i<11;i++ ){ Serial.print(data_send_RX[i]); }
   //  delay(5);
 }

 //-----------------------------------------------------------------------------------

Advertisement

Gebruikers-avatar
Berichten: 13
Geregistreerd: 19 Sep 2014, 07:36

Re: Gebruik je Android telefoon als display

Berichtdoor Hackerstore » 19 Sep 2014, 07:41

Dat is een mooie en behoorlijk uitgebreide app. 't Zou mooi zijn als er iemand was die ook de broncode van de Android-app zou kunnen publiceren, dan kunnen we aan die kant ook eens kijken hoe dat werkt en er zelf apps mee maken.

Berichten: 17
Geregistreerd: 06 Feb 2013, 19:30

Re: Gebruik je Android telefoon als display

Berichtdoor retlawrobbe » 19 Sep 2014, 10:25

Als het er om gaat om zelf app's te maken zijn er wel voldoende voorbeelden te vinden op het internet.
Ik heb het zelf reeds gebrobeerd om een app te maken met Eclipse, maar niettegenstaande mijn kennis van verschillende programmeertalen
gaat het nog mijn petje te boven.

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Gebruik je Android telefoon als display

Berichtdoor nicoverduin » 19 Sep 2014, 22:02

Ik heb al eens een app met Appcelerator ontwikkeld. Is best te doen.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Gebruikers-avatar
Berichten: 13
Geregistreerd: 19 Sep 2014, 07:36

Re: Gebruik je Android telefoon als display

Berichtdoor Hackerstore » 20 Sep 2014, 06:51

Wij gebruiken Eclipse en Android Studio om onze Android-apps in Java te programmeren. Maar als je wilt beginnen met apps is Appinventor een aanrader. Dat is een grafische omgeving waarbij je blokken aan elkaar kunt knopen, zoals met Lego.

Ze hebben sinds kort ook een bluetooth-component.

http://ai2.appinventor.mit.edu

Maar dan moet je alles nog steeds van de grond af ontwikkelen, een stukje voorbeeldcode was wel handig geweest als startmateriaal :-)

Terug naar Afgeronde projecten

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 9 gasten