mirror of
https://github.com/KevinMidboe/Arduino.git
synced 2025-10-29 17:40:11 +00:00
Init commit with many years of arduino sketches and projects. I dont know if the esp8266 includes much, but there are also libraries. I hope they dont have crazy automatic versioning through the Arduino IDE.
This commit is contained in:
@@ -0,0 +1,100 @@
|
||||
/*********************************************************************
|
||||
This is an example for our nRF8001 Bluetooth Low Energy Breakout
|
||||
|
||||
Pick one up today in the adafruit shop!
|
||||
------> http://www.adafruit.com/products/1697
|
||||
|
||||
Adafruit invests time and resources providing this open source code,
|
||||
please support Adafruit and open-source hardware by purchasing
|
||||
products from Adafruit!
|
||||
|
||||
Written by Kevin Townsend/KTOWN for Adafruit Industries.
|
||||
MIT license, check LICENSE for more information
|
||||
All text above, and the splash screen below must be included in any redistribution
|
||||
*********************************************************************/
|
||||
|
||||
// This version uses call-backs on the event and RX so there's no data handling in the main loop!
|
||||
|
||||
#include <SPI.h>
|
||||
#include "Adafruit_BLE_UART.h"
|
||||
|
||||
#define ADAFRUITBLE_REQ 10
|
||||
#define ADAFRUITBLE_RDY 2
|
||||
#define ADAFRUITBLE_RST 9
|
||||
|
||||
Adafruit_BLE_UART uart = Adafruit_BLE_UART(ADAFRUITBLE_REQ, ADAFRUITBLE_RDY, ADAFRUITBLE_RST);
|
||||
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
This function is called whenever select ACI events happen
|
||||
*/
|
||||
/**************************************************************************/
|
||||
void aciCallback(aci_evt_opcode_t event)
|
||||
{
|
||||
switch(event)
|
||||
{
|
||||
case ACI_EVT_DEVICE_STARTED:
|
||||
Serial.println(F("Advertising started"));
|
||||
break;
|
||||
case ACI_EVT_CONNECTED:
|
||||
Serial.println(F("Connected!"));
|
||||
break;
|
||||
case ACI_EVT_DISCONNECTED:
|
||||
Serial.println(F("Disconnected or advertising timed out"));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
This function is called whenever data arrives on the RX channel
|
||||
*/
|
||||
/**************************************************************************/
|
||||
void rxCallback(uint8_t *buffer, uint8_t len)
|
||||
{
|
||||
Serial.print(F("Received "));
|
||||
Serial.print(len);
|
||||
Serial.print(F(" bytes: "));
|
||||
for(int i=0; i<len; i++)
|
||||
Serial.print((char)buffer[i]);
|
||||
|
||||
Serial.print(F(" ["));
|
||||
|
||||
for(int i=0; i<len; i++)
|
||||
{
|
||||
Serial.print(" 0x"); Serial.print((char)buffer[i], HEX);
|
||||
}
|
||||
Serial.println(F(" ]"));
|
||||
|
||||
/* Echo the same data back! */
|
||||
uart.write(buffer, len);
|
||||
}
|
||||
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
Configure the Arduino and start advertising with the radio
|
||||
*/
|
||||
/**************************************************************************/
|
||||
void setup(void)
|
||||
{
|
||||
Serial.begin(9600);
|
||||
while(!Serial); // Leonardo/Micro should wait for serial init
|
||||
Serial.println(F("Adafruit Bluefruit Low Energy nRF8001 Callback Echo demo"));
|
||||
|
||||
uart.setRXcallback(rxCallback);
|
||||
uart.setACIcallback(aciCallback);
|
||||
// uart.setDeviceName("NEWNAME"); /* 7 characters max! */
|
||||
uart.begin();
|
||||
}
|
||||
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
Constantly checks for new events on the nRF8001
|
||||
*/
|
||||
/**************************************************************************/
|
||||
void loop()
|
||||
{
|
||||
uart.pollACI();
|
||||
}
|
||||
@@ -0,0 +1,103 @@
|
||||
/*********************************************************************
|
||||
This is an example for our nRF8001 Bluetooth Low Energy Breakout
|
||||
|
||||
Pick one up today in the adafruit shop!
|
||||
------> http://www.adafruit.com/products/1697
|
||||
|
||||
Adafruit invests time and resources providing this open source code,
|
||||
please support Adafruit and open-source hardware by purchasing
|
||||
products from Adafruit!
|
||||
|
||||
Written by Kevin Townsend/KTOWN for Adafruit Industries.
|
||||
MIT license, check LICENSE for more information
|
||||
All text above, and the splash screen below must be included in any redistribution
|
||||
*********************************************************************/
|
||||
|
||||
// This version uses the internal data queing so you can treat it like Serial (kinda)!
|
||||
|
||||
#include <SPI.h>
|
||||
#include "Adafruit_BLE_UART.h"
|
||||
|
||||
// Connect CLK/MISO/MOSI to hardware SPI
|
||||
// e.g. On UNO & compatible: CLK = 13, MISO = 12, MOSI = 11
|
||||
#define ADAFRUITBLE_REQ 10
|
||||
#define ADAFRUITBLE_RDY 2 // This should be an interrupt pin, on Uno thats #2 or #3
|
||||
#define ADAFRUITBLE_RST 9
|
||||
|
||||
Adafruit_BLE_UART BTLEserial = Adafruit_BLE_UART(ADAFRUITBLE_REQ, ADAFRUITBLE_RDY, ADAFRUITBLE_RST);
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
Configure the Arduino and start advertising with the radio
|
||||
*/
|
||||
/**************************************************************************/
|
||||
void setup(void)
|
||||
{
|
||||
Serial.begin(9600);
|
||||
while(!Serial); // Leonardo/Micro should wait for serial init
|
||||
Serial.println(F("Adafruit Bluefruit Low Energy nRF8001 Print echo demo"));
|
||||
|
||||
// BTLEserial.setDeviceName("NEWNAME"); /* 7 characters max! */
|
||||
|
||||
BTLEserial.begin();
|
||||
}
|
||||
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
Constantly checks for new events on the nRF8001
|
||||
*/
|
||||
/**************************************************************************/
|
||||
aci_evt_opcode_t laststatus = ACI_EVT_DISCONNECTED;
|
||||
|
||||
void loop()
|
||||
{
|
||||
// Tell the nRF8001 to do whatever it should be working on.
|
||||
BTLEserial.pollACI();
|
||||
|
||||
// Ask what is our current status
|
||||
aci_evt_opcode_t status = BTLEserial.getState();
|
||||
// If the status changed....
|
||||
if (status != laststatus) {
|
||||
// print it out!
|
||||
if (status == ACI_EVT_DEVICE_STARTED) {
|
||||
Serial.println(F("* Advertising started"));
|
||||
}
|
||||
if (status == ACI_EVT_CONNECTED) {
|
||||
Serial.println(F("* Connected!"));
|
||||
}
|
||||
if (status == ACI_EVT_DISCONNECTED) {
|
||||
Serial.println(F("* Disconnected or advertising timed out"));
|
||||
}
|
||||
// OK set the last status change to this one
|
||||
laststatus = status;
|
||||
}
|
||||
|
||||
if (status == ACI_EVT_CONNECTED) {
|
||||
// Lets see if there's any data for us!
|
||||
if (BTLEserial.available()) {
|
||||
Serial.print("* "); Serial.print(BTLEserial.available()); Serial.println(F(" bytes available from BTLE"));
|
||||
}
|
||||
// OK while we still have something to read, get a character and print it out
|
||||
while (BTLEserial.available()) {
|
||||
char c = BTLEserial.read();
|
||||
Serial.print(c);
|
||||
}
|
||||
|
||||
// Next up, see if we have any data to get from the Serial console
|
||||
|
||||
if (Serial.available()) {
|
||||
// Read a line from Serial
|
||||
Serial.setTimeout(100); // 100 millisecond timeout
|
||||
String s = Serial.readString();
|
||||
|
||||
// We need to convert the line to bytes, no more than 20 at this time
|
||||
uint8_t sendbuffer[20];
|
||||
s.getBytes(sendbuffer, 20);
|
||||
char sendbuffersize = min(20, s.length());
|
||||
|
||||
Serial.print(F("\n* Sending -> \"")); Serial.print((char *)sendbuffer); Serial.println("\"");
|
||||
|
||||
// write the data
|
||||
BTLEserial.write(sendbuffer, sendbuffersize);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user