USR-7S4 is an LTE module and I just want to check whether it can communicate with CC2640R2F BLE module.
We can use UART communication and transmit the AT initialization commands described for the module. Once done with one AT command we need to accept the response using BLE and immediately clear that AT command so that the next command can be given. This helps to receive the new responses from the 0th position of the buffer. This clearing can be done using: "memset(rxBuf,0,sizeof(rxBuf));" commands.
Related
How do I get a caller identity from sim900 using pic16f877A microcontroller meanwhile, I can make call, send SMS and answer calls but I want to be able to compare an incoming call identity with a predefined on in my program. My compiler if Mikroc. Thanks
You need to give AT+CLIP=1\r command to enable additional caller information.
Once you issue this command, any incoming call will be notified in the following format,
RING
+CLIP:+911234567890
Now just extract the number after +CLIP: to compare against pre-stored numbers.
I am programming some functions in a STM32 board. This functions consist in sequences of AT commands, which are sent over UART to the SIM7000E module, to do different tasks. The module uses a SIM with GSM.
The configuration function sends the following commands:
AT+CPIN=1234
AT+CREG=1
AT+CGATT=1
AT+CIPMUX=0
AT+CSTT="vpn","user","password"
AT+CIICR
AT+CIFSR
Now I want to program a function to check if the module is consuming network data after the configuration function. I am not sure whether I should check CREG, CGATT, CIICR or other command.
So the question is: In which point is the SIM consuming network data?
Thank you in advance!
I think It starts consuming data after the AT+CSTT command. Until the AT+CSTT command, module does not have the GPRS connection. After the AT+CSTT commands it is open to GPRS calls.
On the other side, even if you have an unvalid SIM card before the attaching the network, you can not know that you have data packet or not. I think like that I am not %100 sure but, I suggest like that.
I am using an arduino with HM-10 Bluetooth module. I am able to detect other HM-10(slave) in the vicinity of HM-10(master). In HM-10 datasheet AT+RSSI? command is mentioned which i tried with all possible combinations, but i am unable to extract the rssi value. Is there any way such that i can determine the rssi value using arduino on serial monitor. Any relevant code other than the command will be appreciated.
thanks in advance.
According to the "datasheet", "This command only used by Remote device query when connected."
Basically, to get this to work, you will need to set your slave to remote control mode with the AT command
AT+MODE2
Then, connect your master and slave. After this is done, you should be able to send the master the command "AT+RSSI?", it will send it to the slave, which will pick it up now that is in remote control mode. The slave will then reply with its RSSI value.
When I send any commands to the HM10 BLE Bluetooth module, it sends the commands through bluetooth instead of the HM10 module processing the command. For example, I expected to send AT and have the module respond with "OK", but it sends the text "AT" through the bluetooth connection. I have tried sending the command with no bluetooth connection and the same thing happens. I have also tried sending the command via bluetooth instead of the serial connected to the device and I get the same thing.
When HM10 is connected to remote ble device it is in transparent mode. To put it into AT mode you need break connection or not establish it at all.
For breaking connection use reset/break pins. Reset is 12 pin and Break seems to be 23 pin.
It has sense to look IMME parameter of the module (page 32 of datasheet).
IMME Query/Set Module work type
1: When module is powered on, only respond the AT Command, don’t do
anything. Until AT + START, AT+CON, AT+CONNL commands is received.
0: When power on, module will start work immediately Default: 0
Also be carefull with strings endings, usually string doesn't need to be terminated with any symbol at all: AT, but some H11 need the string to end with CRLF: AT\r\n
Maybe (Maybe) your problem because of using clone module, try this solution with upload genuine firmware to your hm-10.
How to flash genuine HM-10 firmware on CC2541
I had problem close from your problem but for me no matter what I send I don't receive anything even to connected device, but after I upload that firmware, and change Module work mode to 1 (AT+MODE1) become able to send command even from connected device.
I am trying to network multiple Arduino Fio with Xbee as slaves and my computer as Master with an Explore and Xbee.
Suppose i send and command 'Read' over serial to all Arduinos. Everyone responds suppose 'OK'.
My problem is to make them respond something like 'Arduino ID1 says OK' or 'Arduino ID2 says OK' etc.
Now this may be easy of each arduinos have separate programs burnt into them. But in my case all arduinos are suppose to have identical programs.
I know we assign MyID and Pan ID to each Xbee while configuring them for the first time.
So i am looking for some function in the program burnt into the Arduinos example
'readMyXbeeID()' or something.
Any ideas how i can do this? Or any other way to achieveArd the same thing?
I was able to get MYID by using AT commands.
You will need to read the XBEE documentation confirm these.
Use "+++" to get in to command mode (not forgetting the > one second delay to 'guard' this sequence).
{ I used: delay(1200); Serial.print ( "+++" ) ; }
The XBEE will respond OK\r.
Then ATMY\r will give you MYID returned as an ascii string terminated with "\r".
[In my case I had set a MYID of 2 so I saw the string "2\r"]
Finish with the command ATCN\r to exit command mode.
If you want to manage communications with several devices, I recommend you to use the API mode instead of the AT mode. If you are working with Arduino, there are some really good libraries: Xbee-Api and XBee-Arduino. Here you will find useful information and examples that may help in your project.
I mentored a few projects with these libraries (complete beginners in ZigBee technology), and they got all concepts really fast. 100% recomendable.
Regarding your question, you are right about writing just one program for all Arduinos. Otherwise you will have to create different hex-files for each node, which makes no sense. The easiest way for identifiying the ZigBee nodes is just using i.e. the 64-bit physical address. You can get this address easily through AT Commands. But keep in mind that in API Mode, whenever you send a message, the source address is automatically included in the frame, so you do not have to include explicity this information.