{"id":821,"date":"2021-02-10T19:19:43","date_gmt":"2021-02-10T18:19:43","guid":{"rendered":"http:\/\/anthony.lepors.fr\/raspi-thermo-cam\/?page_id=821"},"modified":"2021-05-06T15:49:14","modified_gmt":"2021-05-06T13:49:14","slug":"controle-led-java","status":"publish","type":"page","link":"https:\/\/anthony.lepors.fr\/raspi-thermo-cam\/controle-led-java\/","title":{"rendered":"Contr\u00f4le du GPIO : Led en Java"},"content":{"rendered":"<p>[et_pb_section fb_built=\u00a0\u00bb1&Prime; _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb][et_pb_row _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb][et_pb_column type=\u00a0\u00bb4_4&Prime; _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb][et_pb_text _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb hover_enabled=\u00a0\u00bb0&Prime; sticky_enabled=\u00a0\u00bb0&Prime;]<\/p>\n<div id=\"comp-kkheoqox\" class=\"_1Z_nJ\" data-testid=\"richTextElement\">\n<h1 class=\"font_2\"><span>Contr\u00f4le d&rsquo;une LED sur un Raspberry avec le GPIO en Java<\/span><\/h1>\n<\/div>\n<div id=\"comp-kkhf3zsp\" class=\"_1Z_nJ\" data-testid=\"richTextElement\">\n<p class=\"font_7\"><span class=\"wixGuard\">\u200b<\/span>Le but final de cette partie de projet est de d\u00e9velopper une interface Java pour piloter un robot. Apr\u00e8s avoir fait le n\u00e9cessaire au niveau des installations sur le Raspberry (<a href=\"https:\/\/anthony.lepors.fr\/raspi-thermo-cam\/raspberry-installation-pi4j\/\">voir page ici<\/a>) et sur le PC Windows (<a href=\"https:\/\/anthony.lepors.fr\/raspi-thermo-cam\/developpement-java-eclipse\/\">voir page pr\u00e9c\u00e9dente<\/a>), nous pouvons maintenant faire un premier test en essayant de contr\u00f4ler en Java une LED qui est branch\u00e9e au Raspberry sur un port GPIO.<\/p>\n<p class=\"font_7\"><span class=\"wixGuard\">\u200b<\/span>Ce premier test nous familiarisera avec les notions principales que nous allons aborder dans ce projet.<\/p>\n<h2 class=\"font_7\">Montage de la LED sur le GPIO du Raspberry<\/h2>\n<p class=\"font_7\"><span class=\"wixGuard\">\u200b<\/span>Nous allons donc dans un premier temps faire le montage d&rsquo;une LED sur un Raspberry. Nous avons utilis\u00e9 une LED branch\u00e9e sur le port #18 du GPIO (pin num\u00e9ro 12) avec une r\u00e9sistance de 330 Ohms entre la patte la plus longue de la LED et le Raspberry. La patte la plus courte de la LED est branch\u00e9e sur la masse du Raspberry (GND : Ground). Le port GPIO du Raspberry est reli\u00e9 \u00e0 la platine d&rsquo;essai par une nappe.<\/p>\n<\/div>\n<p>[\/et_pb_text][et_pb_image src=\u00a0\u00bbhttps:\/\/anthony.lepors.fr\/raspi-thermo-cam\/wp-content\/uploads\/2021\/02\/montage-led-raspberry-scaled.jpg\u00a0\u00bb alt=\u00a0\u00bbMontage d&rsquo;une LED sur une platine\u00a0\u00bb title_text=\u00a0\u00bbMontage d&rsquo;une LED sur une platine\u00a0\u00bb show_in_lightbox=\u00a0\u00bbon\u00a0\u00bb align=\u00a0\u00bbcenter\u00a0\u00bb _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb width=\u00a0\u00bb30%\u00a0\u00bb box_shadow_style=\u00a0\u00bbpreset1&Prime;][\/et_pb_image][et_pb_text _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb]<\/p>\n<p><span>Il faudra faire attention lors de la d\u00e9claration de cette LED notamment dans la nomenclature utilis\u00e9e pour les pins du GPIO. En Java, nous utilisons les librairies WiringPi. Le nom des ports GPIO est donc sp\u00e9cial \u00e0 cette librairie. La correspondance est obtenue sur le lien suivant \u00ab\u00a0<\/span><a href=\"https:\/\/pi4j.com\/1.2\/pins\/model-3b-rev1.html\" target=\"_blank\" rel=\"nofollow noopener\"><span class=\"color_19\"><span><object height=\"0\"><a data-auto-recognition=\"true\" href=\"https:\/\/pi4j.com\/1.2\/pins\/model-3b-rev1.html\" target=\"_blank\" rel=\"noopener\">https:\/\/pi4j.com\/1.2\/pins\/model-3b-rev1.html<\/a><\/object><\/span><\/span><\/a>\u00a0<span>\u00bb<\/span><span>.<\/span><\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=\u00a0\u00bb3_5,2_5&Prime; _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb custom_padding=\u00a0\u00bb0px||||false|false\u00a0\u00bb][et_pb_column type=\u00a0\u00bb3_5&Prime; _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb][et_pb_image src=\u00a0\u00bbhttps:\/\/anthony.lepors.fr\/raspi-thermo-cam\/wp-content\/uploads\/2021\/02\/GPIO-header.png\u00a0\u00bb alt=\u00a0\u00bbPorts GPIO du Raspberry\u00a0\u00bb title_text=\u00a0\u00bbPorts GPIO du Raspberry\u00a0\u00bb show_in_lightbox=\u00a0\u00bbon\u00a0\u00bb align=\u00a0\u00bbcenter\u00a0\u00bb _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb custom_margin=\u00a0\u00bb55px||||false|false\u00a0\u00bb box_shadow_style=\u00a0\u00bbpreset1&Prime;][\/et_pb_image][\/et_pb_column][et_pb_column type=\u00a0\u00bb2_5&Prime; _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb][et_pb_image src=\u00a0\u00bbhttps:\/\/anthony.lepors.fr\/raspi-thermo-cam\/wp-content\/uploads\/2021\/02\/gpio-header-wiringpi.png\u00a0\u00bb alt=\u00a0\u00bbCorrespondance du num\u00e9ro des ports en WiringPi\u00a0\u00bb title_text=\u00a0\u00bbCorrespondance du num\u00e9ro des ports en WiringPi\u00a0\u00bb show_in_lightbox=\u00a0\u00bbon\u00a0\u00bb align=\u00a0\u00bbcenter\u00a0\u00bb _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb width=\u00a0\u00bb65%\u00a0\u00bb box_shadow_style=\u00a0\u00bbpreset1&Prime;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb custom_padding=\u00a0\u00bb0px||||false|false\u00a0\u00bb][et_pb_column type=\u00a0\u00bb4_4&Prime; _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb][et_pb_text _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb]<\/p>\n<p class=\"font_7\">Par exemple, la LED est branch\u00e9e sur la pin num\u00e9ro 12, elle est marqu\u00e9e d&rsquo;un #18 (GPIO 18 (PCM_CLK)) sur notre T qui relie la platine \u00e0 la nappe mais elle correspond au port num\u00e9ro 01 de la librairie WiringPi.<\/p>\n<h2 class=\"font_7\">Code en Java selon la m\u00e9thode MVC pour controler le GPIO du Raspberry<\/h2>\n<p class=\"font_7\"><span class=\"wixGuard\">\u200b<\/span>Afin de commencer \u00e0 coder, nous avons cr\u00e9\u00e9 un projet \u00ab\u00a0TestGPIOLibrairies\u00a0\u00bb sur Eclipse. Nous y avons ajout\u00e9 un package nomm\u00e9 \u00ab\u00a0mvcRobot\u00a0\u00bb. Ensuite, nous cr\u00e9ons 4 classes selon la m\u00e9thode MVC (<a href=\"https:\/\/anthony.lepors.fr\/raspi-thermo-cam\/developpement-java-eclipse\/\">voir page pr\u00e9c\u00e9dente<\/a>) :<\/p>\n<ul class=\"font_7\">\n<li>\n<p class=\"font_7\">AppInterfaceLED.java<\/p>\n<\/li>\n<li>\n<p class=\"font_7\">Controller.java<\/p>\n<\/li>\n<li>\n<p class=\"font_7\">Robot.java<\/p>\n<\/li>\n<li>\n<p class=\"font_7\">View.java<\/p>\n<\/li>\n<\/ul>\n<p class=\"font_7\">\u00a0Ces 4 fichiers sont t\u00e9l\u00e9chargeables ci-dessous. L&rsquo;archive contient les 4 fichiers au format java.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=\u00a0\u00bb1_4,1_2,1_4&Prime; use_custom_gutter=\u00a0\u00bbon\u00a0\u00bb gutter_width=\u00a0\u00bb4&Prime; make_equal=\u00a0\u00bbon\u00a0\u00bb _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb custom_margin=\u00a0\u00bb5px||5px||false|false\u00a0\u00bb custom_padding=\u00a0\u00bb5px||5px||false|false\u00a0\u00bb border_width_all=\u00a0\u00bb2px\u00a0\u00bb box_shadow_style=\u00a0\u00bbpreset1&Prime;][et_pb_column type=\u00a0\u00bb1_4&Prime; _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb][et_pb_image src=\u00a0\u00bbhttps:\/\/anthony.lepors.fr\/raspi-thermo-cam\/wp-content\/uploads\/2021\/02\/logo-zip.jpg\u00a0\u00bb title_text=\u00a0\u00bblogo_zip\u00a0\u00bb align=\u00a0\u00bbcenter\u00a0\u00bb _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb module_alignment=\u00a0\u00bbcenter\u00a0\u00bb max_height=\u00a0\u00bb81px\u00a0\u00bb custom_margin=\u00a0\u00bb0px||0px||false|false\u00a0\u00bb custom_padding=\u00a0\u00bb0px||0px||false|false\u00a0\u00bb][\/et_pb_image][\/et_pb_column][et_pb_column type=\u00a0\u00bb1_2&Prime; _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb][et_pb_blurb title=\u00a0\u00bbmvcRobot\u00a0\u00bb use_icon=\u00a0\u00bbon\u00a0\u00bb font_icon=\u00a0\u00bb%%272%%\u00a0\u00bb icon_placement=\u00a0\u00bbleft\u00a0\u00bb use_icon_font_size=\u00a0\u00bbon\u00a0\u00bb icon_font_size=\u00a0\u00bb48px\u00a0\u00bb _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb header_font=\u00a0\u00bbOpen Sans||||||||\u00a0\u00bb body_font=\u00a0\u00bbOpen Sans||||||||\u00a0\u00bb body_text_align=\u00a0\u00bbleft\u00a0\u00bb custom_padding=\u00a0\u00bb15px||15px||false|false\u00a0\u00bb]<\/p>\n<p>4 files\u00a0 \u00a0 \u00a02.44 KB\u00a0 \u00a0 \u00a029\/01\/2021<\/p>\n<p>[\/et_pb_blurb][\/et_pb_column][et_pb_column type=\u00a0\u00bb1_4&Prime; _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb][et_pb_button button_url=\u00a0\u00bbhttps:\/\/anthony.lepors.fr\/raspi-thermo-cam\/wp-content\/uploads\/2021\/02\/mvcRobot.zip\u00a0\u00bb button_text=\u00a0\u00bbDOWNLOAD\u00a0\u00bb button_alignment=\u00a0\u00bbleft\u00a0\u00bb _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb custom_button=\u00a0\u00bbon\u00a0\u00bb button_text_color=\u00a0\u00bb#FFFFFF\u00a0\u00bb button_bg_color=\u00a0\u00bb#ff8080&Prime; button_border_color=\u00a0\u00bb#FFFFFF\u00a0\u00bb button_font=\u00a0\u00bbOpen Sans||||||||\u00a0\u00bb button_icon=\u00a0\u00bb%%209%%\u00a0\u00bb button_icon_color=\u00a0\u00bb#FFFFFF\u00a0\u00bb position_origin_a=\u00a0\u00bbcenter_left\u00a0\u00bb custom_margin=\u00a0\u00bb15px||15px||false|false\u00a0\u00bb][\/et_pb_button][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb][et_pb_column type=\u00a0\u00bb4_4&Prime; _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb][et_pb_text _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb]<\/p>\n<p>Nous commen\u00e7ons le d\u00e9veloppement par la cr\u00e9ation de l&rsquo;interface. Elle est facilit\u00e9e par l&rsquo;utilisation de l&rsquo;extension WindowBuilder que nous avons install\u00e9 sur Eclipse \u00e0 partir du lien suivant \u00a0\u00bb <a href=\"https:\/\/www.eclipse.org\/windowbuilder\/download.php\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.eclipse.org\/windowbuilder\/download.php<\/a>\u00a0<span>\u00bb<\/span>.<\/p>\n<p>[\/et_pb_text][et_pb_image src=\u00a0\u00bbhttps:\/\/anthony.lepors.fr\/raspi-thermo-cam\/wp-content\/uploads\/2021\/02\/interface-swing-led.png\u00a0\u00bb alt=\u00a0\u00bbInterface d\u00e9velopp\u00e9e avec les librairies Java Swing\u00a0\u00bb title_text=\u00a0\u00bbInterface d\u00e9velopp\u00e9e avec les librairies Java Swing\u00a0\u00bb show_in_lightbox=\u00a0\u00bbon\u00a0\u00bb align=\u00a0\u00bbcenter\u00a0\u00bb _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb box_shadow_style=\u00a0\u00bbpreset1&Prime;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row use_custom_gutter=\u00a0\u00bbon\u00a0\u00bb gutter_width=\u00a0\u00bb1&Prime; _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb custom_margin=\u00a0\u00bb5px||5px||false|false\u00a0\u00bb custom_padding=\u00a0\u00bb0px||0px||false|false\u00a0\u00bb border_width_all=\u00a0\u00bb2px\u00a0\u00bb box_shadow_style=\u00a0\u00bbpreset1&Prime;][et_pb_column type=\u00a0\u00bb4_4&Prime; _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb][et_pb_blurb title=\u00a0\u00bbJava\u00a0\u00bb use_icon=\u00a0\u00bbon\u00a0\u00bb font_icon=\u00a0\u00bb%%209%%\u00a0\u00bb icon_placement=\u00a0\u00bbleft\u00a0\u00bb use_icon_font_size=\u00a0\u00bbon\u00a0\u00bb icon_font_size=\u00a0\u00bb20px\u00a0\u00bb _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb header_text_color=\u00a0\u00bb#FFFFFF\u00a0\u00bb header_font_size=\u00a0\u00bb16px\u00a0\u00bb header_line_height=\u00a0\u00bb1.3em\u00a0\u00bb background_color=\u00a0\u00bb#000000&Prime; width=\u00a0\u00bb100px\u00a0\u00bb max_width=\u00a0\u00bb100px\u00a0\u00bb custom_margin=\u00a0\u00bb||-42px||false|false\u00a0\u00bb custom_padding=\u00a0\u00bb10px|15px|2px|15px|false|false\u00a0\u00bb][\/et_pb_blurb][et_pb_text _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb text_text_color=\u00a0\u00bb#000000&Prime; background_color=\u00a0\u00bb#eff0f1&Prime; custom_margin=\u00a0\u00bb|||110px|false|false\u00a0\u00bb custom_padding=\u00a0\u00bb1%|1%|1%|1%|false|false\u00a0\u00bb border_width_top=\u00a0\u00bb10px\u00a0\u00bb border_color_top=\u00a0\u00bb#ff8080&Prime;][crayon lang=\u00a0\u00bbjava\u00a0\u00bb theme=\u00a0\u00bbclassic\u00a0\u00bb title=\u00a0\u00bbView.java\u00a0\u00bb]<\/p>\n<p>package mvcRobot;<\/p>\n<p>import javax.swing.JFrame;<br \/>\nimport javax.swing.JPanel;<br \/>\nimport javax.swing.border.EmptyBorder;<br \/>\nimport javax.swing.JButton;<br \/>\nimport javax.swing.JLabel;<br \/>\nimport javax.swing.SwingConstants;<br \/>\nimport java.awt.BorderLayout;<br \/>\nimport java.awt.Dimension;<\/p>\n<p>\u200bpublic class View {<\/p>\n<p>   \/\/ View utilise Swing pour afficher interface utilisateur<\/p>\n<p>   \/\/ d\u00e9finit les attributs : les composants de l&rsquo;inteface<br \/>\n   private JFrame frame; \/\/ fenetre<br \/>\n   private JPanel contentPane; \/\/ panneau<br \/>\n   private JButton btnAllumerLed; \/\/ bouton<br \/>\n   private JButton btnEteindreLed; \/\/ bouton<br \/>\n   private JButton btnResetGPIO; \/\/ bouton<br \/>\n   private JLabel lblTexteTitre; \/\/ Champ de texte<\/p>\n<p>     \/\/ Instanciation : constructeur de View<br \/>\n   public View(String title) {<\/p>\n<p>       \/\/ param\u00e9trage de la fenetre<br \/>\n       frame = new JFrame(title);<br \/>\n       frame.setResizable(true);<br \/>\n       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);<br \/>\n       frame.setBounds(1000, 350, 350, 300);<br \/>\n       frame.setVisible(true);<\/p>\n<p>        \/\/ param\u00e9trage du panneau<br \/>\n       contentPane = new JPanel();<br \/>\n       frame.getContentPane().add(contentPane);<br \/>\n       contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));<br \/>\n       setContentPane(contentPane);<\/p>\n<p>        \/\/ ajout des elements au panneau<br \/>\n       btnAllumerLed = new JButton(\u00ab\u00a0Allumer\u00a0\u00bb);<br \/>\n       btnEteindreLed = new JButton(\u00ab\u00a0Eteindre\u00a0\u00bb);<br \/>\n       btnResetGPIO = new JButton(\u00ab\u00a0Reset des ports GPIO\u00a0\u00bb);<br \/>\n       lblTexteTitre = new JLabel(\u00ab\u00a0Branchez une LED sur le port #18 du GPIO\u00a0\u00bb);<br \/>\n       lblTexteTitre.setPreferredSize(new Dimension(384, 50));<br \/>\n       lblTexteTitre.setHorizontalAlignment(SwingConstants.CENTER);<br \/>\n       contentPane.setLayout(new BorderLayout(0, 0));<br \/>\n       contentPane.add(btnAllumerLed, BorderLayout.WEST);<br \/>\n       contentPane.add(btnEteindreLed, BorderLayout.EAST);<br \/>\n       contentPane.add(btnResetGPIO, BorderLayout.SOUTH);<br \/>\n       contentPane.add(lblTexteTitre, BorderLayout.NORTH);<br \/>\n   }<\/p>\n<p>   \/\/ methodes<br \/>\n   \/\/ on g\u00e9n\u00e8re les getters et les setters pour chaque \u00e9l\u00e9ment<br \/>\n   \/\/ getter permet de recuperer un element private avec une methode publique<\/p>\n<p>   public JFrame getFrame() {<br \/>\n       return frame;<br \/>\n   }<\/p>\n<p>   public JPanel getContentPane() {<br \/>\n       return contentPane;<br \/>\n   }<\/p>\n<p>   public void setContentPane(JPanel contentPane) {<br \/>\n       this.contentPane = contentPane;<br \/>\n   }<\/p>\n<p>   public JButton getBtnAllumerLed() {<br \/>\n       return btnAllumerLed;<br \/>\n   }<\/p>\n<p>   public JButton getBtnEteindreLed() {<br \/>\n       return btnEteindreLed;<br \/>\n   }<\/p>\n<p>   public JButton getBtnResetGPIO() {<br \/>\n       return btnResetGPIO;<br \/>\n   }<\/p>\n<p>   public JLabel getLblTexteTitre() {<br \/>\n       return lblTexteTitre;<br \/>\n   }<br \/>\n}<\/p>\n<p>[\/crayon][\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb][et_pb_column type=\u00a0\u00bb4_4&Prime; _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb][et_pb_text _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb]<\/p>\n<p class=\"font_7\"><span class=\"wixGuard\">\u200b<\/span>Ensuite, nous passons \u00e0 la classe Robot. Elle sera ici notamment constitu\u00e9e des attributs gpio et led18.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row use_custom_gutter=\u00a0\u00bbon\u00a0\u00bb gutter_width=\u00a0\u00bb1&Prime; _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb custom_margin=\u00a0\u00bb5px||5px||false|false\u00a0\u00bb custom_padding=\u00a0\u00bb0px||0px||false|false\u00a0\u00bb border_width_all=\u00a0\u00bb2px\u00a0\u00bb box_shadow_style=\u00a0\u00bbpreset1&Prime;][et_pb_column type=\u00a0\u00bb4_4&Prime; _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb][et_pb_blurb title=\u00a0\u00bbJava\u00a0\u00bb use_icon=\u00a0\u00bbon\u00a0\u00bb font_icon=\u00a0\u00bb%%209%%\u00a0\u00bb icon_placement=\u00a0\u00bbleft\u00a0\u00bb use_icon_font_size=\u00a0\u00bbon\u00a0\u00bb icon_font_size=\u00a0\u00bb20px\u00a0\u00bb _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb header_text_color=\u00a0\u00bb#FFFFFF\u00a0\u00bb header_font_size=\u00a0\u00bb16px\u00a0\u00bb header_line_height=\u00a0\u00bb1.3em\u00a0\u00bb background_color=\u00a0\u00bb#000000&Prime; width=\u00a0\u00bb100px\u00a0\u00bb max_width=\u00a0\u00bb100px\u00a0\u00bb custom_margin=\u00a0\u00bb||-42px||false|false\u00a0\u00bb custom_padding=\u00a0\u00bb10px|15px|2px|15px|false|false\u00a0\u00bb][\/et_pb_blurb][et_pb_text _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb text_text_color=\u00a0\u00bb#000000&Prime; background_color=\u00a0\u00bb#eff0f1&Prime; custom_margin=\u00a0\u00bb|||110px|false|false\u00a0\u00bb custom_padding=\u00a0\u00bb1%|1%|1%|1%|false|false\u00a0\u00bb border_width_top=\u00a0\u00bb10px\u00a0\u00bb border_color_top=\u00a0\u00bb#ff8080&Prime;][crayon lang=\u00a0\u00bbjava\u00a0\u00bb theme=\u00a0\u00bbclassic\u00a0\u00bb title=\u00a0\u00bbRobot.java\u00a0\u00bb]<\/p>\n<p>package mvcRobot;<\/p>\n<p>import com.pi4j.io.gpio.*;<\/p>\n<p>public class Robot {<br \/>\n   \/\/ attributs : elements du robot<br \/>\n   private GpioController gpio;<br \/>\n   private GpioPinDigitalOutput led18;<\/p>\n<p>   \/\/ constructeur du robot<br \/>\n   public Robot(){<br \/>\n       this.gpio = GpioFactory.getInstance();<br \/>\n       this.led18 = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_01);<br \/>\n   }<\/p>\n<p>   \/\/ m\u00e9thodes<br \/>\n   public void allumerLed(GpioPinDigitalOutput led) {<br \/>\n       led.high();<br \/>\n   }<\/p>\n<p>   public void eteindreLed(GpioPinDigitalOutput led) {<br \/>\n       led.low();<br \/>\n   }<\/p>\n<p>   public void resetGPIO() {<br \/>\n       gpio.shutdown();<br \/>\n       gpio.setState(false, led18);<br \/>\n   }<\/p>\n<p>     public GpioPinDigitalOutput getLed18() {<br \/>\n       return led18;<br \/>\n   }<br \/>\n}<\/p>\n<p>[\/crayon][\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb][et_pb_column type=\u00a0\u00bb4_4&Prime; _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb][et_pb_text _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb]<\/p>\n<p class=\"font_7\"><span>Il s&rsquo;en suit la cr\u00e9ation classe Controller qui met en forme les actions sur les boutons par exemple.<\/span><\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row use_custom_gutter=\u00a0\u00bbon\u00a0\u00bb gutter_width=\u00a0\u00bb1&Prime; _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb custom_margin=\u00a0\u00bb5px||5px||false|false\u00a0\u00bb custom_padding=\u00a0\u00bb0px||0px||false|false\u00a0\u00bb border_width_all=\u00a0\u00bb2px\u00a0\u00bb box_shadow_style=\u00a0\u00bbpreset1&Prime;][et_pb_column type=\u00a0\u00bb4_4&Prime; _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb][et_pb_blurb title=\u00a0\u00bbJava\u00a0\u00bb use_icon=\u00a0\u00bbon\u00a0\u00bb font_icon=\u00a0\u00bb%%209%%\u00a0\u00bb icon_placement=\u00a0\u00bbleft\u00a0\u00bb use_icon_font_size=\u00a0\u00bbon\u00a0\u00bb icon_font_size=\u00a0\u00bb20px\u00a0\u00bb _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb header_text_color=\u00a0\u00bb#FFFFFF\u00a0\u00bb header_font_size=\u00a0\u00bb16px\u00a0\u00bb header_line_height=\u00a0\u00bb1.3em\u00a0\u00bb background_color=\u00a0\u00bb#000000&Prime; width=\u00a0\u00bb100px\u00a0\u00bb max_width=\u00a0\u00bb100px\u00a0\u00bb custom_margin=\u00a0\u00bb||-42px||false|false\u00a0\u00bb custom_padding=\u00a0\u00bb10px|15px|2px|15px|false|false\u00a0\u00bb][\/et_pb_blurb][et_pb_text _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb text_text_color=\u00a0\u00bb#000000&Prime; background_color=\u00a0\u00bb#eff0f1&Prime; custom_margin=\u00a0\u00bb|||110px|false|false\u00a0\u00bb custom_padding=\u00a0\u00bb1%|1%|1%|1%|false|false\u00a0\u00bb border_width_top=\u00a0\u00bb10px\u00a0\u00bb border_color_top=\u00a0\u00bb#ff8080&Prime;][crayon lang=\u00a0\u00bbjava\u00a0\u00bb theme=\u00a0\u00bbclassic\u00a0\u00bb title=\u00a0\u00bbController.java\u00a0\u00bb]<\/p>\n<p>package mvcRobot;<\/p>\n<p>public class Controller {<br \/>\n   \/\/ attributs<br \/>\n   private View view;<br \/>\n   private Robot robot;<\/p>\n<p>   \/\/ constructeur<br \/>\n   public Controller(View v, Robot r) {<br \/>\n       view = v;<br \/>\n       robot = r;<br \/>\n   }<\/p>\n<p>\u200b   \/\/ methodes<br \/>\n   \/\/ action des boutons<br \/>\n   public void initController() {<br \/>\n       view.getBtnResetGPIO().addActionListener(event -> robot.resetGPIO());<br \/>\n       view.getBtnAllumerLed().addActionListener(event -> robot.allumerLed(robot.getLed18()));<br \/>\n       view.getBtnEteindreLed().addActionListener(event -> robot.eteindreLed(robot.getLed18()));<br \/>\n   }<br \/>\n}<\/p>\n<p>[\/crayon][\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb][et_pb_column type=\u00a0\u00bb4_4&Prime; _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb][et_pb_text _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb]<\/p>\n<p><span>Enfin, tout cela est coordonn\u00e9 dans un main.<\/span><\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row use_custom_gutter=\u00a0\u00bbon\u00a0\u00bb gutter_width=\u00a0\u00bb1&Prime; _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb custom_margin=\u00a0\u00bb5px||5px||false|false\u00a0\u00bb custom_padding=\u00a0\u00bb0px||0px||false|false\u00a0\u00bb border_width_all=\u00a0\u00bb2px\u00a0\u00bb box_shadow_style=\u00a0\u00bbpreset1&Prime;][et_pb_column type=\u00a0\u00bb4_4&Prime; _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb][et_pb_blurb title=\u00a0\u00bbJava\u00a0\u00bb use_icon=\u00a0\u00bbon\u00a0\u00bb font_icon=\u00a0\u00bb%%209%%\u00a0\u00bb icon_placement=\u00a0\u00bbleft\u00a0\u00bb use_icon_font_size=\u00a0\u00bbon\u00a0\u00bb icon_font_size=\u00a0\u00bb20px\u00a0\u00bb _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb header_text_color=\u00a0\u00bb#FFFFFF\u00a0\u00bb header_font_size=\u00a0\u00bb16px\u00a0\u00bb header_line_height=\u00a0\u00bb1.3em\u00a0\u00bb background_color=\u00a0\u00bb#000000&Prime; width=\u00a0\u00bb100px\u00a0\u00bb max_width=\u00a0\u00bb100px\u00a0\u00bb custom_margin=\u00a0\u00bb||-42px||false|false\u00a0\u00bb custom_padding=\u00a0\u00bb10px|15px|2px|15px|false|false\u00a0\u00bb][\/et_pb_blurb][et_pb_text _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb text_text_color=\u00a0\u00bb#000000&Prime; background_color=\u00a0\u00bb#eff0f1&Prime; custom_margin=\u00a0\u00bb|||110px|false|false\u00a0\u00bb custom_padding=\u00a0\u00bb1%|1%|1%|1%|false|false\u00a0\u00bb border_width_top=\u00a0\u00bb10px\u00a0\u00bb border_color_top=\u00a0\u00bb#ff8080&Prime;][crayon lang=\u00a0\u00bbjava\u00a0\u00bb theme=\u00a0\u00bbclassic\u00a0\u00bb title=\u00a0\u00bbAppInterfaceLED.java\u00a0\u00bb]<\/p>\n<p>package mvcRobot;<\/p>\n<p>public class AppInterfaceLED {<\/p>\n<p>   public static void main(String[] args) {<br \/>\n       \/\/ on assemble les pi\u00e8ces de la m\u00e9thode MVC, ici RVC<br \/>\n       View fenetreInterface = new View(\u00ab\u00a0Interface de contr\u00f4le d&rsquo;une LED avec GPIO en Java\u00a0\u00bb);<br \/>\n       Robot raspiThermoCam = new Robot();<br \/>\n       Controller controlActions = new Controller(fenetreInterface, raspiThermoCam);<br \/>\n       controlActions.initController();<br \/>\n   }<br \/>\n}<\/p>\n<p>[\/crayon][\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb][et_pb_column type=\u00a0\u00bb4_4&Prime; _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb][et_pb_text _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb]<\/p>\n<h2 class=\"font_7\">Compilation et ex\u00e9cution du code Java<\/h2>\n<p class=\"font_7\">Maintenant, nous compilons le main sur Eclipse en l&rsquo;ex\u00e9cutant, toujours sur le PC Windows. Evidemment, des erreurs apparaissent parce que ce fichier ne peut pas s&rsquo;ex\u00e9cuter sur Windows sans les ports GPIO. Mais ce package apparait cette-fois dans le r\u00e9pertoire \/bin du projet. En effet, les fichiers \u00ab\u00a0.class\u00a0\u00bb compil\u00e9s sont ajout\u00e9s dans ce r\u00e9pertoire. Avec WinSCP, nous transf\u00e9rons le dossier du package compil\u00e9 sur le Raspberry. Il ne nous reste plus qu&rsquo;\u00e0 lancer le programme avec la commande suivante :<\/p>\n<p>[\/et_pb_text][et_pb_image src=\u00a0\u00bbhttps:\/\/anthony.lepors.fr\/raspi-thermo-cam\/wp-content\/uploads\/2021\/02\/executer-package-java.png\u00a0\u00bb alt=\u00a0\u00bbExecution de notre programme %22Controle d&rsquo;une LED%22&Prime; title_text=\u00a0\u00bbExecution de notre programme %22Controle d&rsquo;une LED%22&Prime; _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row use_custom_gutter=\u00a0\u00bbon\u00a0\u00bb gutter_width=\u00a0\u00bb1&Prime; _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb custom_margin=\u00a0\u00bb5px||5px||false|false\u00a0\u00bb custom_padding=\u00a0\u00bb0px||0px||false|false\u00a0\u00bb border_width_all=\u00a0\u00bb2px\u00a0\u00bb box_shadow_style=\u00a0\u00bbpreset1&Prime;][et_pb_column type=\u00a0\u00bb4_4&Prime; _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb][et_pb_blurb title=\u00a0\u00bbTerminal\u00a0\u00bb use_icon=\u00a0\u00bbon\u00a0\u00bb font_icon=\u00a0\u00bb%%209%%\u00a0\u00bb icon_placement=\u00a0\u00bbleft\u00a0\u00bb use_icon_font_size=\u00a0\u00bbon\u00a0\u00bb icon_font_size=\u00a0\u00bb20px\u00a0\u00bb _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb header_text_color=\u00a0\u00bb#FFFFFF\u00a0\u00bb header_font_size=\u00a0\u00bb16px\u00a0\u00bb header_line_height=\u00a0\u00bb1.3em\u00a0\u00bb background_color=\u00a0\u00bb#000000&Prime; width=\u00a0\u00bb135px\u00a0\u00bb max_width=\u00a0\u00bb135px\u00a0\u00bb custom_margin=\u00a0\u00bb||-42px||false|false\u00a0\u00bb custom_padding=\u00a0\u00bb10px|15px|2px|15px|false|false\u00a0\u00bb][\/et_pb_blurb][et_pb_text _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb text_text_color=\u00a0\u00bb#000000&Prime; background_color=\u00a0\u00bb#eff0f1&Prime; custom_margin=\u00a0\u00bb|||145px|false|false\u00a0\u00bb custom_padding=\u00a0\u00bb1%|1%|1%|1%|false|false\u00a0\u00bb border_width_top=\u00a0\u00bb10px\u00a0\u00bb border_color_top=\u00a0\u00bb#ff8080&Prime;][crayon theme=\u00a0\u00bbanthoterm\u00a0\u00bb nums=\u00a0\u00bbfalse\u00a0\u00bb toolbar=\u00a0\u00bbfalse\u00a0\u00bb plain=\u00a0\u00bbfalse\u00a0\u00bb]<\/p>\n<p>cd \/home\/pi\/     # on se place dans le r\u00e9pertoire qui contient le package bin<br \/>\nsudo java -classpath .:classes:\/opt\/pi4j\/lib\/&rsquo;*&rsquo; mvcRobot.AppInterfaceLED     # commande pour ex\u00e9cuter le package via le main et en utilisant les librairies Pi4J<\/p>\n<p>[\/crayon][\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb][et_pb_column type=\u00a0\u00bb4_4&Prime; _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb][et_pb_text _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb]<\/p>\n<p><span>Le r\u00e9sultat de ce premier test est visible sur la vid\u00e9o ci-dessous :\u00a0<\/span><\/p>\n<p>[\/et_pb_text][et_pb_video src=\u00a0\u00bbhttps:\/\/youtu.be\/xztbin5Ht-M?list=TLGGjQRNpEeiX4sxMDAyMjAyMQ\u00a0\u00bb use_icon_font_size=\u00a0\u00bbon\u00a0\u00bb _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb width=\u00a0\u00bb75%\u00a0\u00bb module_alignment=\u00a0\u00bbcenter\u00a0\u00bb box_shadow_style=\u00a0\u00bbpreset1&Prime;][\/et_pb_video][et_pb_text _builder_version=\u00a0\u00bb4.8.2&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb]<\/p>\n<p><span>Nous pouvons donc commencer le d\u00e9veloppement de notre application Java pour piloter un robot et afficher le contenu d&rsquo;une cam\u00e9ra thermique plac\u00e9e \u00e0 l&rsquo;avant.<\/span><\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dans cette page, vous allez apprendre \u00e0 contr\u00f4ler les ports GPIO du Raspberry en Java. Une application avec interface Swing sera d\u00e9velopp\u00e9e.<\/p>\n","protected":false},"author":1,"featured_media":786,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"class_list":["post-821","page","type-page","status-publish","has-post-thumbnail","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Contr\u00f4le du GPIO : Led en Java | Raspberry Pi - Raspi Thermo Cam<\/title>\n<meta name=\"description\" content=\"Dans cette page, vous allez apprendre \u00e0 contr\u00f4ler une LED en GPIO du Raspberry en Java. Une application avec interface Swing sera d\u00e9velopp\u00e9e.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/anthony.lepors.fr\/raspi-thermo-cam\/controle-led-java\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Contr\u00f4le du GPIO : Led en Java | Raspberry Pi - Raspi Thermo Cam\" \/>\n<meta property=\"og:description\" content=\"Dans cette page, vous allez apprendre \u00e0 contr\u00f4ler une LED en GPIO du Raspberry en Java. Une application avec interface Swing sera d\u00e9velopp\u00e9e.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/anthony.lepors.fr\/raspi-thermo-cam\/controle-led-java\/\" \/>\n<meta property=\"og:site_name\" content=\"Raspi Thermo Cam - Projet Cam\u00e9ra Thermique\" \/>\n<meta property=\"article:modified_time\" content=\"2021-05-06T13:49:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/anthony.lepors.fr\/raspi-thermo-cam\/wp-content\/uploads\/2021\/02\/Miniature-Youtube-Interface-Java-LED.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Contr\u00f4le du GPIO : Led en Java | Raspberry Pi - Raspi Thermo Cam\" \/>\n<meta name=\"twitter:description\" content=\"Dans cette page, vous allez apprendre \u00e0 contr\u00f4ler une LED en GPIO du Raspberry en Java. Une application avec interface Swing sera d\u00e9velopp\u00e9e.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/anthony.lepors.fr\/raspi-thermo-cam\/wp-content\/uploads\/2021\/02\/Miniature-Youtube-Interface-Java-LED.jpg\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/anthony.lepors.fr\\\/raspi-thermo-cam\\\/controle-led-java\\\/\",\"url\":\"https:\\\/\\\/anthony.lepors.fr\\\/raspi-thermo-cam\\\/controle-led-java\\\/\",\"name\":\"Contr\u00f4le du GPIO : Led en Java | Raspberry Pi - Raspi Thermo Cam\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/anthony.lepors.fr\\\/raspi-thermo-cam\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/anthony.lepors.fr\\\/raspi-thermo-cam\\\/controle-led-java\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/anthony.lepors.fr\\\/raspi-thermo-cam\\\/controle-led-java\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/anthony.lepors.fr\\\/raspi-thermo-cam\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/Miniature-Youtube-Interface-Java-LED.jpg\",\"datePublished\":\"2021-02-10T18:19:43+00:00\",\"dateModified\":\"2021-05-06T13:49:14+00:00\",\"description\":\"Dans cette page, vous allez apprendre \u00e0 contr\u00f4ler une LED en GPIO du Raspberry en Java. Une application avec interface Swing sera d\u00e9velopp\u00e9e.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/anthony.lepors.fr\\\/raspi-thermo-cam\\\/controle-led-java\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/anthony.lepors.fr\\\/raspi-thermo-cam\\\/controle-led-java\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/anthony.lepors.fr\\\/raspi-thermo-cam\\\/controle-led-java\\\/#primaryimage\",\"url\":\"https:\\\/\\\/anthony.lepors.fr\\\/raspi-thermo-cam\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/Miniature-Youtube-Interface-Java-LED.jpg\",\"contentUrl\":\"https:\\\/\\\/anthony.lepors.fr\\\/raspi-thermo-cam\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/Miniature-Youtube-Interface-Java-LED.jpg\",\"width\":1280,\"height\":720},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/anthony.lepors.fr\\\/raspi-thermo-cam\\\/controle-led-java\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/anthony.lepors.fr\\\/raspi-thermo-cam\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Contr\u00f4le du GPIO : Led en Java\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/anthony.lepors.fr\\\/raspi-thermo-cam\\\/#website\",\"url\":\"https:\\\/\\\/anthony.lepors.fr\\\/raspi-thermo-cam\\\/\",\"name\":\"Raspi Thermo Cam - Projet Cam\u00e9ra Thermique\",\"description\":\"Site web qui retrace la r\u00e9alisation d&#039;un projet de cam\u00e9ra thermique avec un Raspberry. Nous utilisons le module FLIR Lepton 3.5 avec un Raspberry Pi 400.\",\"publisher\":{\"@id\":\"https:\\\/\\\/anthony.lepors.fr\\\/raspi-thermo-cam\\\/#\\\/schema\\\/person\\\/92186a88d3e51aa770548fabc8d16e06\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/anthony.lepors.fr\\\/raspi-thermo-cam\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/anthony.lepors.fr\\\/raspi-thermo-cam\\\/#\\\/schema\\\/person\\\/92186a88d3e51aa770548fabc8d16e06\",\"name\":\"Anthony LE PORS\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ff32c3852ab8cee9e1657174d156c802a9f0e1f3a3e0256a92e6ecc810f2383b?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ff32c3852ab8cee9e1657174d156c802a9f0e1f3a3e0256a92e6ecc810f2383b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ff32c3852ab8cee9e1657174d156c802a9f0e1f3a3e0256a92e6ecc810f2383b?s=96&d=mm&r=g\",\"caption\":\"Anthony LE PORS\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ff32c3852ab8cee9e1657174d156c802a9f0e1f3a3e0256a92e6ecc810f2383b?s=96&d=mm&r=g\"},\"sameAs\":[\"https:\\\/\\\/anthony.lepors.fr\\\/raspi-thermo-cam\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Contr\u00f4le du GPIO : Led en Java | Raspberry Pi - Raspi Thermo Cam","description":"Dans cette page, vous allez apprendre \u00e0 contr\u00f4ler une LED en GPIO du Raspberry en Java. Une application avec interface Swing sera d\u00e9velopp\u00e9e.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/anthony.lepors.fr\/raspi-thermo-cam\/controle-led-java\/","og_locale":"fr_FR","og_type":"article","og_title":"Contr\u00f4le du GPIO : Led en Java | Raspberry Pi - Raspi Thermo Cam","og_description":"Dans cette page, vous allez apprendre \u00e0 contr\u00f4ler une LED en GPIO du Raspberry en Java. Une application avec interface Swing sera d\u00e9velopp\u00e9e.","og_url":"https:\/\/anthony.lepors.fr\/raspi-thermo-cam\/controle-led-java\/","og_site_name":"Raspi Thermo Cam - Projet Cam\u00e9ra Thermique","article_modified_time":"2021-05-06T13:49:14+00:00","og_image":[{"width":1280,"height":720,"url":"https:\/\/anthony.lepors.fr\/raspi-thermo-cam\/wp-content\/uploads\/2021\/02\/Miniature-Youtube-Interface-Java-LED.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_title":"Contr\u00f4le du GPIO : Led en Java | Raspberry Pi - Raspi Thermo Cam","twitter_description":"Dans cette page, vous allez apprendre \u00e0 contr\u00f4ler une LED en GPIO du Raspberry en Java. Une application avec interface Swing sera d\u00e9velopp\u00e9e.","twitter_image":"https:\/\/anthony.lepors.fr\/raspi-thermo-cam\/wp-content\/uploads\/2021\/02\/Miniature-Youtube-Interface-Java-LED.jpg","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/anthony.lepors.fr\/raspi-thermo-cam\/controle-led-java\/","url":"https:\/\/anthony.lepors.fr\/raspi-thermo-cam\/controle-led-java\/","name":"Contr\u00f4le du GPIO : Led en Java | Raspberry Pi - Raspi Thermo Cam","isPartOf":{"@id":"https:\/\/anthony.lepors.fr\/raspi-thermo-cam\/#website"},"primaryImageOfPage":{"@id":"https:\/\/anthony.lepors.fr\/raspi-thermo-cam\/controle-led-java\/#primaryimage"},"image":{"@id":"https:\/\/anthony.lepors.fr\/raspi-thermo-cam\/controle-led-java\/#primaryimage"},"thumbnailUrl":"https:\/\/anthony.lepors.fr\/raspi-thermo-cam\/wp-content\/uploads\/2021\/02\/Miniature-Youtube-Interface-Java-LED.jpg","datePublished":"2021-02-10T18:19:43+00:00","dateModified":"2021-05-06T13:49:14+00:00","description":"Dans cette page, vous allez apprendre \u00e0 contr\u00f4ler une LED en GPIO du Raspberry en Java. Une application avec interface Swing sera d\u00e9velopp\u00e9e.","breadcrumb":{"@id":"https:\/\/anthony.lepors.fr\/raspi-thermo-cam\/controle-led-java\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/anthony.lepors.fr\/raspi-thermo-cam\/controle-led-java\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/anthony.lepors.fr\/raspi-thermo-cam\/controle-led-java\/#primaryimage","url":"https:\/\/anthony.lepors.fr\/raspi-thermo-cam\/wp-content\/uploads\/2021\/02\/Miniature-Youtube-Interface-Java-LED.jpg","contentUrl":"https:\/\/anthony.lepors.fr\/raspi-thermo-cam\/wp-content\/uploads\/2021\/02\/Miniature-Youtube-Interface-Java-LED.jpg","width":1280,"height":720},{"@type":"BreadcrumbList","@id":"https:\/\/anthony.lepors.fr\/raspi-thermo-cam\/controle-led-java\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/anthony.lepors.fr\/raspi-thermo-cam\/"},{"@type":"ListItem","position":2,"name":"Contr\u00f4le du GPIO : Led en Java"}]},{"@type":"WebSite","@id":"https:\/\/anthony.lepors.fr\/raspi-thermo-cam\/#website","url":"https:\/\/anthony.lepors.fr\/raspi-thermo-cam\/","name":"Raspi Thermo Cam - Projet Cam\u00e9ra Thermique","description":"Site web qui retrace la r\u00e9alisation d&#039;un projet de cam\u00e9ra thermique avec un Raspberry. Nous utilisons le module FLIR Lepton 3.5 avec un Raspberry Pi 400.","publisher":{"@id":"https:\/\/anthony.lepors.fr\/raspi-thermo-cam\/#\/schema\/person\/92186a88d3e51aa770548fabc8d16e06"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/anthony.lepors.fr\/raspi-thermo-cam\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":["Person","Organization"],"@id":"https:\/\/anthony.lepors.fr\/raspi-thermo-cam\/#\/schema\/person\/92186a88d3e51aa770548fabc8d16e06","name":"Anthony LE PORS","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/secure.gravatar.com\/avatar\/ff32c3852ab8cee9e1657174d156c802a9f0e1f3a3e0256a92e6ecc810f2383b?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/ff32c3852ab8cee9e1657174d156c802a9f0e1f3a3e0256a92e6ecc810f2383b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ff32c3852ab8cee9e1657174d156c802a9f0e1f3a3e0256a92e6ecc810f2383b?s=96&d=mm&r=g","caption":"Anthony LE PORS"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/ff32c3852ab8cee9e1657174d156c802a9f0e1f3a3e0256a92e6ecc810f2383b?s=96&d=mm&r=g"},"sameAs":["https:\/\/anthony.lepors.fr\/raspi-thermo-cam"]}]}},"_links":{"self":[{"href":"https:\/\/anthony.lepors.fr\/raspi-thermo-cam\/wp-json\/wp\/v2\/pages\/821","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/anthony.lepors.fr\/raspi-thermo-cam\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/anthony.lepors.fr\/raspi-thermo-cam\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/anthony.lepors.fr\/raspi-thermo-cam\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/anthony.lepors.fr\/raspi-thermo-cam\/wp-json\/wp\/v2\/comments?post=821"}],"version-history":[{"count":0,"href":"https:\/\/anthony.lepors.fr\/raspi-thermo-cam\/wp-json\/wp\/v2\/pages\/821\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/anthony.lepors.fr\/raspi-thermo-cam\/wp-json\/wp\/v2\/media\/786"}],"wp:attachment":[{"href":"https:\/\/anthony.lepors.fr\/raspi-thermo-cam\/wp-json\/wp\/v2\/media?parent=821"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}