{{$productInfo.reviewAmount.average}} sur 5
Pour plus d'informations sur le produit, cliquez sur https://drive.google.com/file/d/1L8ll-DeAC2SATBZn0-KbSaZsrinbnXkF/view
Cliquez sur les liens pour plus de détails : https://eyun.baidu.com/s/3hsiTNgg
Remarque : ce produit n'inclut pas la batterie.
Emballage inclus:
2 × ESP32 OLED
2 x Line
4 x pin
Antenne à ressort 2 x 433 m
Par exemple un :
(1) LoRaExpéditeur
#inclure
#inclure
#inclure
// GPIO5 -- SCK du SX1278
// GPIO19 -- MISO du SX1278
// GPIO27 -- M0SI du SX1278
// GPIO18 -- CS du SX1278
// GPIO14 -- RÉINITIALISATION du SX1278
// GPIO26 -- IRQ (demande d'interruption) du SX1278
#définir SS 18
#définir RST 14
#définir DI0 26
#define BANDE 433E6
compteur entier = 0 ;
void setup() {
pinMode(25,SORTIE); //Envoyer le succès, LED brillera 1 seconde
Serial.begin(115200);
tandis que (!Série); //Si seulement la fonction de base, doit se connecter à un ordinateur
SPI.begin(5,19,27,18);
LoRa.setPins(SS,RST,DI0);
// Serial.println("Expéditeur LoRa");
si (!LoRa.begin(BANDE)) {
Serial.println("Le démarrage de LoRa a échoué !");
tandis que (1);
}
Serial.println("LoRa Initial OK!");
}
boucle vide () {
Serial.print("Envoi du paquet : ");
Serial.println(compteur);
// envoie le paquet
LoRa.beginPacket();
LoRa.print("bonjour ");
LoRa.print(compteur);
LoRa.endPacket();
compteur++ ;
digitalWrite(25, ÉLEVÉ); // allumez le LED (HIGH est le niveau de tension)
retard(1000); // attend une seconde
digitalWrite(25, BAS); // éteignez le LED en rendant la tension BASSE
retard(1000); // attend une seconde
retard (3000);
}
Par exemple Deux
(2)Récepteur LoRa
#inclure
#inclure
// GPIO5 -- SCK du SX1278
// GPIO19 -- MISO du SX1278
// GPIO27 -- M0SI du SX1278
// GPIO18 -- CS du SX1278
// GPIO14 -- RÉINITIALISATION du SX1278
// GPIO26 -- IRQ (demande d'interruption) du SX1278
#définir SS 18
#définir RST 14
#définir DI0 26
#define BANDE 433E6
void setup() {
Serial.begin(115200);
tandis que (!Série); // si c'est juste la fonction de base, doit se connecter à un ordinateur
retard(1000);
Serial.println("Récepteur LoRa");
SPI.begin(5,19,27,18);
LoRa.setPins(SS,RST,DI0);
si (!LoRa.begin(BANDE)) {
Serial.println("Le démarrage de LoRa a échoué !");
tandis que (1);
}
}
boucle vide () {
// essaie d'analyser le paquet
int packetSize = LoRa.parsePacket();
si (taillepaquet) {
// a reçu un paquet
Serial.print("Paquet reçu '");
// lire le paquet
tandis que (LoRa.available()) {
Serial.print((char)LoRa.read());
}
// imprime le RSSI du paquet
Serial.print("' avec RSSI ");
Serial.println(LoRa.packetRssi());
}
}
Par exemple trois
(3) Rappel du récepteur LoRa
#inclure
#inclure
// GPIO5 -- SCK du SX1278
// GPIO19 -- MISO du SX1278
// GPIO27 -- M0SI du SX1278
// GPIO18 -- CS du SX1278
// GPIO14 -- RÉINITIALISATION du SX1278
// GPIO26 -- IRQ (demande d'interruption) du SX1278
#définir SS 18
#définir RST 14
#définir DI0 26
#define BANDE 433E6
void setup() {
Serial.begin(115200);
tandis que (!Série); // si c'est juste la fonction de base, doit se connecter à un ordinateur
SPI.begin(5,19,27,18);
LoRa.setPins(SS,RST,DI0);
Serial.println("Rappel du récepteur LoRa");
si (!LoRa.begin(BANDE)) {
Serial.println("Le démarrage de LoRa a échoué !");
tandis que (1);
}
// enregistre le rappel de réception
LoRa.onReceive(onReceive);
// met la radio en mode réception
LoRa.receive();
}
boucle vide () {
// ne fais rien
}
void onReceive(int packetSize) {
// a reçu un paquet
Serial.print("Paquet reçu '");
// lire le paquet
pour (int je = 0; je < paquetTaille; je++) {
Serial.print((char)LoRa.read());
}
// imprime le RSSI du paquet
Serial.print("' avec RSSI ");
Serial.println(LoRa.packetRssi());
}
?
Par exemple quatre
#inclure // Nécessaire uniquement pour 1.6.5 et versions antérieures
#inclure "SSD1306.h" // alias pour `#inclure "SSD1306Wire.h"`
#inclure "images.h"
//OLED broches à ESP32 0.96OLEDGPIOs via cette connexion :
//OLED_SDA -- GPIO4
//OLED_SCL -- GPIO15
//OLED_RST -- GPIO16
Affichage SSD1306 (0x3c, 4, 15);
#define DEMO_DURATION 3000
typedef void (*Demo)(void);
int demoMode = 0 ;
compteur entier = 1 ;
void setup() {
pinMode(16,SORTIE);
digitalWrite(16, BAS); // définir GPIO16 bas pour réinitialiser OLED
retard(50);
digitalWrite(16, ÉLEVÉ); // pendant que OLED est en cours d'exécution, doit définir GPIO16 en haut
Serial.begin(115200);
Serial.println();
Serial.println();
// L'initialisation de l'interface utilisateur initiera également l'affichage.
display.init();
display.flipScreenVertical();
display.setFont(ArialMT_Plain_10);
}
annuler drawFontFaceDemo() {
// Police Demo1
// créer plus de polices sur http://oleddisplay.squix.ch/
display.setTextAlignment(TEXT_ALIGN_LEFT);
display.setFont(ArialMT_Plain_10);
display.drawString(0, 0, "Bonjour le monde");
display.setFont(ArialMT_Plain_16);
display.drawString(0, 10, "Bonjour le monde");
display.setFont(ArialMT_Plain_24);
display.drawString(0, 26, "Bonjour le monde");
}
annuler drawTextFlowDemo() {
display.setFont(ArialMT_Plain_10);
display.setTextAlignment(TEXT_ALIGN_LEFT);
display.drawStringMaxWidth(0, 0, 128,
"Lorem ipsumn dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore." );
}
annuler drawTextAlignmentDemo() {
// Démonstration d'alignement de texte
display.setFont(ArialMT_Plain_10);
// Les coordonnées définissent le point de départ gauche du texte
display.setTextAlignment(TEXT_ALIGN_LEFT);
display.drawString(0, 10, "Aligné à gauche (0,10)");
// Les coordonnées définissent le centre du texte
display.setTextAlignment(TEXT_ALIGN_CENTER);
display.drawString(64, 22, "Centré (64,22)");
// Les coordonnées définissent l'extrémité droite du texte
display.setTextAlignment(TEXT_ALIGN_RIGHT);
display.drawString(128, 33, "Aligné à droite (128,33)");
}
annuler drawRectDemo() {
// Dessine un pixel à une position donnée
pour (int i = 0; i < 10; i++) {
display.setPixel(je, je);
display.setPixel(10 - je, je);
}
display. drawRect(12, 12, 20, 20);
// Remplir le rectangle
display.fillRect(14, 14, 17, 17);
// Dessine une ligne horizontalement
display.drawHorizontalLine(0, 40, 20);
// Dessine une ligne horizontalement
display.drawVerticalLine(40, 0, 20);
}
annuler drawCircleDemo() {
pour (int i=1; i < 8; i++) {
display.setColor(BLANC);
display.drawCircle(32, 32, i*3);
si (je % 2 == 0) {
display.setColor(NOIR);
}
display.fillCircle(96, 32, 32 - i* 3);
}
}
annuler drawProgressBarDemo() {
int progression = (compteur / 5) % 100 ;
// dessine la barre de progression
display.drawProgressBar(0, 32, 120, 10, progression);
// dessine le pourcentage sous forme de chaîne
display.setTextAlignment(TEXT_ALIGN_CENTER);
display.drawString(64, 15, String(progression) + "%");
}
annuler drawImageDemo() {
// voir http://blog.squix.org/2015/05/esp8266-nodemcu-how-to-create-xbm.html
// comment créer des fichiers xbm
display.drawXbm(34, 14, WiFi_Logo_width, WiFi_Logo_height, WiFi_Logo_bits);
}
Démo démos [] = {drawFontFaceDemo, drawTextFlowDemo, drawTextAlignmentDemo, drawRectDemo, drawCircleDemo, drawProgressBarDemo, drawImageDemo};
int demoLength = (sizeof(demos) / sizeof(Demo));
long timeSinceLastModeSwitch = 0 ;
boucle vide () {
// efface l'affichage
display.clear();
// dessine la méthode de démonstration actuelle
démos[modedémo]();
display.setTextAlignment(TEXT_ALIGN_RIGHT);
display.drawString(10, 128, String(millis()));
// écrit le tampon à l'écran
display.display();
si (millis() - timeSinceLastModeSwitch > DEMO_DURATION) {
demoMode = (demoMode + 1) % demoLength ;
timeSinceLastModeSwitch = millis();
}
compteur++ ;
retard(10);
}
Méthode(s) de livraison | Temps de livraison | Informations de suivi |
---|