MIT App Inv 2: Skicka data från app till HM-10/Arduino

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
Användarvisningsbild
Magnus_K
EF Sponsor
Inlägg: 5803
Blev medlem: 4 januari 2010, 17:53:25
Ort: Skogen mellan Uppsala-Gävle

MIT App Inv 2: Skicka data från app till HM-10/Arduino

Inlägg av Magnus_K »

Hej hej,

Får den här appen att fungera jättebra, förutom att göra det den ska :)

HM-10:an är en BLE-enhet och när den inte är ihopkopplad med någon annan enhet så blinkar den.
När jag kör appen så får jag "Connected" och HM-10:an lyser stadigt, vilket indikerar att den är ihopkopplad med telefonen.

Det jag inte får till är att skicka data till Arduinon som sitter bakom HM-10:an.
I Arduino-koden så använder jag SoftwareSerial för att bitbanga två nya pinnar då jag inte kan använda mig av hårdvarupinnarna. Det är SerialBT nedan som är SoftwareSerial.
Jag får inte rackaren att spotta ur sig något alls i monitor-fönstret.

Med andra ord vet jag inte än om ens appen skickar någon data.
Det råkar inte vara någon som ser något uppenbart fel i Scratch-koden?

Kod: Markera allt

if (SerialBT.available()){
     msg = SerialBT.read();
     Serial.println(msg);
}
HM_10_Bluetooth.PNG
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
ToPNoTCH
Inlägg: 3825
Blev medlem: 21 december 2009, 17:59:48

Re: MIT App Inv 2: Skicka data från app till HM-10/Arduino

Inlägg av ToPNoTCH »

Vad är det för Arduino modul ?

Att jag frågar beror på att SoftwareSerial är lite läskig då den komplierar på ex. ESP8266 trots att den inte funkar (finns särskild SS till dessa).
Användarvisningsbild
Magnus_K
EF Sponsor
Inlägg: 5803
Blev medlem: 4 januari 2010, 17:53:25
Ort: Skogen mellan Uppsala-Gävle

Re: MIT App Inv 2: Skicka data från app till HM-10/Arduino

Inlägg av Magnus_K »

Det är en Arduino Nano.
Börjar tro att det är just kommunikationen Nano <-> HM-10 som inte fungerar.
Laddade ner BLE Scanner till telefonen och försöker skicka direkt från den appen men jag tar inte emot något på Nano:n ändå.

I många exempel jag hittar på nätet så använder dom just SofwareSerial för att kommunicera med den, och med en default baud på 9600 trodde jag den skulle "hinna" bitbanga det också.
Användarvisningsbild
Magnus_K
EF Sponsor
Inlägg: 5803
Blev medlem: 4 januari 2010, 17:53:25
Ort: Skogen mellan Uppsala-Gävle

Re: MIT App Inv 2: Skicka data från app till HM-10/Arduino

Inlägg av Magnus_K »

Oj oj oj, plockade ur allt ur mitt befintliga program och gjorde ett nytt "rent" för enbart denna kommunikationen.
Och nu fungerar det... Herrejösses, hur ska jag reda ut det här bland allt. :shock:

Antagligen har det med att jag strular med interrupts och sleep i övriga programmet. Säkert något som krockar med SoftwareSerial-interrupthanteringen.
Eller att jag redan använder Timer1 :doh:

Det här fungerade kanon mot den scratch-appen i första inlägget:

Kod: Markera allt

#include "Arduino.h"
#include "stdio.h"
#include <Wire.h>
#include <SPI.h>
#include <SoftwareSerial.h>
  

#define led_pin 3
#define BLE_pin A4

const int BTRX = 7;
const int BTTX = 8;

int msg;
int msg_out = 22;

SoftwareSerial SerialBT(BTRX, BTTX);

void setup(void) {
  
  
  pinMode(led_pin, OUTPUT);
  digitalWrite(led_pin, LOW);
  pinMode(BLE_pin, OUTPUT);
  digitalWrite(BLE_pin, HIGH);

  Serial.begin(9600);
  Serial.println("Test!");

  SerialBT.begin(9600);

  delay(100);

}

void loop() {



  if (SerialBT.available()){
     msg = SerialBT.read();
     Serial.println(msg);
     SerialBT.write(msg_out);
     digitalWrite(led_pin, HIGH);
      } 
}
Skriv svar