Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed-os-example-mbed5-lorawan
Fork of mbed-os-example-mbed5-lorawan by
Revision 23:3dfaed332d89, committed 2018-06-08
- Comitter:
- Ranyd04
- Date:
- Fri Jun 08 18:13:32 2018 +0000
- Parent:
- 22:a4fc83409028
- Commit message:
- Programme que vous m'avez demand?
Changed in this revision
--- a/DummySensor.h Wed Jun 06 08:30:19 2018 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-/**
- * Copyright (c) 2017, Arm Limited and affiliates.
- * SPDX-License-Identifier: Apache-2.0
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef MBED_LORAWAN_DUMMYSENSOR_H_
-#define MBED_LORAWAN_DUMMYSENSOR_H_
-
-/*
- * A dummy sensor for Mbed LoRa Test Application
- */
-class DS1820
-{
-public:
- DS1820(uint32_t) { value = 1.0; };
- bool begin() { return true; };
- void startConversion() {};
- float read() {
- value += 1.1;
- return value;
- }
-
-private:
- float value;
-};
-
-
-
-#endif /* MBED_LORAWAN_DUMMYSENSOR_H_ */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Sensors.cpp Fri Jun 08 18:13:32 2018 +0000
@@ -0,0 +1,55 @@
+#include "Sensors.h"
+#include "mbed.h"
+
+int SENSORS::current_sensor(){
+ float courant_mes;
+ int courant_lu;
+ DigitalOut alim_control(PA_10);
+ AnalogIn courant(PA_5);
+ alim_control = 1;
+ courant_mes = courant.read();
+ courant_lu = courant_mes * 250;
+ printf("courant = %f = %d mA\n", courant_mes,courant_lu);
+ return courant_lu;
+ }
+
+int SENSORS::transducer_sensor(){
+ float transducteur_volt;
+ int transducteur_pos;
+ AnalogIn transducteur(PA_2);
+ DigitalOut alim_control(PA_10);
+ DigitalOut control_trans(PB_5);
+ DigitalOut control_QSD(PA_9);
+ control_QSD = 1;
+ alim_control=1;
+ control_trans=1;
+ wait(2.0);
+ transducteur_volt = transducteur.read();
+ transducteur_pos = transducteur_volt;
+ return transducteur_pos;
+ }
+
+int SENSORS::vbat_sensor(){
+ float bat_mes;
+ int bat_lu;
+ AnalogIn tension_bat(PA_4);
+ int u_bat;
+ DigitalOut alim_control(PA_10);
+ DigitalOut control_trans(PB_5);
+ DigitalOut control_QSD(PA_9);
+ bat_mes = tension_bat.read();
+ DigitalOut led(PA_11);
+ bat_lu = bat_mes * 1800;
+ if(bat_lu<1700)
+ {
+ u_bat = 1;
+ led = 1;
+ }
+ else
+ {
+ u_bat = 0;
+ led = 0;
+ }
+ return u_bat;
+
+ }
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Sensors.h Fri Jun 08 18:13:32 2018 +0000
@@ -0,0 +1,16 @@
+#ifndef SENSORS_H
+#define SENSORS_H
+
+#include "mbed.h"
+
+class SENSORS{
+ public:
+ int current_sensor();
+ int transducer_sensor();
+ int vbat_sensor();
+ int temp_qsd_sensor();
+ int external_temp_sensor();
+ };
+
+#endif
+
\ No newline at end of file
--- a/main.cpp Wed Jun 06 08:30:19 2018 +0100
+++ b/main.cpp Fri Jun 08 18:13:32 2018 +0000
@@ -15,13 +15,15 @@
* limitations under the License.
*/
#include <stdio.h>
+#include "mbed.h"
+#include "Sensors.h"
+#include "qsd.h"
#include "lorawan/LoRaWANInterface.h"
#include "lorawan/system/lorawan_data_structures.h"
#include "events/EventQueue.h"
// Application helpers
-#include "DummySensor.h"
#include "trace_helper.h"
#include "lora_radio_helper.h"
@@ -58,7 +60,6 @@
/**
* Dummy sensor class object
*/
-DS1820 ds1820(PC_9);
/**
* This event queue is the global event queue for both the
@@ -90,8 +91,65 @@
/**
* Entry point for application
*/
+
+// Masque selection de bits
+#define MSK1 0xFF
+#define MSK2 0xFF00
+#define MSK3 0xFF0000
+#define MSK4 0xFF000000
+
+uint8_t MSGtosend[30];
+int pos, pos_1,pos_2;
+SENSORS capteur;
+QSD qsd;
+int QSD_value;
+int QSD_VAL1,QSD_VAL2,QSD_VAL3,QSD_VAL4;
+
+int courant , courant_1,courant_2 ;
+
+int tension_bat;
+
int main (void)
{
+ tension_bat = capteur.vbat_sensor();
+ MSGtosend[0]=0x07;
+ MSGtosend[1]=0x01;
+ MSGtosend[2]= tension_bat ;
+ /*
+ courant = capteur.current_sensor();
+ courant_1 = ((courant) & MSK1) >>0;
+ courant_2 = ((courant) & MSK2) >>8;
+ MSGtosend[0]=0x06;
+ MSGtosend[1]=0x02;
+ MSGtosend[2]=courant_2;
+ MSGtosend[3]=courant_1;
+ */
+
+ /*
+ pos = capteur.transducer_sensor();
+
+ pos_1 = (pos & MSK1) >>0;
+ pos_2 = (pos & MSK2) >>8;
+
+ MSGtosend[0]=0x04;
+ MSGtosend[1]=0x02;
+ MSGtosend[2]=0x00;
+ MSGtosend[3]=pos;
+ */
+ /*
+
+ QSD_value = qsd.read();
+ //printf("\r\n QSD Sensor Value = %d \r\n", QSD_value);
+ QSD_VAL1 = (QSD_value & MSK1)>>0;
+ QSD_VAL2 = (QSD_value & MSK2)>>8;
+ QSD_VAL3 = (QSD_value & MSK3)>>16;
+ QSD_VAL4 = (QSD_value & MSK4)>>24;
+ MSGtosend[0]=QSD_VAL4;
+ MSGtosend[1]=QSD_VAL3;
+ MSGtosend[2]=QSD_VAL2;
+ MSGtosend[3]=QSD_VAL1;
+ */
+
// setup tracing
setup_trace();
@@ -141,8 +199,10 @@
// make your event queue dispatching events forever
ev_queue.dispatch_forever();
+
+ return 0;
- return 0;
+
}
@@ -151,29 +211,17 @@
*/
static void send_message()
{
- uint16_t packet_len;
- int16_t retcode;
- float sensor_value;
+ uint8_t packet_len;
+ int8_t retcode;
- if (ds1820.begin()) {
- ds1820.startConversion();
- sensor_value = ds1820.read();
- printf("\r\n Dummy Sensor Value = %3.1f \r\n", sensor_value);
- ds1820.startConversion();
- } else {
- printf("\r\n No sensor found \r\n");
- return;
- }
+ packet_len = 4;
- packet_len = sprintf((char*) tx_buffer, "Dummy Sensor Value is %3.1f",
- sensor_value);
-
- retcode = lorawan.send(MBED_CONF_LORA_APP_PORT, tx_buffer, packet_len,
+ retcode = lorawan.send(MBED_CONF_LORA_APP_PORT, MSGtosend, packet_len,
MSG_CONFIRMED_FLAG);
if (retcode < 0) {
retcode == LORAWAN_STATUS_WOULD_BLOCK ? printf("send - WOULD BLOCK\r\n")
- : printf("\r\n send() - Error code %d \r\n", retcode);
+ : printf("\r\n send() - Error code %d \r\n", retcode);
return;
}
@@ -184,6 +232,7 @@
/**
* Receive a message from the Network Server
*/
+ /*
static void receive_message()
{
int16_t retcode;
@@ -206,13 +255,14 @@
memset(rx_buffer, 0, sizeof(rx_buffer));
}
-
+*/
/**
* Event handler
*/
static void lora_event_handler(lorawan_event_t event)
{
- switch (event) {
+ switch (event)
+ {
case CONNECTED:
printf("\r\n Connection - Successful \r\n");
if (MBED_CONF_LORA_DUTY_CYCLE_ON) {
@@ -222,40 +272,13 @@
}
break;
- case DISCONNECTED:
- ev_queue.break_dispatch();
- printf("\r\n Disconnected Successfully \r\n");
- break;
case TX_DONE:
printf("\r\n Message Sent to Network Server \r\n");
if (MBED_CONF_LORA_DUTY_CYCLE_ON) {
- send_message();
- }
- break;
- case TX_TIMEOUT:
- case TX_ERROR:
- case TX_CRYPTO_ERROR:
- case TX_SCHEDULING_ERROR:
- printf("\r\n Transmission Error - EventCode = %d \r\n", event);
- // try again
- if (MBED_CONF_LORA_DUTY_CYCLE_ON) {
- send_message();
- }
- break;
- case RX_DONE:
- printf("\r\n Received message from Network Server \r\n");
- receive_message();
- break;
- case RX_TIMEOUT:
- case RX_ERROR:
- printf("\r\n Error in reception - Code = %d \r\n", event);
- break;
- case JOIN_FAILURE:
- printf("\r\n OTAA Failed - Check Keys \r\n");
- break;
- default:
- MBED_ASSERT("Unknown Event");
- }
+ ev_queue.break_dispatch();
+ //timer.reset();
+ }
+ }
+
}
-
// EOF
--- a/mbed-lora-radio-drv.lib Wed Jun 06 08:30:19 2018 +0100 +++ b/mbed-lora-radio-drv.lib Fri Jun 08 18:13:32 2018 +0000 @@ -1,1 +1,1 @@ -https://github.com/ARMmbed/mbed-semtech-lora-rf-drivers#c4dd25eec9ae30f9532e498ea7e2cacd758c733e +https://github.com/ARMmbed/mbed-semtech-lora-rf-drivers/#c4dd25eec9ae30f9532e498ea7e2cacd758c733e
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed-os-example-lorawan.lib Fri Jun 08 18:13:32 2018 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/teams/mbed-os-examples/code/mbed-os-example-lorawan/#a4fc83409028
--- a/mbed_app.json Wed Jun 06 08:30:19 2018 +0100
+++ b/mbed_app.json Fri Jun 08 18:13:32 2018 +0000
@@ -33,9 +33,9 @@
"lora.over-the-air-activation": true,
"lora.duty-cycle-on": true,
"lora.phy": 0,
- "lora.device-eui": "{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }",
- "lora.application-eui": "{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }",
- "lora.application-key": "{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }"
+ "lora.device-eui": "{ 0x07, 0x98, 0x40, 0x40, 0x76, 0x07, 0x98, 0x40 }",
+ "lora.application-eui": "{ 0x70, 0xB3, 0xD5, 0x7E, 0xD0, 0x00, 0xC0, 0x1A }",
+ "lora.application-key": "{ 0x01, 0x29, 0x7E, 0x14, 0x4A, 0x8E, 0x55, 0xAD, 0x3D, 0xF3, 0x5F, 0x5A, 0x63, 0x3B, 0x9B, 0x31 }"
},
"K64F": {
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qsd.cpp Fri Jun 08 18:13:32 2018 +0000
@@ -0,0 +1,29 @@
+
+#include "qsd.h"
+
+int QSD::read(void){
+ int test = 0;
+ DigitalOut alim_control(PA_10);
+ DigitalOut control_trans(PB_5);
+ DigitalOut control_QSD(PA_9);
+ alim_control = 1;
+ control_trans=0;
+ control_QSD=0;
+ wait(2.0);
+ cs->write(0);
+ test |= spi->write(0x00);
+ test |= spi->write(0x00) << 8;
+ test |= spi->write(0x00) << 16;
+ test |= spi->write(0x00) << 24;
+ cs->write(1);
+ control_QSD=1;
+ return test;
+ }
+
+QSD::QSD(){
+ spi = new SPI(PB_15, PB_14 ,PB_13);
+ cs = new DigitalOut(PB_12);
+ spi->format(8, 0);
+ spi->frequency(1000000);
+ cs->write(1);
+ };
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qsd.h Fri Jun 08 18:13:32 2018 +0000
@@ -0,0 +1,17 @@
+
+#ifndef QSD_H
+#define QSD_H
+
+#include "mbed.h"
+
+class QSD{
+ public:
+ SPI *spi;
+ DigitalOut *cs;
+ QSD();
+
+ int read(void);
+
+};
+
+#endif
\ No newline at end of file
