Hi I am currently been working on a Biohacking project after watching a documentary on the subject. I did electrical engineering and electronics in school and collegel. So Hardwear side I'm okay, Software however Its not my expertise.
There are two parts to the project. The scanner and the implantable device. (IPD) The implantable device is going to be powered by two coils acting as a loosely coupled air core transformer. The Scanner acting as the primary windings and the IPD acting as the secondary. This will power the IPD, Currently Its early days and I have a simple proof of concept where music and power is sent by the primary coil and powering and playing music from a speaker on the secondary.
On the IPD there will be a IR transmitter. Instead of the Scanner sending music, There will be different frequencies sent by the scanner, which correspond with different messages that will be sent by the IR transmitter to the IR Recievier on the scanner. Such as First 10000hz , Middle 10333hz, last name 10666hz, DOB ect.
The prototype is going to use a Arduino nano V3 as I feel it could be made smaller and is already relatively small. It also has a built in regulator.
I have been using chatgpt to help out with the IPD code, however I thought I'd see what the actual professionals here have to say. Also I am interested in anyone's ideas what other features could be incorporated and possible ways of implementing such ideas. Also what are people's feelings on such a concept.
Kind regards,
Rick
#include <IRremote.h>
// Define the IR LED pin
int irLedPin = 9;
// Define the frequency/message pairs
const int freqs[] = {10000, 10333, 10666, 11000, 11333, 11666, 12000, 12333, 12666, 13000, 13333, 13666, 14000, 14333, 14666, 15000};
const char* messages[] = {"hello***************", "world***************", "this is a test*******", "of the emergency*****", "broadcast************", "system***************", "this is only a test**", "*********************", "*********************", "testing 123**********", "abc123**************", "testing testing*****", "12345***************", "67890***************", "testing one two three", "*********************"};
const int numFreqs = sizeof(freqs) / sizeof(int);
// Define the IR transmitter object
IRsend irsend;
void setup() {
// Initialize the serial port
Serial.begin(9600);
// Initialize the IR LED pin
pinMode(irLedPin, OUTPUT);
}
void loop() {
// Read the input signal on pin 2
int frequency = pulseIn(2, HIGH);
// Check if the frequency matches one of the defined frequencies
for (int i = 0; i < numFreqs; i++) {
if (frequency >= (freqs[i] - 25) && frequency <= (freqs[i] + 25)) { // allow for a ±25 Hz tolerance in the frequency detection
// Send the corresponding message over IR
char message[33];
strncpy(message, messages[i], 32);
message[32] = '\0';
irsend.sendNEC((uint32_t)message, strlen(message));
Serial.println(message);
break; // exit the loop once a frequency is detected
}
}
}