NRF24L01 ส่ง25 อีกตัวรับได้ 8.50 ถ้าต่อ c จะได้รับขอมูลตรงไหมครับหรือว่าเป็นที่อย่างอื่น
เป็นกับโปรแกรม ลองดูการส่งค่าตัวแปรในส่วนของ code ค่ะ
ลองดูให้ผมหน่อยได้ไหมครับ
อันนี้ตัวส่ง /**
* SENDEREN / TRANSMITTER
* Hardware SPI:
* Radio MO -> Arduino pin 11 (MOSI)
* Radio MI -> Arduino pin 12 (MISO)
* Radio SCK-> Arduino pin 13 (SCK)
* options:
* Radio CE -> Arduino pin 8 (default - kan endres/can be altered)
* Radio CSN-> Arduino pin 7 (default - kan endres/can be altered)
*/
#include <SPI.h>
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>
#include <MirfSpiDriver.h>
const byte payload=10; // max 32
union
{
byte ch[payload]; // 10 bytes
struct
{
float temp; // 4 bytes
float humi; // 4 bytes
int extra; // 2 bytes
};
} buffer; // buffer for 10 bytes => 5 analog values
void setup()
{
Serial.begin(9600);
Mirf.csnPin = 7; // kan endres etter behov. Kan utelates hvis default
Mirf.cePin = 8; // kan endres etter behov. Kan utelates hvis default
Mirf.spi = &MirfHardwareSpi;
Mirf.init();
Mirf.payload = payload;
Mirf.channel=110; // any channel: 1..120
Mirf.config();
}
void loop()
{
Mirf.setTADDR((byte *)"team1");
buffer.temp=25.2; //example.. read from dht11
buffer.humi=40.5; //example.. read from dht11
Mirf.send(buffer.ch); // or one can use: Mirf.send((byte *)&buffer);
while (Mirf.isSending()){}; // waut for data sent / vent til data er sendt
delay(200); // pause - thin of receiver capacity to handle incoming data
ส่วนตัวรับเหมือนอันนี้แต่แก้ตรงส่วนรับข้อมูล
การรับส่งข้อมูล NRF24L01 การจะแกะแพ็คเกจจะมีการตรวจสอบความถูกต้องของข้อมูล ถ้าพบว่าข้อมูลที่ส่งมาไม่ถูกต้องก็จะรับไม่สำเร็จครับ ดังนั้นข้อมูลที่ส่งมาจะต้องมีความถูกต้องถึงจะรับได้
แนะนำให้ใช้ไลบารีตามในบทความจะง่ายกว่านี้เยอะเลย ในไลบารีมีหลายตัวอย่าง รวมถึงการส่งค่าตัวแปลด้วยครับ