WAC (Wireless Accessory Configuration) ESP8266 Support - arduino

Can we share WiFi SSID and Password through WAC, I found a arduino library which support for apple HomeKit and I successfully integrated a Light Bulb but the disadvantage is the WiFi SSID and Password should be hard coded before it flash to the ESP. I tried WiFiManager to avoid this problem but as per my understanding it also not a permanent solution.
So can we use WAC in apple in order to share WiFi credentials with ESP?

WAC uses BLE (Bluetooth Low Energy) to communicate with the device. The ESP8266 doesn't support Bluetooth. So there's absolutely no chance of doing this without adding extra hardware to use BLE.
WAC is also only available for devices which have been certified through Apple's MFi program. MFi used to require that the device use a custom Apple security chip; not sure if it still does. Part of MFi certification is extensive testing of the device.
So even if you add BLE support you're not going to just casually support WAC.

Related

Is there any way how to scan for advertisement channels to get access to HC-06 bluetooth controller?

I'm quite new in Arduino and Bluetooth devices, but need to demostrate some vulnerabilities of IoT devices and I want to try hack HC-06 bluetooth controller to send instruction to Arduino. I want to try MAC spoofing method and second method is about exploiting advertisement channels of BLE devices by sniffing. I don't actually know if HC-06 is considered as BLE device or if it has advertisement channels.
I'm really new in this field and I've just read some articles about basics. This is used as a school project.
HC-06 is not a BLE device, is Bluetooth v2.0 + EDR and it does not has advertisement channels.
Go for HM-10 to have a proper BLE device.
Some references that may help you to get into the topic:
Old documentation about BR/EDR versions:
https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-121r2.pdf
Recent documentation on BLE security:
https://csrc.nist.gov/csrc/media/publications/sp/800-121/rev-1/final/documents/draft-sp800-121_rev1.pdf

Create the Pairing limitation on HC-05 sensor

I have been trying to set the limit of pairing the Bluetooth device HC-05(interface by Arduino controller) with my smartphone.
I have tried making this solution work with AT command
AT+INQM=<Param>,<Param2>,<Param3>
Example: AT+INQM=1,9,48\r\n
But instead of converting AT commands using serial.h with embedded C, I am looking for any dedicated library which helps to work this kind solution in using Arduino.
Basically, with the help of Bluetooth device connect to Arduino Nano, I want to send the altimeter sensor data to my smartphone.
During the connection, HC-05 should be responding any one device at a time, if another smartphone tries to pair then the error will be shown.
Please share your advice on this.
Yes there are some libraries in arduino but these are only meant for connection and pairing and low energy connections. We don't have any dedicated library from where we can control the mode of operation of HC05 or any bluetooth module. like bypassing or accessing GAP and GATT services of bluetooth. However there is a way to flash HC-05. But we can only use it for updating the firmware of this device. This github repo is dedicated for this purpose . Hope it helps you

QT Bluetooth Peripheral and Central role possible?

I'm running a programm on a Raspberry Pie which is based on QT and uses a bluetooth adapter to connect to some peripheral devices as a central role.
I also have another device, which only can act as a Central bluetooth device and needs to be connected to my Raspberry.
Is it possible with QT to first build a connection to my second device by advertising itself and acting as a peripheral, and afterwards swaping to central mode, to connect to the other devices?
I didn't find any evidence for or against this. So i hope you guys can help me out.
What you want to do is not related to Qt/software, but rather something that depends on the hardware, specifically the version of Bluetooth of your hardware. A device can advertise (act as a peripheral) and scan/connect (act as a central) at the same time if it supports the "LE Dual Mode Topology", which was added in Bluetooth v4.1 (please see figure below).
Therefore, if this is a Raspberry Pi 3 Model B or B+, then it has Bluetooth v4.1 or v4.2 (respectively) built-in and it should be capable of acting as both central and peripheral. If it is an older Raspberry Pi then this depends on the Bluetooth dongle that you attach to it.
I hope this helps.

How to emulate GATT server in Bluetooth Developer Studio while connected with a Physical Device?

When a physical device is connected with Bluetooth Developer Studio (BDS), BDS treats it as GATT server and itself behaves like a client. But what if I want to check the client role on physical device.
I'm trying HID over GATT (HOGP) and my physical device works as HID Host role. I wanted to emulate BDS as HID Device but I didn't find any way to make it as HID Device while connected to a physical device as HID Host.
Is there any way or any plugin need to install to host services on BDS when it is connected to a phycial device?
I was looking for the same functionality in BDS, but after looking into it I found that it only supports interfacing with a physical peripheral device and not central devices. I follow the Bluetooth SIG webinars and updates on the roadmap for the tool as well, and this functionality is not listed in their future roadmap for releases.
BDS plugins are only supported for source code generation (at least up to version 1.1).

Programming GSM Module to send SMS

I would like to use a standalone GSM Module that can interface with other systems like TV, AC, Fridge, etc.. via an SMS or a Call
For example:
1. If the GSM Module is hooked up to a Smoke Sensor, when there is an alert the GSM Module should be able to send as SMS.
I think there needs to a hardware component (that connects to the Smoke Sensor and GSM Module) where I can install program to send a SMS message when there is a signal from Smoke Sensor.
I would like to know on what this hardware component can be, what programming languages can be used and how the hardware component can interface with various devices.
Thanks!
An easy way to get a programmable GSM module is to get a cheap Android smart phone. For connectivity, you will need to build your own solutions unless the sensors already have some interface. You may want to look into Arduino microcontrollers for that. You can interface to the Android device using Wifi, Bluetooth, USB (newer devices support USB host mode, the cheap ones may not) or the audio jack.
Best solution depends on your resources and how many devices you need.
If you have big budget and hardware and software designers, then you could use naked GSM/UMTS module from some m2m module vendor like Cinterion or Telit. And own MCU for controlling it.
But if you need only few devices, then you could use some programmable GSM/UMTS terminal module, which contain all needed stuff: case, sim-holder, antenna connector, some GPIOs and modem.
For example Cinterion TC65T is this kind of terminal module. It can run a java (J2ME) program. Java programs of TC65T have access to GPIOs, which can be connected to smoke sensor for example. Java programs can also send SMS messages.
The Cinterion TC65T terminal was a 2G cellular device with a Java Virtual Machine to allow you to run J2ME 3.2 applications. Now days you could use a Terminal such as the Cinterion EHS6T-USB which is a 2G and 3G device with Java.
You might find it easier to get hold of a Cinterion "concept board" which has a Java enabled 2G and 3G cellular module on there along with an interface for Arduino style shields.
http://www.gemalto.com/m2m/development/cinterion-concept-board
It runs from a USB lead, plugged into you laptop or PC and need no other external power supply for development. I used one of these connected to a battery, and an Arduino relay board plugged in, to be able to switch our Christmas tree lights on and off via SMS.

Resources